如何结束循环,输出最后结果?
#include <stdio.h>#include <stdlib.h>
#include <math.h>
int main()
{
int x,y,n=0,b=0;
char c;
printf("输入一个运算数为:\n");
scanf("%d",&x);
for(;;)
{
getchar();
printf("请输入运算符(+,-,*,/): \n");
scanf("%c",&c);
printf("输入另一个运算数为:\n");
scanf("%d",&y);
if(y=='#')break;
{
if(c=='+')
b=x+y;
else if(c=='-')
b=x-y;
else if(c=='*')
b=x*y;
else if(c=='/')
b=x/y;
}
x=b;
printf("%d\n",b);
}
return 0;
} 本帖最后由 HULANG-BTB 于 2021-10-8 17:51 编辑
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int x, y, n = 0, b = 0;
char c;
printf( "输入一个运算数为:\n" );
scanf( "%d", &x );
for (;; )
{
getchar();
printf( "请输入运算符(+,-,*,/): \n" );
scanf( "%c", &c );
printf( "输入另一个运算数为:\n" );
scanf( "%d", &y );
if ( y == '#' )
break;
{ // 这个块好像没什么用
if ( c == '+' )
b = x + y;
else if ( c == '-' )
b = x - y;
else if ( c == '*' )
b = x * y;
else if ( c == '/' )
b = x / y;
} // 这个块好像没什么用
x = b;
}
printf( "%d\n", b );
return(0);
}
把printf语句移到循环体外面不就可以了? 是不是可以用break? 你这for用的有意思…每个if中计算结果后,加break; #include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int x,y,n=0,b=0;
char c;
printf("输入一个运算数为:\n");
scanf("%d",&x);
for(;;)
{
getchar();
printf("请输入运算符(+,-,*,/): \n");
scanf("%c",&c);
printf("输入另一个运算数为:\n");
scanf("%d",&y);
if(y=='#')break;
{
if(c=='+')
b=x+y;
else if(c=='-')
b=x-y;
else if(c=='*')
b=x*y;
else if(c=='/')
b=x/y;
}
x=b;
printf("%d\n",b);
}
return 0;
}
你这个if(y='#')后面跟个break。。。然后后面又跟了个{。。。
写的有点问题,然后就是跳出循环是break,每个判断后面都跟个break就好了,然后如果是跳过这一轮的话是continue,推荐看一下基础的课程。然后具体的代码的话,hulang-btb大哥写好了。 四则运算代码块之前,break之后,是不是少了else?
你目前的循环,会输出每一次的运算结果,比如1+2+3+4,先是1+2输出3,然后是3+3输出6,然后是6+4输出10。
所以把printf("%d\n",b);移动到for循环外面去,x=b; 不用,依旧赋值就行。
不过你循环的唯一结束条件,就是输入#才能break出去。直觉应该用回车 HULANG-BTB 发表于 2021-10-8 17:50
#include
#include
#include
把printf语句移到循环体外面就没有结果输出了!{:1_893:} 小能维尼 发表于 2021-10-8 22:18
四则运算代码块之前,break之后,是不是少了else?
你目前的循环,会输出每一次的运算结果,比如1+2+3+4, ...
如果不用x=b,则计算结果错误!:handshake
那个结束循环的条件不起作用!{:1_923:} 无闻无问 发表于 2021-10-8 19:35
你这for用的有意思…每个if中计算结果后,加break;
加了后显示: 'else' without a previous 'if':handshake 感谢大家回复!
页:
[1]