输入后就运行不了
你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。
输入格式: 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。
输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例: It’s great to see you here.
#include<stdio.h>
int main()
{
char a;
gets_s(a,50);
int i,j=0;
for (i = 0; i < 50;i++)
{
while (a != ' ')
j++;
if (a == ' ')
{
printf("%d ", j);
j = 0;
}
else if (a == '.')
break;
}
}
你的程序运行不了是因为有一些错误。让我来帮你修改一下:
1. 首先,你在使用`gets_s`函数时没有给数组分配内存空间。
2. 其次,在遍历输入字符串时,你没有逐个读取字符。
3. 此外,在判断字符是否为空格时,你应该用`==`而不是`!=`。
4. 最后,你对字符长度的计数逻辑也有点问题。
下面是修改后的代码:
#include <stdio.h>
#define MAX_LENGTH 50
int main() {
char a;
gets_s(a, MAX_LENGTH);
int i = 0, j = 0;
while (a != '.') {
if (a == ' ') {
printf("%d ", j);
j = 0;
} else {
j++;
}
i++;
}
printf("%d", j);// 输出最后一个单词的长度
return 0;
}
现在你可以尝试再次运行程序,输入一个文本并以句号结尾,然后程序将输出每个单词的长度。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]