#include <stdio.h>
#define SORT1(s,n) {int a,b,t;for(a=0;a<(n-1);a++){for(b=(a+1);b<n;b++){if(s[a]>s[b]){t=s[a];s[a]=s[b];s[b]=t;}}printf("%d",s[a]);}}
#define SORT2(s,n) {int c,d,k;for(c=0;c<(n-1);c++){for(d=(c+1);d<n;d++){if(s[c]<s[d]){k=s[c];s[c]=s[d];s[d]=k;}}printf("%d",s[c]);}}
int main()
{
int n,i;
int s[100];
do{
printf("输入要排列顺序的整数个数'n':\n");
scanf("%d",&n);
printf("输入整数具体内容:\n");
for(i=0;i<n;i++)
scanf("%d",s);
}while(n<2);
printf("Min to max:\n");
SORT1(s,n);
printf("\n");
printf("Max to min:\n");
SORT2(s,n);
return 0;
}
第1个回答 2011-07-24
#include <stdio.h>
#define SORT1(s,n) {int a,b,t;for(a=0;a<(n-1);a++){for(b=(a+1);b<n;b++){if(s[a]>s[b]){t=s[a];s[a]=s[b];s[b]=t;}}printf("%d",s[a]);}}
#define SORT2(s,n) {int c,d,k;for(c=0;c<(n-1);c++){for(d=(c+1);d<n;d++){if(s[c]<s[d]){k=s[c];s[c]=s[d];s[d]=k;}}printf("%d",s[c]);}}
int main()
{
int n,i;
int s[100];
do{
printf("输入要排列顺序的整数个数'n':\n");
scanf("%d",&n);
printf("输入整数具体内容:\n");
for(i=0;i<n;i++)
!!!!!!!!!!! scanf("%d",&s[i]);!!!!!!!!!!!!!!!!!!!!!
}while(n<2);
printf("Min to max:\n");
SORT1(s,n);
printf("\n");
printf("Max to min:\n");
SORT2(s,n);
return 0;
}
注意用!!标号的行对比
还有你输出数据只有n-1个 试着将宏中的a的范围调为for(a=0;a<n;a++)
如要修改后程序请追问
谢谢采纳本回答被提问者采纳
#define SORT1(s,n) {int a,b,t;for(a=0;a<(n-1);a++){for(b=(a+1);b<n;b++){if(s[a]>s[b]){t=s[a];s[a]=s[b];s[b]=t;}}printf("%d",s[a]);}}
#define SORT2(s,n) {int c,d,k;for(c=0;c<(n-1);c++){for(d=(c+1);d<n;d++){if(s[c]<s[d]){k=s[c];s[c]=s[d];s[d]=k;}}printf("%d",s[c]);}}
int main()
{
int n,i;
int s[100];
do{
printf("输入要排列顺序的整数个数'n':\n");
scanf("%d",&n);
printf("输入整数具体内容:\n");
for(i=0;i<n;i++)
!!!!!!!!!!! scanf("%d",&s[i]);!!!!!!!!!!!!!!!!!!!!!
}while(n<2);
printf("Min to max:\n");
SORT1(s,n);
printf("\n");
printf("Max to min:\n");
SORT2(s,n);
return 0;
}
注意用!!标号的行对比
还有你输出数据只有n-1个 试着将宏中的a的范围调为for(a=0;a<n;a++)
如要修改后程序请追问
谢谢采纳本回答被提问者采纳