写一个程序,通过标准输入读入多行字符串,输出其中最长的一个,如果最长行不止一个,则输出其中的最后一行。

输入说明
多组数据,每组数据为一行字符,长度不超过100,输入的行为“***end***”时表示输入结束

输出说明
先输出最后一个最长行的行号(从1开始计数)然后换行输出最长行的内容

第1个回答  2011-12-20
#include <stdio.h>
#include <string.h>
int main()
{
char str[102], maxstr[102], *p;
int max, ind, i, t;
t = 0;
while(true){
gets(str);
t ++;
if(strcmp(str, "***end***") ==0) break;
for(i=0; str[i]!='\0'; i++);
if (i >= max ) {
strcpy(maxstr, str);
max = i;
ind = t;
}
}
printf("%d\n", ind);
printf("%s\n", maxstr);
}追问

不能运行啊

追答

怎么不能运行呢? 你用什么编译器运行的呢?
你再试一下下面的:

#include
#include
int main()
{
char str[102], maxstr[102], *p;
int max=0, ind, i, t;
t = 0;
while(true){
gets(str);
t ++;
if(strcmp(str, "***end***") ==0) break;
for(i=0; str[i]!='\0'; i++);
if (i >= max ) {
strcpy(maxstr, str);
max = i;
ind = t;
}
}
printf("%d\n", ind);
printf("%s\n", maxstr);
return 0; //有的编译器这儿需要返回0
}

本回答被提问者采纳
相似回答