家人们,很简单的初级问题,帮看看问题在哪?
c++吧
全部回复
仅看楼主
level 3
杀情2000 楼主
孩子刚学编程,这道题很简单很简单,写完后运行完全没问题,提交后判定为错。大家给看看
题目:
给出三个整数 𝑎,𝑏,𝑐,保证 𝑏≠0。
如果 𝑎+𝑏=𝑐,请你输出 plus。
如果 𝑎−𝑏=𝑐,请你输出 minus。
如果以上两条均不满足,请输出 illegal。
特别注意:保证 −231≤𝑎,𝑏,𝑐<231,𝑏≠0
输入格式
输入只有一行三个整数,依次表示 𝑎,𝑏,𝑐
输出格式
输出一行一个字符串表示答案。
输入样例1 2 3输出样例plus
孩子写的答案:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
if(a+b==c)
cout<<"plus";
else if(a-b==c)
cout<<"minus";
else
cout<<"illegal";
return 0;
}
提交答案判定为错误,我们哪错了.........
2024年06月14日 07点06分 1
level 3
杀情2000 楼主
求助了啊
2024年06月14日 07点06分 2
level 1
爆int了
2024年06月14日 07点06分 3
回复 杀情2000 :int太小装不下用long long,输出可能需要换行符建议加上endl
2024年06月14日 08点06分
啥意思啊,大神求解
2024年06月14日 07点06分
好像并不是这个问题.....
2024年06月14日 08点06分
明白你的意思了,但题目说了有个范围,且B不等于0。程序运行时倒也没说INT溢出的问题....
2024年06月14日 08点06分
level 12
cout << "plus"[吐舌]
2024年06月14日 08点06分 4
cout<<"plus"; 没问题啊。
2024年06月14日 08点06分
@杀情2000 一眼新人[滑稽]
2024年06月14日 09点06分
@杀情2000 是不是没有判b≠0?
2024年06月14日 09点06分
@TousunDong 不是,知道咋回事了,就是INT盖不住了,加LONG
2024年06月14日 11点06分
level 5
2的31次方是2147483648,应该超值了,用长整型试试。
2024年06月14日 08点06分 5
if建议加一下大括号,不然太多if嵌套容易错。
2024年06月14日 09点06分
@笔墨纸砚小圣诞 是长整形的事,谢谢各位。IF收到。加大括号确实好习惯
2024年06月14日 11点06分
level 1
用long
2024年06月14日 22点06分 6
level 2
实际上这题本身是弱智,数值范围并不影响加减判定,因为这是个循环群。
我敢说,判错是因为边界上的illegal行为被判合法了,你面对用例编程填两个if就能过
2024年06月15日 14点06分 7
1