考试4

    xiaoxiao2021-03-26  24

    题目一

      (1/1 分数) 题目描述

    输入三个1-9的互不相同的数字,求出所有由这三个数字组成的,且各位数字各不相同的三位数

    输入格式

    三个1-9的数字,用空格隔开

    输出格式

    每行一个三位数,将所有符合条件的数输出,按字典序排列

    样例输入

    7 8 9 样例输出

    789 798 ...

    代码框

    #include<iostream> using namespace std; void swap(int &a,int &b){ int temp; temp=a; a=b; b=temp; } int Partition(int *array,int low,int high){ int pivot=array[low]; while(low<high){ while(low<high&&array[low]<=array[high]) high--; swap(array[low],array[high]); while(low<high&&array[low]<=array[high]) low++; swap(array[high],array[low]); } array[high]=pivot; return high; } void QuickSort(int *array,int low,int high){ if(low<high){ int pivot=Partition(array,low,high); QuickSort(array,low,pivot-1); QuickSort(array,pivot+1,high); } return; } int main(){ int a,b,c; cin>>a>>b>>c; if(a==b||a==c||b==c||a<1||a>9||b<1||b>9||c<1||c>9) return false; int array[3]={a,b,c}; QuickSort(array,0,2); cout<<array[0]*100+array[1]*10+array[2]<<endl; swap(array[1],array[2]); cout<<array[0]*100+array[1]*10+array[2]<<endl; QuickSort(array,0,2); swap(array[0],array[1]); cout<<array[0]*100+array[1]*10+array[2]<<endl; swap(array[1],array[2]); cout<<array[0]*100+array[1]*10+array[2]<<endl; swap(array[0],array[1]); swap(array[1],array[2]); cout<<array[0]*100+array[1]*10+array[2]<<endl; swap(array[1],array[2]); cout<<array[0]*100+array[1]*10+array[2]<<endl; return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-659013.html

    最新回复(0)