从键盘上输入n个字串,找出长度最大的字串
输入格式:
输入包含多个测试实例,数据的第一行是一个整数n(0<n<=10),表示字串个数,然后是n行输入数据,每行是其中一个字串,字串的长度不超过15,n=0结束输入。
输出格式:长度最大的串
请在下方粘贴代码和程序运行结果截图
输入及输出结果如图所示:
错误代码段:
#include <stdio.h>
#include <string.h>
int main()
{
int N;
char s[100][100];
int i;
int max_i, max_len = 0;
while(scanf("%d",&N),N!=0){
for(i = 0; i < N; i ++)
{
scanf("%s",s[i]);//输入
}
for(i = 0; i < N; i ++)
{
int l = strlen(s[i]);
if(max_len <l)
{
max_len = l;
max_i = i;
}
}
printf("%s\n", s[max_i]);
}//输出最长字符串
return 0;
}
出现的问题:N承接的一直是2
正确代码段:
#include <stdio.h>
#include <string.h>
int main()
{
int N;
while(scanf("%d",&N),N!=0){
char s[100][100];
int i;
int max_i, max_len = 0;
for(i = 0; i < N; i ++)//把关于数组s和i的定义放while循环里
{
scanf("%s",s[i]);//输入
}
for(i = 0; i < N; i ++)
{
int l = strlen(s[i]);
if(max_len <l)
{
max_len = l;
max_i = i;
}
}
printf("%s\n", s[max_i]);
}//输出最长字符串
return 0;
}
正确截图