//试题名称 最长单词的长度
//时间限制: 1 秒
//内存限制: 256KB
//
//问题描述
//给定一个英文句子,统计这个句子中最长单词的长度,并在屏幕上输出。
//
//输入说明
//从键盘输入一个英文句子,句子中只含有英文字符和空格,句子以’.’结束。句子总长不超过100个字符。
//
//输出说明
//输出一个整数,表示这个句子中最长单词的长度。允许句子中有相同长度的单词。
//
//输入样例
//输入样例1
//I am a student.
//输入样例2
//The cat gets a job.
//
//输出样例
//输出样例1
//7
//输出样例2
//4
#include <stdio.h>
int main()
{
int max = 0, number = 0, i, word = 0;
char a[100];
// 读取输入字符串
gets(a);
// 遍历字符串中的每个字符
for (i = 0; a[i] != '\0'; i++) {
if (a[i] == ' ' || a[i] == '.') {
// 如果当前字符是空格或句号
if (number > max) {
// 更新最大单词长度
max = number;
}
number = 0; // 重置单词长度
word = 0; // 标记单词结束
} else if (word == 0) {
// 如果当前字符是单词的第一个字符
word = 1; // 标记单词开始
number++; // 增加单词长度
} else if (word == 1 && a[i] != '.') {
// 如果当前字符是单词的其他字符
number++; // 增加单词长度
}
}
// 输出最大单词长度
printf("%d", max);
return 0;
}
这道题本来是要求用指针做的,不过没办法了,做指针的题就害怕,顺便说一下灵感来自单词计数