c语言中printf到底是到了那个语句就执行还是程序结束后才一起执行呢

2025-03-24 12:37:40
推荐回答(3个)
回答1:

#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;
}

这里的循环是一环套一环的,在执行完两个循环后才做的打印语句,而又因为这里套在一个大的循环之下,所以打印完了还是会回到第一个循环下的。

回答2:

你要是要输一个出一个结果的话还是加循环吧。因为while((ch=getchar())!='\n')所以一回车循环就结束了

回答3:

你给printf里边加个"\n"试试~~~~~