24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 914  |  回复: 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专硕材料与化工348分求调剂 +9 上学啦! 2026-04-01 10/500 2026-04-03 01:13 by BruceLiu320
[考研] 一志愿北京科技大学材料工程085601,求调剂 +11 cdyw 2026-04-02 11/550 2026-04-02 23:06 by 马儿快快地跑
[考研] 081200-11408-276学硕求调剂 +5 崔wj 2026-04-02 5/250 2026-04-02 22:54 by pphmily
[考研] 工科 267求调剂 +3 wanwan00 2026-04-02 5/250 2026-04-02 21:42 by wanwan00
[考研] 324求调剂 +11 想上学求调 2026-04-02 11/550 2026-04-02 21:23 by 帕尔马拉特
[考研] 一志愿华南师范大学-22408计算机-292分-求华南师范大学调剂 +4 爱读书的小鳄鱼 2026-04-02 4/200 2026-04-02 18:35 by 求调剂zz
[考研] 085600,材料与化工321分求调剂 +11 大馋小子 2026-03-28 11/550 2026-04-02 15:59 by yunlongyang
[考研] 初试301,代码085701环境工程,本硕一致,四六级已过,有二区一作,共发表5篇论文 +6 axibli 2026-04-01 6/300 2026-04-02 13:42 by Ecowxq666!
[考研] 286分调剂 +20 Faune 2026-03-30 22/1100 2026-04-02 13:24 by clyblh
[考研] 材料求调剂 一志愿哈工大总分298分,前三科223分 +12 dongfang59 2026-03-27 12/600 2026-04-02 12:26 by ms629
[考研] 302求调剂一志愿北航070300,本科郑大化学 +8 圣日耳曼条 2026-04-01 11/550 2026-04-02 07:40 by chemdavid
[考研] 材料调剂 +14 一样YWY 2026-04-01 14/700 2026-04-01 21:07 by lijunpoly
[考研] 0703一志愿南师大334求调剂 +4 seven7yu 2026-03-30 4/200 2026-04-01 16:10 by oooqiao
[考研] 材料专硕306英一数二 +7 z1z2z3879 2026-03-31 7/350 2026-04-01 14:50 by ZXlzxl0425
[考研] 一志愿北京科技大学085601材料工程英一数二初试总分335求调剂 +5 双马尾痞老板2 2026-03-31 5/250 2026-04-01 09:04 by oooqiao
[考研] 材料科学与工程求调剂 +13 深V宿舍吧 2026-03-29 13/650 2026-03-31 19:50 by Dyhoer
[考研] 一志愿西电085401数一英一299求调剂 六级521 +4 爱吃大鸭梨 2026-03-31 4/200 2026-03-31 11:51 by 搏击518
[考研] 085600 286分 材料求调剂 +11 麻辣鱿鱼 2026-03-27 12/600 2026-03-30 19:33 by Wang200018
[考研] 数一英一271专硕(085401)求调剂,可跨 +7 前行必有光 2026-03-28 8/400 2026-03-28 23:22 by 小木虫tim
[考研] 295求调剂 +5 1428151015 2026-03-27 6/300 2026-03-28 04:04 by fmesaito
信息提示
请填处理意见