输入5个国家的名字,然后按从小到大的顺序输出

char str[5][15];
int i = 0;
for (i=0; i<5; i++) {
scanf("%s",str[i]);
}

int j = 0;
for (i=0; i<5; i++) {
for(j=0;j<5-i;j++){
if (strcmp(str[i],str[i+1])>0) {
char temp[15];
strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
}
}

for (i=0; i<5; i++) {
puts(str[i]);

}
return0;
}

只写出了排序的算法,其他自己完善下就可以了,用的冒泡排序:
for (i=0; i<5; i++) {
for(j=0;j<5-i-1;j++){
if (strcmp(str[j],str[j+1])>0) {
char temp[15];
strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-07
#include <stdio.h>
#include <string.h>
int main ()
{
char str[5][15];
int i = 0;
for (i=0; i<5; i++) {
scanf("%s",str[i]);
}

int j = 0;
// 冒泡排序
for (i=0; i<(5-1); i++) {
for(j=i+1;j<5;j++){
if (strcmp(str[i],str[j])>0) {
char temp[15];
strcpy(temp,str[j]);
strcpy(str[j],str[i]);
strcpy(str[i],temp);
}
}
}

for (i=0; i<5; i++) {
puts(str[i]);

}
return 0;
}本回答被提问者采纳
第2个回答  推荐于2017-09-04
for (i=0; i<5; i++) {
for(j=0;j<5-i;j++){
5改4
if (strcmp(str[i],str[i+1])>0) {
i改j本回答被网友采纳