由于代码是当前的,它输出:
hjk
hg
kjgj
Word 0: 12
Word 1: 0
Word 2: 0
Run Code Online (Sandbox Code Playgroud)
它应该是:
Word 0: 3
Word 1: 2
Word 2: 4
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么,这里是代码:
#include <stdio.h>
#define MAX_WORDS_COUNT 10
main()
{
int wordsLength[MAX_WORDS_COUNT];
int i, c, inspace = 0, currWord = 0;
for (i = 0; i < MAX_WORDS_COUNT; i++)
wordsLength[i] = 0;
while ((c = getchar()) != EOF) {
if (c != ' ' || c != '\t' || c != '\n') {
wordsLength[currWord]++;
inspace = 0;
} else {
if (inspace == 0)
currWord++;
inspace = 1;
}
}
for(i = 0; i < MAX_WORDS_COUNT; i++)
printf("Word %d: %d\n", i, wordsLength[i]);
}
Run Code Online (Sandbox Code Playgroud)
if (c != ' ' || c != '\t' || c != '\n') {
Run Code Online (Sandbox Code Playgroud)
你应该使用&&.你有3个相互排斥的条件,并且正在对它们进行ORing,这意味着所有条件都满足这一要求.
if (c != ' ' && c != '\t' && c != '\n') {
Run Code Online (Sandbox Code Playgroud)
将工作.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |