吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1754|回复: 9
收起左侧

[求助] 如何结束循环,输出最后结果?

[复制链接]
18131431963 发表于 2021-10-8 16:54
#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:50
本帖最后由 HULANG-BTB 于 2021-10-8 17:51 编辑

[C] 纯文本查看 复制代码
#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语句移到循环体外面不就可以了?

免费评分

参与人数 1吾爱币 +1 收起 理由
18131431963 + 1 谢谢@Thanks!

查看全部评分

田田爱崽崽 发表于 2021-10-8 17:50
无闻无问 发表于 2021-10-8 19:35
你这for用的有意思…每个if中计算结果后,加break;
楚子沦i 发表于 2021-10-8 20:44
[C] 纯文本查看 复制代码
#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大哥写好了。
小能维尼 发表于 2021-10-8 22:18
四则运算代码块之前,break之后,是不是少了else?
你目前的循环,会输出每一次的运算结果,比如1+2+3+4,先是1+2输出3,然后是3+3输出6,然后是6+4输出10。
所以把printf("%d\n",b);移动到for循环外面去,x=b; 不用,依旧赋值就行。
不过你循环的唯一结束条件,就是输入#才能break出去。直觉应该用回车

免费评分

参与人数 1热心值 +1 收起 理由
18131431963 + 1 谢谢@Thanks!

查看全部评分

 楼主| 18131431963 发表于 2021-10-19 16:33
HULANG-BTB 发表于 2021-10-8 17:50
[mw_shl_code=c,true]#include
#include
#include

把printf语句移到循环体外面就没有结果输出了!
 楼主| 18131431963 发表于 2021-10-19 16:39
小能维尼 发表于 2021-10-8 22:18
四则运算代码块之前,break之后,是不是少了else?
你目前的循环,会输出每一次的运算结果,比如1+2+3+4, ...

如果不用x=b,则计算结果错误!
那个结束循环的条件不起作用!
 楼主| 18131431963 发表于 2021-10-19 16:41
无闻无问 发表于 2021-10-8 19:35
你这for用的有意思…每个if中计算结果后,加break;

加了后显示:[Error] 'else' without a previous 'if'
 楼主| 18131431963 发表于 2021-10-19 16:48
感谢大家回复!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表