C语言,输出最长的单词
发布网友
发布时间:2024-04-28 16:27
我来回答
共3个回答
热心网友
时间:2024-05-01 09:01
#include <stdio.h> //输入输出头文件
int main(int argc, char *argv[])
{
char a[100];
int b[100],i,j=0,n,q,max;
gets(a);
n=0;//--n要有初值
b[0]=0;//b的第一位应该是0
j=1;//从第二位开始记录长度
for(i=0;a[i]!='\0';i++)
{
if(a[i]==' ')//----------关键错误!比较用两个等号
{
b[j]=i;
j++;
n++;
}
}
//b[j+1]=i+1; 没有用!
max=0;//要有初值
for(j=1;j<n;j++)//
{
if(b[j]-b[j-1]>max)
{
max=b[j]-b[j-1];
q=b[j-1];
}
}
for(i=q;i<q+max;i++)
printf("%c",a[i]);
system("PAUSE");
return 0;
}
热心网友
时间:2024-05-01 09:01
main函数不要输入参数追问不好意思,可以说得详细一点吗。。。
热心网友
时间:2024-05-01 09:02
1、max,q没有赋初值,会导致错误,都赋值0即可;
2、b[j+1]=i+1; 好像要改为b[j]=i; 因为已经自增过了;
最后说说我的思路:使用分割字符串的函数strtok,将输入的字符串用空格分隔,得到单词数组,然后循环用strlen得到每个单词的长度,比较得最长长度,输出该单词。