#include<stdio.h>
#include<string.h>
main()
{ chara[5][10]={“china”,”beijing”,”you”,”tiananmen”,”welcome”};
int i,j; char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)
{ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t);}
puts(a[3]);
}程序运行后的输出结果是 ( )
A.beijing B.china C.welcome D.tiananmen
该程序就是一个字符串的交换排序,但是程序本身存在问题,而没有实现排序,
puts(a[3]的内容还是tiananmen,答案是D
运行结果:
具体错误程序为:
{ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t);}应该修改为{ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t);}
正确的排序程序为
#include<stdio.h>
#include<string.h>
main()
{
char a[5][10]={"china", "beijing", "you", "tiananmen", "welcome"};
int i,j;
char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j])>0)
{
strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
}
puts(a[3]);
}