c语言编程:输入n(<=10)个人名,存入一个数组name中,以从小到大的顺序输出,怎么做?
1.n由键盘输入,1<=n<=10,输入错误要有提示并退出程序。
2.不得使用字符串处理库函数。
3.名字比较用自定义函数完成。
4.输入时名字间可用间隔或回车隔开。
5.输出每行一个名字。 展开
代码文本:
#include "stdio.h"
int mystrcmp(const char *a,const char *b){
while(*a==*b && *a && *b)
a++,b++;
return *a-*b;
}
int main(int argc,char *argv[]){
char name[10][25],*p[10],*q,i,k,t,n;
printf("Enter n(int 0<n<11)...\n");
if(scanf("%d",&n)==1 && n>0 && n<11){//输入n,有错提示并退出
for(i=0;i<n;scanf("%24s",p[i]=name[i++]));//输入n个人名
putchar('\n');
for(i=0;i<n;i++){//人名排序
for(k=i,t=k+1;t<n;t++)
if(mystrcmp(p[k],p[t])>0)
k=t;
if(k!=i)
q=p[k],p[k]=p[i],p[i]=q;
printf("%s\n",p[i]);//输出
}
}
else
printf("Input error, exit...\n");
return 0;
}
供参考。