#include
int main()
{int op1=0,op2=0,result;
char ch,op;
int flag=0;
//按字符读入四则运算
while((ch=getchar())!='\n')
{
while(ch!='=') //等号结束四则运算的输入
{ if(ch>='0'&&ch<='9') //操作数的处理
//flag:0第一个操作数,1第二个操作数
if(!flag) op1=op1*10+ch-'0';
else op2=op2*10+ch-'0';
else if(ch=='+'||ch=='-'||ch=='*'||ch=='/')//操作符处理
{op=ch; flag=1;} //转换操作数
ch=getchar();
}
switch(op)
{ case '+': result=op1+op2;break;
case '-': result=op1-op2;break;
case '*': result=op1*op2;break;
case '/': result=op2?op1/op2:0;break;
}
printf("%d%c%d=%d\t",op1,op,op2,result);
flag=0;op1=0,op2=0; //初始化下一四则运算式
}
putchar('\n');
return 0;
}
这里的循环是一环套一环的,在执行完两个循环后才做的打印语句,而又因为这里套在一个大的循环之下,所以打印完了还是会回到第一个循环下的。
你要是要输一个出一个结果的话还是加循环吧。因为while((ch=getchar())!='\n')所以一回车循环就结束了
你给printf里边加个"\n"试试~~~~~