1 用二维字符数组存储每个名字,每行一个;
2 输入五个字符串,即五个国家名字;
3 排序,注意用strcmp比较,用strcpy赋值交换;
4 输出结果。
代码如下:
int main()
{
char s[5][100],t[100];
int i,j;
for(i = 0; i < 5; i ++)
scanf("%s",s[i]);
for(i = 0; i < 4; i ++)
for(j = i+1; j<5;j++)
{
if(strcmp(s[i],s[j])>0)
{
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
for(i = 0; i < 5; i ++)
printf("%s ",s[i]);
}
用第一个字母来排队就可以了。
if (s[i][0]>s[j][0]){ 交换国家名字;};
程序如下:
#include
main()
{
char s[5][20]={"Usa","China","India","Egypt","Korea"};
char t[20];
int i,j;
for (i=0;i<4;i++) for (j=i+1;j<5;j++)
if (s[i][0]>s[j][0]){
strcpy(t,s[i]);strcpy(s[i],s[j]);strcpy(s[j],t);
};
for (i=0;i<5;i++) printf("%s\n",s[i]);
}
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
int main(void){
char nn[6][70],i,j,k;
printf("Please enter the name of 5 countries...\n");
for(i=0;i<5;scanf("%s",nn[i++]));
for(i=0;i<4;i++){
for(k=i,j=k+1;j<5;j++)
if(nn[k][0]>nn[j][0]) k=j;
if(k!=i){
strcpy(nn[5],nn[k]);
strcpy(nn[k],nn[i]);
strcpy(nn[i],nn[5]);
}
printf("%s\n",nn[i]);
}
return 0;
}