level 11
C++数组中如何从键盘上接收字符串数组,是不是要用到结构体?例如:从键盘上接收5个国家的名字?
2012年10月05日 06点10分
1
level 11
自己写了如下代码:编译没通过,请帮我看一下//输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出
#include <stdio.h>
#include <string.h>
struct counntry
{
char name[15];
}names[5];
void main()
{
char in[10];
int i,j;
printf("please input five country's name:\n");
for(i=0;i<5;i++)
{
printf("please input %d name:\n",i);
gets(names[i].name);
}
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{
if(strcmp(names[i].name,names[j].name)<=0)
{
in[10]=names[i].name;
names[i].name=names[j].name;
names[j].name=in[10];
}
}
printf("the result of pailie is:\n");
for(i=0;i<5;i++)
{
puts(names[i].name);
}
}
2012年10月07日 01点10分
7
level 1
这是我给你改了之后的代码,你的排序方法不对,我下面用的时候冒泡排序法,你看一下
#include <stdio.h>
#include <string.h>
struct counntry{
char name[15];
}names[5];
void main()
{
char in[15];
printf("please input five country's name:\n");
for(int k=0;k<5;k++)
{
printf("please input %d name:\n",k+1);
gets(names[k].name);
}
for(int i=0;i<=3;i++)
{
for(int j=0;j<=3;j++)
{
if(strcmp(names[j].name,names[j+1].name)>0)
{
strcpy(in,names[j].name);
strcpy(names[j].name,names[j+1].name);
strcpy(names[j+1].name,in);
}
}
}
printf("the result of pailie is:\n");
for(i=0;i<5;i++)
puts(names[i].name);
}
2012年11月30日 11点11分
8
我运行了一下,完全正确,谢谢啊
2012年12月01日 11点12分