当前位置: 代码迷 >> C语言 >> 给大家一个程序,输入多个字符串以END结束后排序,这个程序运行,即结果都是 ...
  详细解决方案

给大家一个程序,输入多个字符串以END结束后排序,这个程序运行,即结果都是 ...

热度:247   发布时间:2006-08-14 14:16:30.0
给大家一个程序,输入多个字符串以END结束后排序,这个程序运行,即结果都是对的。

/*输入多个字符串以END结束后排序*/
#include<stdio.h>
#include<ctype.h>
main()
{char a[20][30];
char b[30];
char ch[20];
char c[]={"END"};
int i=0,j,k;
clrscr();
printf("\nplease input the name of city:\n");
gets(ch);
while(!(stricmp(c,ch)==0))
{ strcpy(a[i],ch);
i++;
gets(ch);
}
while(stricmp(c,ch)==0)
{k=i;
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if(strcmp(a[i],a[j])>0)
{strcpy(b,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],b);
}
printf("The new is:\n");
for(i=0;i<k;i++)
printf("%s\n",a[i]);
break;
}
}
/*我想问的是char c[]={"END"};这样赋值到底有没有,'\0'。如果有,我这个程序应该得不出正确结果。但这个程序能得出正确结果。请问大伙是怎么回事?第一次发帖。
顺便问一下,VC++是不是也能编译C程序,每次都要进纯DOS好麻烦。*/

[此贴子已经被作者于2006-8-14 20:47:39编辑过]

搜索更多相关的解决方案: END结束  字符  结果  include  

----------------解决方案--------------------------------------------------------
char c[]={"END"};
这样怎么会有'\n'呢,后面只是一个‘\0’
----------------解决方案--------------------------------------------------------
VC++可以编译纯C的
----------------解决方案--------------------------------------------------------
VC++并不是可以完全编译纯C的。
至少好多的函数都是不支持的
----------------解决方案--------------------------------------------------------

刚开始错把'\0'写成'\n',对不住。谢谢啊二楼的。

即便是'\0',也应该得不出正确结果啊,怎么回事?


----------------解决方案--------------------------------------------------------
  相关解决方案