2 u011046042 u011046042 于 2014.12.03 14:38 提问

在产生布尔类型的表达式中对‘c’赋值如何解决

/* 2、单词计数函数功能:统计输入的单词,然后输出,输出格式:X行,X单词,X个字符(字符包括输入
的换行符) */

#include
#include "head.h"

Int32_t main(
Int32_t argc,
const Int32_t* argv[]
)

{
Int32_t numline = 1,numword = 1,numchar = 0,c = 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 = %d\nlines = %d\nwords = %d\n",numchar, numline, numword);

return 0;

}

这个怎么把红色的 while ((c = getchar()) != '.') 替换掉 且不发生功能上的改变 通过MISRA C 规则检查会出现 在产生布尔类型的表达式中对‘c’赋值

2个回答

piaobotudou
piaobotudou   2014.12.03 21:35

while(c=getchar(), c!='.')

eagleyan
eagleyan   Rxr 2014.12.06 08:05

for(c=getchar(); c!='.'; c=getchar())

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!