0025 从键盘输入10个整形数,去掉重复的,将其余剩余的数由大到小排序输出
问题描述:
从键盘输入10个整形数,去掉重复的,将其余剩余的数由大到小排序输出。
代码展示:
1 #include2 void BubbleSort(int a[], int len); 3 int main(){ 4 int a[10]; 5 int i,j; 6 int len = 10; 7 for(i=0; i<10; i++){ 8 scanf("%d",&a[i]); 9 } 10 BubbleSort(a,10); //先排序,后标记 11 for(i=0,j=1;j<10;){ //标记重复的元素为0 12 if(a[j] == a[i]){ 13 a[j] = 0; 14 j++; 15 }else{ 16 j++; 17 i = j-1; 18 } 19 } 20 printf("删除重复元素后的有序序列为:"); 21 for(i=0;i<10;i++){ 22 if(a[i] != 0){ 23 printf("%d ",a[i]); 24 } 25 } 26 return 0; 27 } 28 29 void BubbleSort(int a[], int len){ //冒泡排序 30 int i,j; 31 int flag; 32 int temp; 33 for(i=0; i ){ 34 flag = 0; 35 for(j=1; j ){ 36 if(a[j-1]<a[j]){ 37 temp = a[j-1]; 38 a[j-1] = a[j]; 39 a[j] = temp; 40 flag = 1; 41 } 42 } 43 if(flag == 0){ 44 return; 45 } 46 } 47 }
运行截图: