#include<stdio.h>
#include <string.h>
int main(void)
{
char str[100][100],max[100];
int i,long1[100],n,k,j;
for(i=0;;i++)
{
gets(str[i]);
if(strcmp(str[i],"stop")==0)
{
n=i;
break;
}
}
for(i=0;i<=n;i++)
{
k=strlen(str[i]);
for(j=0;j<k;j++)
{
if(str[i][j]==' ')
{
k--;
}
}
long1[i]=k;
}
max[100]=str[0][0];
for(i=0;i<n;i++)
{
for(j=1;j<n;j++)
{
if(str[i][j]>max)
{
max[100]=str[i][j];
}
}
}
for(i=0;i<=n-1;i++)
{
printf("%d %c\n",long1[i],max[100]);
}
return 0;
}
输入my name is janes
应输出13 janes
实际输出13 y
我的思路是:先定义一个二维数组str,横标表示字符串,纵标表示这个字符串的内容,long1用于存放这个字符实际有几个字符,第一个for循环是收集字符串,当字符串为stop时停止,第二个for循环为判断字符串个字符个数,随后将字符个数储存在long1的数组中,第三个for循环是比较字符串中,字符最多的单词,并将他储存在max数组中,最后一个for循环是输出。