我已经使这个程序计算像'2 + 6 - 9'这样的表达式(数字和运算符之间有空格),但最后一个if块不正确。如何在收到\ n时中断循环,如果没有则还存储输入。
#include <stdio.h>
#include<stdlib.h>
void main()
{
char oper;
int sum,y;
scanf("%d %c",&sum,&oper);
while(1)
{
scanf("%d",&y);
if(oper=='+')
sum += y;
else if(oper=='-')
sum -= y;
else if(oper=='/')
sum /= y;
else if(oper=='*')
sum += y;
if((scanf("%c",&oper))=='\n')
break;
}
printf("\n =%d",sum);
}
成功时,该函数返回成功填充的参数列表的项数。
替换这部分:
if((scanf("%c",&oper))=='\n')
break;
有:
if(scanf("%c",&oper) && oper=='\n')
break;
这个:
scanf()
是否对oper
有任何价值\n