21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57{;}}temp1=i+1;while(str[temp1]!=0){str[temp1-i-1]=str[temp1++];};str[temp1-i-1]=0;}else{temp1=0;a[n][0]=n+64;while(str[temp1]!=0)a[n][temp1++]=str[temp1];str[temp1]=a[n][temp1]='\0';str[0]='\0';break;}for(i=1;i<=n-1;i++)for(j=1;j<=n-i;j++){charstrtemp[200];strtemp[0]=0;strcat(strtemp,a[j]);strcat(strtemp,a[j+1]);sscanf(strtemp,"%d",&t1);//将strtemp转成整数strtemp[0]=0;strcat(strtemp,a[j+1]);strcat(strtemp,a[j]);sscanf(strtemp,"%d",&t2);if(t1<t2){strcpy(a[21],a[j]);strcpy(a[j],a[j+1]);strcpy(a[j+1],a[21]);;}//a[21]作临时存储空间for(i=1;i<=n;i++)for(inttemp=0;temp<strlen(a[i]);temp++)printf("%c",a[i][temp]);}printf("\n");system("pause");return0;}
输入:9334321
程序运行的结果是:
[解析]这题用到的字符(串)子程序比较多,有需要的,请参阅“基础篇”。
while(1)构成循环的功能是什么呢?第13行,取空格的位置;继而,如果空格存在