C语言 - 数组冒泡排序 与 switch嵌套

来源:互联网 发布:金字塔交易 python 编辑:程序博客网 时间:2024/05/28 16:11
题目:输入10个数字,然后用一个菜单控制(返回后),菜单有两个内容,一个是把那10个数字按顺序排列,还有一个就是显示那10个数字。

#include <stdio.h>#include <stdlib.h>void shengxu(int * a){int i, j, temp;for(i=0; i<10; i++){for(j=i; j<10; j++){if(*(a+j)< *(a+i)){temp = *(a+j);*(a+j) = *(a+i);*(a+i) = temp;}}}}void jiangxu(int * a){int i, j, temp;for(i=0; i<10; i++){for(j=i; j<10; j++){if(*(a+j)> *(a+i)){temp = *(a+j);*(a+j) = *(a+i);*(a+i) = temp;}}}}int main(void){int a[10];int i, x, xx;for(i=0; i<10; i++){scanf("%d", &a[i]);}printf("1、把数组内容按顺序排列\n");printf("2、重新显示数组内的元素\n");scanf("%d", &x);switch(x){case 1:{printf("    1、升序排列\n");printf("    2、降序排列\n");scanf("%d", &xx);switch(xx){case 1:{shengxu(a);for(i=0; i<10; i++){printf("%d->", a[i]);}break;}case 2:{jiangxu(a);for(i=0; i<10; i++){printf("%d->", a[i]);}break;}}break;}case 2:{for(i=0; i<10; i++){printf("%d->", a[i]);}break;}}printf("\n");system("pause");return 0;}
/*------------在VC++ 6.0 显示结果为:------------45 78 12 45 6 87 1 45 12 891、把数组内容按顺序排列2、重新显示数组内的元素1    1、升序排列    2、降序排列11->6->12->12->45->45->45->78->87->89->请按任意键继续. . .*/