问题描述
- 在产生布尔类型的表达式中对‘c’赋值如何解决
- /* 2、单词计数函数功能:统计输入的单词,然后输出,输出格式:X行,X单词,X个字符(字符包括输入
的换行符) */#include
#include ""head.h""Int32_t main(
Int32_t argc
const Int32_t* argv[]
){
Int32_t numline = 1numword = 1numchar = 0c = 0;[b] while ((c = getchar()) != '.') [/b][color=#FF0000][/color] /* 结束标志的实现 /
{
++numchar;
if (c == 'n') / 判断是不是换行 /
{
numline = numline + 1;
}
if ((c == ' ')||(c == 'n' )||(c == 't' )) / 判断是否有空格计算词的个数 */
{
numword = numword + 1;
}
}
printf(""character = %dnlines = %dnwords = %dn""numchar numline numword);return 0;
}
这个怎么把红色的 while ((c = getchar()) != '.') 替换掉 且不发生功能上的改变 通过MISRA C 规则检查会出现 在产生布尔类型的表达式中对‘c’赋值
解决方案
while(c=getchar() c!='.')
解决方案二:
for(c=getchar(); c!='.'; c=getchar())