PAT (Basic Level) Practice (中文)1011 A+B 和 C (15 分)
1011 A+B 和 C (15 分) 给定区间 [?2 ?31 ??,2 ?31 ?? ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。 输出格式: 对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。 输入样例: 4 1 2 3 2 3 4 2147483647 0 2147483646 0 -2147483648 -2147483647 输出样例: Case #1: false Case #2: true Case #3: true Case #4: false //方案1 用long long int类型进行存储,无需判断是否发生了越界 #include #include int main() { int T = 0; scanf("%d",&T); for (int i = 1; i <= T; i++) { long long int A,B,C;//定义为long long int类型 scanf("%lld %lld %lld",&A,&B,&C);//注意long long int类型的输入格式 if (A - C + B > 0) printf("Case #%d: truen",i);//输出时需加n换行 else printf("Case #%d: falsen",i); } return 0; } //方案2 用int类型进行存储,判断是否发生了越界再做比较 #include #include int main() { int T = 0; int A,C; scanf("%d",&T); for (int i = 1; i <= T; i++) { scanf("%d %d %d",&C); int D = A + B; if (D<0 && A>0 && B>0) printf("Case #%d: truen",i);//判断越界时的状态 else if(D > 0 && A<0 && B < 0) printf("Case #%d: falsen",i); else if(D>C) printf("Case #%d: truen",i);//否则正常比较输出即可 else printf("Case #%d: falsen",i); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |