PAT B1011 -- A+B和C

 第一次在CSDN上写博客,毕业以后工作有一年半了,一直再写Windows客户端服务,快过去两年了,感觉自己的C++水没有太大的提升,决定从现在开始练习一些C++在线编程,报名了今年的PAT乙级考试,现在在牛客网刷题。准备用这个账号来写一些解体报告与心得,和大家分享。向更多大神们学习。

今天做的是第一题A+B>C, 题目是这样的:

给定区间[-2^31, 2^31]内的三个整数A,B,C,请判断A+B是否大于C

输入格式是第一行输入测试用例个数T(T<=10), 然后给出T组测试用例,每组用例顺序输入A,B,C,空格分离,

如果A+B>C, 输出Case #X : true, 反之输出Case #X : false.


下面是我的代码:

#include <iostream>
using namespace std;

int main()
{
	int i = 0;
	int t;
	cin >> t;
	
	//检测输入的t值,如果超过10直接返回
	if (t > 10)
	{
		return -1;
	}

	long a, b, c;
	//最初我是用For循环写的输入,发现总得WA,后来知道是要多组测试数据
	while (cin >> a >> b >> c)
	{
		if (a + b > c)
		{
			cout << "Case #" << i + 1 << ": true" << endl;
		}
		else
		{
			cout << "Case #" << i + 1 << ": false" << endl;
		}
		i = i + 1;
		if(i > t)
		{
			return 1;
		}
	}

	return 0;
}


虽然这道题目非常的简单,但是我还是有一些心得的:

1. 这一年半的工作中积累的,对输入的参数做检测。

2. 数据类型定义成long, 因为int未必是4字节。

3. 关于输入依稀记得很久以前大学C语言有个while(scanf("%d %d",&a, &b) != EOF)来输入多组数据,但是C++不知道怎么写,然后问了大学室友,知道可以写成while(cin >> a){}。

4. 看题目不仔细,Case的C一开始是小写,空格没有弄好,导致提交了多次。


后来看了柳神的解题代码,用了一个?:运算符就输出了,真的好厉害,也粘贴一下核心代码

for (int i = 0; i < n; i++) {
        long long int a, b, c;
        scanf("%lld%lld%lld", &a, &b, &c);
        printf("Case #%d: %s\n", i + 1, a + b > c ? "true" : "false");
    }







  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值