24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 906  |  回复: 15

fengfeng子

银虫 (正式写手)

[求助] 初学者,C++纠错 已有2人参与

//这个是几个数相加得小代码,最后总是结果输不出来,麻烦哪位大神帮忙看一下
//多个数字的加减乘除
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;

int main()
{
        int num1=0;
        int num2;
        char ap;
        cout<<"Expression:";
        cin>>num1;
         if(!cin)exit(0);  //如果输入的类型不一致就错误
while(cin>>ap)
{
        if(ap!=';')cin>>num2;
        if(!cin)exit(0);
        switch(ap)
        {
        case'+':
                num1+=num2;
                break;
        case'-':
                num1-=num2;
                break;
        case'*':
                num1*=num2;
                break;
        case'/':
                num1/=num2;
                break;
        default:
        cout<<"error.\n";
        }
}
cout<<"result:"<<num1<<"\n";
getch();
return 0;
}
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

YouthUtopian

至尊木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fengfeng子: 金币+10, 有帮助 2015-08-05 17:31:37
while(cin>>ap) 有问题,这个while循环是个死循环,出不来。
2楼2015-08-05 16:51:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengfeng子

银虫 (正式写手)

引用回帖:
2楼: Originally posted by YouthUtopian at 2015-08-05 16:51:46
while(cin>>ap) 有问题,这个while循环是个死循环,出不来。

我也觉得是,但是不知道怎么改
3楼2015-08-05 17:29:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alexisalex

铁虫 (初入文坛)

【答案】应助回帖

可以通过代码,大概知道你的意思。就是输入一个长的计算字符串,类如:“3+2x4-2= "这样的字符串然后输出结果对吧!

你说的不出结果应该是因为你在”=“的后面没有加空格吧,注意你的代码的这一句
if(!cin)exit(0);  // 如果cin为null就退出

还有,看得出来你是新手!注意代码风格
658dd0e8jw1eurj1we6n6j21w02iou0x
4楼2015-08-05 18:24:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alexisalex

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by YouthUtopian at 2015-08-05 16:51:46
while(cin>>ap) 有问题,这个while循环是个死循环,出不来。

代码里面有跳出语句,注意!
658dd0e8jw1eurj1we6n6j21w02iou0x
5楼2015-08-05 18:26:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alexisalex

铁虫 (初入文坛)

引用回帖:
4楼: Originally posted by alexisalex at 2015-08-05 18:24:55
可以通过代码,大概知道你的意思。就是输入一个长的计算字符串,类如:“3+2x4-2= "这样的字符串然后输出结果对吧!

