#include<iostream> #include<cstdio> usingnamespace std; intmain() { int a; cin >> a; if (a % 100 == 0) { if (a % 400 == 0) { cout << "yes" << endl; } else { cout << "no" << endl; } } else { if (a % 4 == 0) { cout << "yes" << endl; } else { cout << "no" << endl; } } return0; }
条件表达式
与 &&
或 ||
非 !
练习
最大值 输入三个数,输出三个数中的最大值(使用条件表达式)
1 2 3 4 5 6 7 8 9 10 11 12 13
#include<iostream> #include<cstdio> usingnamespace std; intmain() { int a, b, c; cin >> a >> b >> c; if (a >= b && a >= c) cout << a << endl; elseif (b >= a && b >= c) cout << b << endl; else cout << c << endl;
#include<iostream> #include<cstdio> usingnamespace std; intmain() { int n; double p; cin >> n >> p; if (n == 1) { printf("Total: R$ %.2lf", p * 4); } elseif (n == 2) { printf("Total: R$ %.2lf", p * 4.5); } elseif (n == 3) { printf("Total: R$ %.2lf", p * 5); } elseif (n == 4) { printf("Total: R$ %.2lf", p * 2); } elseif (n == 5) { printf("Total: R$ %.2lf", p * 1.5); } return0; }
区间
给定一个浮点数,请你判断该数字属于以下哪个区间:[0,25],(25,50],(50,75],(75,100]。 如果给定的数值小于 0 或大于 100,则程序输出 Fora de intervalo,表示超出范围。 开区间 (a,b):在实数 a 和实数 b 之间的所有实数,但不包含 a 和 b。 闭区间 [a,b]:在实数 a 和实数 b 之间的所有实数,包含 a 和 b。
输入格式
输入一个浮点数。
输出格式
判断输入数值位于哪个区间,按格式 Intervalo x 输出,其中 x 为区间范围 [0,25],(25,50],(50,75],(75,100] 中的一个。
#include<iostream> #include<cstdio> usingnamespace std; intmain() { double a; scanf("%lf", &a); if (a >= 0 && a <= 25) { printf("Intervalo [0,25]"); } elseif (a > 25 && a <= 50) { printf("Intervalo (25,50]"); } elseif (a > 50 && a <= 75) { printf("Intervalo (50,75]"); } elseif (a > 75 && a <= 100) { printf("Intervalo (75,100]"); } else { printf("Fora de intervalo"); } return0; }
三角形
读取三个浮点数 A,B 和 C 并验证是否可以用它们形成三角形。 如果可能,则计算并输出三角形的周长:
Perimetro = XX.X
如果不可能,则计算并输出以 A 和 B 为底以 C 为高的梯形面积:
Area = XX.X
输入格式
共一行,包含三个浮点数 A,B,C。
输出格式
按题目描述格式,输出答案,答案保留一位小数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include<iostream> #include<cstdio> usingnamespace std; intmain() { double a, b, c; scanf("%lf%lf%lf", &a, &b, &c); if (a + b > c && a + c > b && b + c > a) { printf("Perimetro = %.1lf", a + b + c); } else { printf("Area = %.1lf", (a + b) * c * 0.5); } return0; }
游戏时间
读取两个整数 A 和 B,表示游戏的开始时间和结束时间,以小时为单位。
然后请你计算游戏的持续时间,已知游戏可以在一天开始并在另一天结束,最长持续时间为 24 小时。
如果 A 与 B 相等,则视为持续了 24 小时。
输入格式
共一行,包含两个整数 A 和 B。
输出格式
输出格式为 O JOGO DUROU X HORA(S),其中 X 为游戏持续时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include<iostream> #include<cstdio> usingnamespace std; intmain() { int a, b; cin >> a >> b; if (a > b) printf("O JOGO DUROU %d HORA(S)", 24 - a + b); elseif (a < b) printf("O JOGO DUROU %d HORA(S)", b -a); elseif (a = b) printf("O JOGO DUROU 24 HORA(S)"); return0; }
#include<iostream> #include<cstdio> usingnamespace std; intmain() { int a, b, c, d; cin >> a >> b >> c >> d; if (b > c && d > a && (c + d) > (a + b) && c > 0 && d > 0 && a % 2 == 0) cout << "Valores aceitos" << endl; else cout << "Valores nao aceitos" << endl; return0; }
#include<iostream> #include<cstdio> usingnamespace std; intmain() { double a, b, c, x, y, z; cin >> a >> b >> c; if (a < b) { x = a; a = b; b = x; } if (a < c) { y = a; a = c; c = y; } if (b < c) { z = b; b = c; c = z; } if (a >= b + c) cout << "NAO FORMA TRIANGULO" << endl; else { if (a * a > b * b + c * c) cout << "TRIANGULO OBTUSANGULO" << endl; if (a * a < b * b + c * c) cout << "TRIANGULO ACUTANGULO" << endl; if (a * a == b * b + c * c) cout << "TRIANGULO RETANGULO" << endl; if (a == b && b == c) cout << "TRIANGULO EQUILATERO" << endl; elseif (a == b || b == c) cout << "TRIANGULO ISOSCELES" << endl; } return0; }
游戏时间2
读取四个整数 A,B,C,D,用来表示游戏的开始时间和结束时间。
其中 A 和 B 为开始时刻的小时和分钟数,C 和 D 为结束时刻的小时和分钟数。
请你计算游戏的持续时间。比赛最短持续 1 分钟,最长持续 24 小时。
输入格式
共一行,包含四个整数 A,B,C,D。
输出格式
输出格式为 O JOGO DUROU X HORA(S) E Y MINUTO(S),表示游戏共持续了 X 小时 Y 分钟。
#include<iostream> #include<cstdio> usingnamespace std; intmain() { int a, b, c, d, x, y; cin >> a >> b >> c >> d; if (a == c) { if (b == d) { x = 24; y = 0; } if (b < d) { x = 0; y = d - b; } if (b > d) { x = 23; y = 60 + d - b; } } else { if (a < c) { if (b <= d) { x = c - a; y = d - b; } else { x = c - a -1; y = 60 - b + d; } } else { if (b <= d) { x = 24 - a + c; y = d - b; } else { x = 24 - a + c - 1; y = 60 - b + d; } } } printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)", x, y); return0; }
缴税
读取一个保留两位小数的浮点数值,表示一个公民的工资。
在公民缴纳个人所得税时,不同收入部分需要缴税的税率也是不同的。
请根据下表确定该公民需要缴纳的个人所得税是多少。
输入格式
共一行,包含一个浮点数。
输出格式
如果公民需要缴税,则输出所需缴纳的税额。输出格式为 R$ X,其中 X 为个税的金额,保留两位小数。
#include<iostream> #include<cstdio> usingnamespace std; intmain() { int a, b, c; cin >> a >> b >> c; int x = a; int y = b; int z = c; if (a > b) { int t = a; a = b; b = t; } if (a > c) { int t = a; a = c; c = t; } if (b > c) { int t = b; b = c; c = t; } printf("%d\n%d\n%d\n\n%d\n%d\n%d\n", a, b, c, x, y, z); return0; }
这 4 个分数的权重分别为 2,3,4,1,请你计算学生成绩的平均值 X 并输出 Media: X。
接下来分为以下三种情况:
如果平均值为 7.0 或更高,则输出 Aluno aprovado.。
如果平均值小于 5.0,则输出 Aluno reprovado.。
如果平均值大于等于 5.0 并且小于 7.0,则输出 Aluno em exame.,并再读取一个数字 Y,然后输出 Nota do exame: Y。接下来重新计算平均值 Z=(X+Y)/2,如果 Z 大于或等于 5.0,则输出 Aluno aprovado.,否则输出 Aluno reprovado.。最后输出 Media final: Z,表示学生的最终成绩。