C++ PAT 乙级B1011 A+B和C
2019-02-26 20:02
183 查看
C++ PAT 乙级B1011 A+B和C
题目描述
给定区间[-2³¹,2³¹]内的三个整数A、B和C,请判断A+B是否大于C。
输入格式
第一行给出正整数T(小于等于10),即测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。
输出格式
对每组测试用例,如果A+B>C,在一行中输出“case#X :true”;否则输出“case#X :false”,其中X是测试用例的编号
输入样例
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483648
输出样例
case#1 :false
case#2 :true
case#3 :true
case#4 :false
笔者本人思路分析
(1)使用数组存储输入的数据,利用下标进行数据加和和比较。
(2)限制存入的数组大小使用最开始时输入的样例T*3
(3)若是在PAT系统中提交,一定要注意输出的格式!版主就被坑惨了。。。输出时冒号和“true”、“false”之间没加空格,一直提示格式错误。。。一直改!终于对了!
代码改正过,已经无错。仅供参考
代码
#include<iostream> #include <stdio.h> #include <math.h> using namespace std; int main() { long long num_in[40]; //存储输入样例 int i=0; char c; int T; int a=1; cin>>T; //输入样例的组数 c=getchar(); //获取输入字符 if(T>10||c!='\n'||T<0) { return 0; } while(i<T*3) //终止条件为数组中的数达到样例应有的数目 { c=getchar(); //获取输入字符 if((c>='0'&&c<='9')||c=='-') //输入正整数、负整数 { ungetc(c,stdin); cin>> num_in[i]; if(num_in[i]<pow(-2,31)||num_in[i]>pow(2,31)) { return 0; } else {i++;} } } for(int j=0;j<i;j=j+3) { if(num_in[j]+num_in[j+1]>num_in[j+2]) { cout<<"Case #"<<a<<": true"<<endl; } else { cout<<"Case #"<<a<<": false"<<endl; } a++; } return 0; }
此代码仅供参考
结果截图
如需转载,请联系版主获得授权!
相关文章推荐
- PAT乙级(Basic Level)1002(C++)
- pat 乙级 1015. 德才论 (25) c++
- PAT乙级(C++)1016-1020
- PAT乙级(Bascic Level)1037(C++)
- PAT乙级(Basic Level)1048(C++)
- c++ PAT乙级题目1001
- PAT乙级(Basic Level)1050(C++)
- PAT乙级1004. 成绩排名 C++
- PAT乙级1027:打印沙漏(C++)
- PAT乙级(Basic Level)1039(C++)
- PAT乙级(Basic Leve)1043(C++)
- PAT乙级1004题目:成绩排名 C++
- PAT乙级(Basic Level)1041(C++)
- PAT乙级(Basic Level)1029(C++)
- PAT乙级1002. 写出这个数 C++
- PAT-乙级B1011-long long型(vc 6.0不兼容)
- PAT乙级(Basic Level)1011(C++)
- PAT乙级1001. 害死人不偿命的(3n+1)猜想 (15) C++
- PAT_乙级1008 C++
- PAT乙级(Basic Level)1004(C++/Java)