你说的不出结果应该是因为你在”=“的后面没有加空格吧,注意你的代码的这一句
if(!ci ...

上面我说的”没有加空格“不严谨,应该是没有加 空白字符
658dd0e8jw1eurj1we6n6j21w02iou0x
6楼2015-08-05 18:28:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

YouthUtopian

至尊木虫 (著名写手)

引用回帖:
3楼: Originally posted by fengfeng子 at 2015-08-05 17:29:55
我也觉得是,但是不知道怎么改...

#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;

int main()
{
        int num1=0;
        int num2;
        char ap;
        cout<<"Expression:";
        cin>>num1;
        if(!cin)exit(0);  //如果输入的类型不一致就错误

        while(cin>>ap)
        {
                if(ap!=';')cin>>num2;
                else break;
                if(!cin)exit(0);
                switch(ap)
                {
                case'+':
                        num1+=num2;
                        break;
                case'-':
                        num1-=num2;
                        break;
                case'*':
                        num1*=num2;
                        break;
                case'/':
                        num1/=num2;
                        break;
                default:
                        cout<<"error.\n";
                }
        }
        cout<<"result:"<<num1<<"\n";
        getch();
        return 0;
}
输入完之后按 分号(英文输入法下的)退出
7楼2015-08-05 18:52:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

YouthUtopian

至尊木虫 (著名写手)

引用回帖:
5楼: Originally posted by alexisalex at 2015-08-05 18:26:16
代码里面有跳出语句,注意!...

你是说 if(!cin) exit(0); 吗? 这只是针对输入的类型不一致做出判断。 while(cin>>ap) ,ap 是char型,键盘输入任何字符都可以看作char型。
8楼2015-08-05 18:55:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengfeng子

银虫 (正式写手)

引用回帖:
7楼: Originally posted by YouthUtopian at 2015-08-05 18:52:24
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;

int main()
{
        int num1=0;
        int num2;
        char ap;
        cout<<"Expression:";
        cin> ...

你只做了else break这一行的修改啊?循环跳出还是没有解决
9楼2015-08-05 21:23:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengfeng子

银虫 (正式写手)

引用回帖:
4楼: Originally posted by alexisalex at 2015-08-05 18:24:55
可以通过代码,大概知道你的意思。就是输入一个长的计算字符串,类如:“3+2x4-2= "这样的字符串然后输出结果对吧!

你说的不出结果应该是因为你在”=“的后面没有加空格吧,注意你的代码的这一句
if(!ci ...

”=“只有两种情况,一种是mun1=0,另一种是num1+=num2.我不知道这两处的等号后面加空格跟循环跳出有什么关系。
10楼2015-08-05 21:26:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fengfeng子 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600,320分求调剂 +5 大馋小子 2026-04-02 5/250 2026-04-02 14:32 by 二三365
[考研] 材料专业求调剂 +10 月月鸟木 2026-04-01 10/500 2026-04-02 12:57 by wxiongid
[考研] 找调剂 +6 楚乔乔 2026-04-01 6/300 2026-04-02 12:06 by xiaoranmu
[考研] 348环境工程调剂 +3 吴彦祖24k 2026-04-01 3/150 2026-04-02 09:14 by nanaliuyun
[考研] 303求调剂 +8 DLkz1314. 2026-03-30 8/400 2026-04-02 09:08 by sanrepian
[考研] 一志愿安徽大学计算机科学与技术学硕,331分求调剂 +5 蒋昌鹏qtj 2026-04-01 5/250 2026-04-02 08:10 by fxue1114
[考研] 350求调剂 +7 阿佳~ 2026-03-31 7/350 2026-04-01 16:12 by yanflower7133
[考研] 生物学296求调剂 +10 汤圆包 2026-03-29 14/700 2026-04-01 10:44 by 求调剂zz
[考研] 318求调剂 +8 七忆77 2026-04-01 8/400 2026-04-01 10:37 by Jaylen.
[考研] 求调剂,一志愿北林食品与营养095500,301分,已过六级,有科研经历 +4 快乐储蓄罐 2026-03-31 4/200 2026-04-01 09:26 by JourneyLucky
[考研] 349求调剂 +6 zwjjjjjj 2026-03-31 6/300 2026-04-01 09:16 by JourneyLucky
[考研] 考研生物与医药调剂 +7 铁憨憨123425 2026-03-31 7/350 2026-04-01 08:45 by JourneyLucky
[考研] 张芳铭-中国农业大学-环境工程专硕-298 +9 手机用户 2026-03-26 9/450 2026-03-31 18:09 by 544594351
[考研] 08工科,295,接受跨专业调剂 +6 lmnlzy 2026-03-30 6/300 2026-03-31 10:04 by cal0306
[考研] 一志愿中海洋320化学工程与技术学硕求调剂 +8 披星河 2026-03-30 8/400 2026-03-31 08:53 by lbsjt
[考研] 11408总分309,一志愿东南大学求调剂,不挑专业 +5 天赋带到THU 2026-03-29 6/300 2026-03-30 20:49 by dick_runner
[考研] 348求调剂 +6 小懒虫不懒了 2026-03-28 6/300 2026-03-30 10:29 by Evan_Liu
[考研] 332求92调剂 +8 蕉蕉123 2026-03-28 8/400 2026-03-29 10:46 by 周梓丹
[考研] 285求调剂 +4 AZMK 2026-03-27 7/350 2026-03-27 20:59 by AZMK
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-26 4/200 2026-03-27 08:04 by chemisry
信息提示
请填处理意见