程序改错。下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。[提示:判断是否有新单词出现的方法是——当前被检验的字符不是空格,而前一被检验字符是空格,则表示有新单词出现。] #include<stdio.h> #define ARR_SIZE 80; main() { char str[ARR_SIZE]; int i, num; gets(str); if(str[0] != ' ' && str[0] != '\0') { num = 1; } else { num = 0; } for(i = 1 ; str[i] != '\0'; i++) { if(str[i] != ' ' && str[i-1] = ' ') { num++; } } printf("num=%d\n", num); }
时间: 2024-02-01 15:04:23 浏览: 101
输入一页文字,程序可以统计出文字、数字、空格的个数。
5星 · 资源好评率100%
好的,这里是改正后的代码:
```c
#include <stdio.h>
#define ARR_SIZE 80
int main() {
char str[ARR_SIZE];
int i, num;
gets(str);
if (str[0] != ' ' && str[0] != '\0') {
num = 1;
} else {
num = 0;
}
for (i = 1; str[i] != '\0'; i++) {
if (str[i] != ' ' && str[i - 1] == ' ') { // 修正判断条件
num++;
}
}
printf("num=%d\n", num);
return 0;
}
```
主要的改正点是在 `for` 循环中判断新单词的条件上。原代码中使用了 `=` 赋值符号,导致编译出错。应该使用 `==` 进行相等判断,判断当前字符不是空格,而前一个字符是空格,才能算作一个新单词的出现。
阅读全文