用C语言编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束.

使用C语言编程,求大神,在线等
输入字符串:bac,输出结果是abc,求方法,一直循环,直到输入end的时候,结束循环

第1个回答  2015-11-24
#include <stdio.h>
int main(){
char c[100];
gets(c);
while (1){
if (c[0] == 'e'&&c[1] == 'n'&&c[2] == 'd'&&c[3] == '\0')
break;
gets(c);
}

return 0;
}
感觉楼主可能刚学就用个能看懂的方法好了追问

我表示运行不了= =

追答

楼主如果用的VS的话把gets(c) 换成gets_s(c,100)

追问

你给我的能运行,我是C++,没有语句错误,但是输出结果是黑屏,无论输入什么都毫无响应

追答

没看到下面的补充

本回答被提问者采纳
第2个回答  2015-11-24
#include <stdio.h>
#include <string.h>
int main()
{
    char*s[1000],p[]="end";
    do
    {
        gets(s);
    }while(strcmp(s,p)!=0);
 return 0;
}

请采纳。

追问

是按字典顺序排列,无论输入什么,只要输入end,就会停止循环的..我表示,您的这个我运行的是输入结果倒序排列,直接结束= =

追答

你没说清楚啊,之前并没说排序输出的事。

#include <stdio.h>
#include <string.h>
int main()
{
    char a[1000][1000],p[]="end",tmp[1000];
    int i,j,n,min;

    i=0;
    do
    {
        gets(a[i]);

    }while(strcmp(a[i++],p)!=0);

    n = i-1;
    for(i=0;i<n;i++)
    {
        min = i;
        for(j=i+1;j<n;j++)
        {
            if(strcmp(a[min],a[j])>0)
            {
                min = j;
            }
        }

        if(min != i)
        {
            strcpy(tmp,a[min]);
            strcpy(a[min],a[i]);
            strcpy(a[i],tmp);
        }
    }

    putchar('\n');
    for(i=0;i<n;i++)
        puts(a[i]);

 return 0;
}

本回答被网友采纳
相似回答