24小时热门版块排行榜    

查看: 1096  |  回复: 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子 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +3 wangyl_123 2026-10-10 6/300 2026-10-11 15:04 by Abin0406
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[教师之家] 课题组会帮你通过考核么? +3 好运来~9527 2026-10-10 5/250 2026-10-11 09:00 by 好运来~9527
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
[有机交流] 各位大佬,路线设计求助 +6 zapen 2026-10-08 8/400 2026-10-10 15:59 by zapen
[基金申请] 入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍 +5 13108017953 2026-10-08 5/250 2026-10-10 11:15 by wdwd123
[有机交流] 我应该选哪条合成路线让实验成功率高一些? +5 jing816y 2026-10-08 9/450 2026-10-10 09:05 by zapen
信息提示
请填处理意见