输入格式:
输入一行字符,假定只包含字母及空格。
如:this is a test program
输出格式:
输出最长单词及其长度,输出完成换行
格式如下:
max=program,lenght=7
输入样例:
在这里给出一组输入。例如:
this is a test program
输出样例:
在这里给出相应的输出。例如:
max=program,lenght=7
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
题目分析:
C语言代码:
#include<stdio.h>
int main()
{
int i=0,j=0,k=0;//变量组
int length=0;//每个单词的长度
int max_length=0;//最长的单词。
int index_max=0;//最长单词的下标标记
char word[20]={};//存放最长词的字符串
char sentence[100]={};//句子输入存放
gets(sentence);
//测试点1
/*
int o=0;
while(sentence[o]!='\0')
{
printf("%c ",sentence[o]);
o++;
}
printf("\n");
*/
while(sentence[i]!='\0')
{
if(sentence[i]!=' ')
{
length++;
}
else if(sentence[i]==' ')
{
if(length>max_length)//这里采用的是一种打擂台的比较
{
max_length=length;
index_max=i-length;//最大数下标的存储是很关键的一步
}
length=0;
}
i++;
}
//最后在循环外还要进行一次比较,因为最后一个单词后没有空格可能未进行比较过程
if(length>max_length)
{
max_length=length;
index_max=i-length;
}
//测试点2
/*
printf("最大长度max_length为: %d\n",max_length);
printf("最大长度词的底数index_max为: %d\n",index_max);
*/
for(j=index_max,k=0;j<index_max+max_length;j++,k++)
{
word[k]=sentence[j];
}//最大词的存放
//测试点3
/*
printf("%s\n",word);
*/
printf("max=%s,lenght=%d",word,max_length);
return 0;
}
运行截图: