Compare commits
2 Commits
012b17b867
...
ddd64d9607
Author | SHA1 | Date | |
---|---|---|---|
ddd64d9607 | |||
e2d637b4af |
15
【额外练习】选择结构/7-1 选择-孔融让梨.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int a, b;
|
||||
|
||||
scanf("%d%d", &a, &b);
|
||||
|
||||
if (a < b) {
|
||||
printf("%d\n", a);
|
||||
} else {
|
||||
printf("%d\n", b);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-1 选择-孔融让梨.jpg
Normal file
After Width: | Height: | Size: 325 KiB |
17
【额外练习】选择结构/7-10 选择-三角形分类.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int a, b, c;
|
||||
|
||||
scanf("%d%d%d", &a, &b, &c);
|
||||
|
||||
if (a == b && b == c) {
|
||||
printf("bian\n");
|
||||
} else if (a == b || b == c || a == c) {
|
||||
printf("yao\n");
|
||||
} else {
|
||||
printf("triangle\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
21
【额外练习】选择结构/7-11 选择-五分制转百分制.c
Normal file
@ -0,0 +1,21 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
char grade;
|
||||
|
||||
scanf("%c", &grade);
|
||||
|
||||
if (grade == 'A') {
|
||||
printf("85~100\n");
|
||||
} else if (grade == 'B') {
|
||||
printf("70~84\n");
|
||||
} else if (grade == 'C') {
|
||||
printf("60~69\n");
|
||||
} else if (grade == 'D') {
|
||||
printf("<60\n");
|
||||
} else {
|
||||
printf("Error\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
15
【额外练习】选择结构/7-12 选择-大小写转换.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
char c;
|
||||
|
||||
scanf("%c", &c);
|
||||
|
||||
if (c >= 'a' && c <= 'z') {
|
||||
printf("%c\n", c - 32);
|
||||
} else if (c >= 'A' && c <= 'Z') {
|
||||
printf("%c\n", c + 32);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
【额外练习】选择结构/7-13 选择-体积最大.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int a, b, c;
|
||||
|
||||
scanf("%d%d%d", &a, &b, &c);
|
||||
|
||||
if (a > b && a > c) {
|
||||
printf("%d\n", a);
|
||||
} else if (b > a && b > c) {
|
||||
printf("%d\n", b);
|
||||
} else {
|
||||
printf("%d\n", c);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
16
【额外练习】选择结构/7-14 选择-N以内所有正整数和.c
Normal file
@ -0,0 +1,16 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
int sum = 0;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
sum += i;
|
||||
}
|
||||
|
||||
printf("%d\n", sum);
|
||||
|
||||
return 0;
|
||||
}
|
51
【额外练习】选择结构/7-15 选择-简易计算机.c
Normal file
@ -0,0 +1,51 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int x, a, b, c;
|
||||
|
||||
scanf("%d%d%d%d", &x, &a, &b, &c);
|
||||
|
||||
switch (x) {
|
||||
case 0:
|
||||
printf("%d", a + b);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
printf("%d", a - b);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
printf("%d", a * b);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
printf("%d", a / b);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
printf("%d", a % b);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
printf("%d", a ? b : c);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
printf("%d", a > b);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
printf("%d", a < b);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
printf("%d", a != b);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
printf("%d", a == b);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
12
【额外练习】选择结构/7-16 选择-简单的运算.c
Normal file
@ -0,0 +1,12 @@
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double n;
|
||||
|
||||
scanf("%lf", &n);
|
||||
|
||||
printf("%d %d %.5lf\n", (int)ceil(n), (int)floor(n), n);
|
||||
|
||||
return 0;
|
||||
}
|
19
【额外练习】选择结构/7-17 选择-水仙花数.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
int a = n / 100;
|
||||
int b = n / 10 % 10;
|
||||
int c = n % 10;
|
||||
|
||||
if (n == a * a * a + b * b * b + c * c * c) {
|
||||
printf("yes\n");
|
||||
} else {
|
||||
printf("no\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
【额外练习】选择结构/7-18 选择-三角形面积.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double a, b, c;
|
||||
|
||||
scanf("%lf%lf%lf", &a, &b, &c);
|
||||
|
||||
if (a + b > c && a + c > b && b + c > a) {
|
||||
double p = (a + b + c) / 2;
|
||||
double s = sqrt(p * (p - a) * (p - b) * (p - c));
|
||||
printf("%.2lf %.2lf\n", s, a + b + c);
|
||||
} else {
|
||||
printf("no triangle\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
18
【额外练习】选择结构/7-19 选择-完全平方数.c
Normal file
@ -0,0 +1,18 @@
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
int m = sqrt(n);
|
||||
|
||||
if (m * m == n) {
|
||||
printf("Yes\n");
|
||||
} else {
|
||||
printf("No\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
15
【额外练习】选择结构/7-2 选择-奇偶判断.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int a;
|
||||
|
||||
scanf("%d", &a);
|
||||
|
||||
if (a % 2 == 1) {
|
||||
printf("YES\n");
|
||||
} else {
|
||||
printf("NO\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-2 选择-奇偶判断.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
15
【额外练习】选择结构/7-20 选择-矩形与点的位置.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int xL, yL, xR, yR, x, y;
|
||||
|
||||
scanf("%d%d%d%d%d%d", &xL, &yL, &xR, &yR, &x, &y);
|
||||
|
||||
if (x >= xL && x <= xR && y <= yL && y >= yR) {
|
||||
printf("Yes\n");
|
||||
} else {
|
||||
printf("No\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
【额外练习】选择结构/7-21 选择-数的判别.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
if (n % 2 == 0) {
|
||||
printf("%d is an even number\n", n);
|
||||
} else if (n % 3 == 0) {
|
||||
printf("%d is an odd number,it can be divided by 3\n", n);
|
||||
} else {
|
||||
printf("%d is an odd number,it can't be divided by 3\n", n);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
31
【额外练习】选择结构/7-22 选择-销售菜单.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
switch (n) {
|
||||
case 1:
|
||||
printf("8\n");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
printf("4.5\n");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
printf("12.8\n");
|
||||
break;
|
||||
|
||||
case 4:
|
||||
printf("3\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Exit\n");
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
20
【额外练习】选择结构/7-23 选择-电话费.c
Normal file
@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int t;
|
||||
|
||||
scanf("%d", &t);
|
||||
|
||||
double s1 = 25 + 0.1 * t;
|
||||
double s2 = 20;
|
||||
|
||||
if (t >= 100) s2 = 0.3 * t;
|
||||
|
||||
if (s1 > s2) {
|
||||
printf("2\n");
|
||||
} else {
|
||||
printf("1\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
【额外练习】选择结构/7-24 选择-税收计算1.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int x;
|
||||
|
||||
scanf("%d", &x);
|
||||
|
||||
if (x <= 800) {
|
||||
printf("0.0\n");
|
||||
} else if (x <= 4000) {
|
||||
printf("%.1lf\n", (x - 800) * 0.15);
|
||||
} else {
|
||||
printf("%.1lf\n", x * 0.1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
15
【额外练习】选择结构/7-25 选择-自然数.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double a;
|
||||
|
||||
scanf("%lf", &a);
|
||||
|
||||
if (a >= 0 && (int)a == a) {
|
||||
printf("Yes\n");
|
||||
} else {
|
||||
printf("No\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
31
【额外练习】选择结构/7-26 选择-宝藏.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int x;
|
||||
|
||||
scanf("%d", &x);
|
||||
|
||||
int canFill = 0;
|
||||
|
||||
for (int a = 0; a <= x / 4; a++) {
|
||||
for (int b = 0; b <= x / 5; b++) {
|
||||
for (int c = 0; c <= x / 7; c++) {
|
||||
// 计算当前组合的体积
|
||||
if (4 * a + 5 * b + 7 * c == x) {
|
||||
canFill = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (canFill) break;
|
||||
}
|
||||
if (canFill) break;
|
||||
}
|
||||
|
||||
if (canFill) {
|
||||
printf("ni bu yao guo lai a!\n");
|
||||
} else {
|
||||
printf("What a lucky day!\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
24
【额外练习】选择结构/7-27 选择-回文数.c
Normal file
@ -0,0 +1,24 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
int a, b, c, d, e, f, g;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
a = n / 1000000;
|
||||
b = n / 100000 % 10;
|
||||
c = n / 10000 % 10;
|
||||
d = n / 1000 % 10;
|
||||
e = n / 100 % 10;
|
||||
f = n / 10 % 10;
|
||||
g = n % 10;
|
||||
|
||||
if (a == g && b == f && c == e) {
|
||||
printf("Yes\n");
|
||||
} else {
|
||||
printf("No\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
16
【额外练习】选择结构/7-28 选择-时钟.c
Normal file
@ -0,0 +1,16 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int h, m;
|
||||
|
||||
scanf("%d:%d", &h, &m);
|
||||
|
||||
double angle = 30 * h - 5.5 * m;
|
||||
|
||||
if (angle < 0) angle = -angle;
|
||||
if (angle > 180) angle = 360 - angle;
|
||||
|
||||
printf("%.3lf\n", angle);
|
||||
|
||||
return 0;
|
||||
}
|
31
【额外练习】选择结构/7-29 选择-求解一元二次方程.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double a, b, c;
|
||||
|
||||
scanf("%lf%lf%lf", &a, &b, &c);
|
||||
|
||||
double delta = b * b - 4 * a * c;
|
||||
|
||||
if (delta > 0) {
|
||||
double x1 = (-b - sqrt(delta)) / (a * 2);
|
||||
double x2 = (-b + sqrt(delta)) / (a * 2);
|
||||
|
||||
if (x1 > x2) {
|
||||
double temp = x1;
|
||||
x1 = x2;
|
||||
x2 = temp;
|
||||
}
|
||||
|
||||
printf("%.2lf %.2lf\n", x1, x2);
|
||||
} else if (delta == 0) {
|
||||
double x1 = -b / (a * 2);
|
||||
|
||||
printf("%.2lf\n", x1);
|
||||
} else {
|
||||
printf("No solution\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
15
【额外练习】选择结构/7-3 选择-ASCII值.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
char c;
|
||||
|
||||
scanf("%c", &c);
|
||||
|
||||
if ('0' <= c && c <= '9') {
|
||||
printf("%d\n", c);
|
||||
} else {
|
||||
printf("input error\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-3 选择-ASCII值.jpg
Normal file
After Width: | Height: | Size: 298 KiB |
20
【额外练习】选择结构/7-30 选择-硬币游戏.c
Normal file
@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int a, b;
|
||||
|
||||
scanf("%d%d", &a, &b);
|
||||
|
||||
// [Theorem]
|
||||
// In a normal nim game, the player making the first move has a winning strategy
|
||||
// if and only if the nim-sum of the sizes of the heaps is not zero. Otherwise,
|
||||
// the second player has a winning strategy.
|
||||
// Source: https://en.wikipedia.org/wiki/Nim
|
||||
if ((a ^ b) == 0) {
|
||||
printf("abcdxyzk\n");
|
||||
} else {
|
||||
printf("AekdyCoin\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
29
【额外练习】选择结构/7-31 选择-猜数字游戏.c
Normal file
@ -0,0 +1,29 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int total, andy, ban;
|
||||
|
||||
scanf("%d%d%d", &total, &andy, &ban);
|
||||
|
||||
int andyDiff = total - andy;
|
||||
int banDiff = total - ban;
|
||||
|
||||
if (andyDiff < 0) andyDiff = -andyDiff;
|
||||
if (banDiff < 0) banDiff = -banDiff;
|
||||
|
||||
if (andyDiff == banDiff) {
|
||||
if (andy < ban) {
|
||||
printf("Andy\n");
|
||||
} else if (andy == ban) {
|
||||
printf("Peace\n");
|
||||
} else {
|
||||
printf("Ban\n");
|
||||
}
|
||||
} else if (andyDiff < banDiff) {
|
||||
printf("Andy\n");
|
||||
} else {
|
||||
printf("Ban\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
21
【额外练习】选择结构/7-32 选择-扑克.c
Normal file
@ -0,0 +1,21 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
|
||||
scanf("%d", &n);
|
||||
|
||||
if (n >= 1 && n <= 10) {
|
||||
printf("%d\n", n);
|
||||
} else if (n == 11) {
|
||||
printf("J\n");
|
||||
} else if (n == 12) {
|
||||
printf("Q\n");
|
||||
} else if (n == 13) {
|
||||
printf("K\n");
|
||||
} else {
|
||||
printf("NO\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
15
【额外练习】选择结构/7-4 选择-闰年.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int year;
|
||||
|
||||
scanf("%d", &year);
|
||||
|
||||
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
|
||||
printf("YES\n");
|
||||
} else {
|
||||
printf("NO\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-4 选择-闰年.jpg
Normal file
After Width: | Height: | Size: 259 KiB |
15
【额外练习】选择结构/7-5 选择-排序.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double a, b;
|
||||
|
||||
scanf("%lf%lf", &a, &b);
|
||||
|
||||
if (a > b) {
|
||||
printf("%.3lf %.3lf\n", a, b);
|
||||
} else {
|
||||
printf("%.3lf %.3lf\n", b, a);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-5 选择-排序.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
18
【额外练习】选择结构/7-6 选择-分段函数3.c
Normal file
@ -0,0 +1,18 @@
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double x;
|
||||
|
||||
scanf("%lf", &x);
|
||||
|
||||
if (x < 1) {
|
||||
printf("%.3lf\n", x);
|
||||
} else if (1 <= x && x < 10) {
|
||||
printf("%.3lf\n", sqrt(x * 2 - 1));
|
||||
} else { // x >= 10
|
||||
printf("%.3lf\n", log(x * 3 - 11));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-6 选择-分段函数3.jpg
Normal file
After Width: | Height: | Size: 260 KiB |
18
【额外练习】选择结构/7-7 选择-圆塔.c
Normal file
@ -0,0 +1,18 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
double x, y;
|
||||
|
||||
scanf("%lf%lf", &x, &y);
|
||||
|
||||
if ((x - 2) * (x - 2) + (y - 2) * (y - 2) <= 1
|
||||
|| (x + 2) * (x + 2) + (y - 2) * (y - 2) <= 1
|
||||
|| (x + 2) * (x + 2) + (y + 2) * (y + 2) <= 1
|
||||
|| (x - 2) * (x - 2) + (y + 2) * (y + 2) <= 1) {
|
||||
printf("10\n");
|
||||
} else {
|
||||
printf("0\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
【额外练习】选择结构/7-7 选择-圆塔.jpg
Normal file
After Width: | Height: | Size: 308 KiB |
19
【额外练习】选择结构/7-8 选择-买奶茶.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int x;
|
||||
|
||||
scanf("%d", &x);
|
||||
|
||||
if (x == 5) {
|
||||
printf("6\n");
|
||||
} else if (x == 6) {
|
||||
printf("10\n");
|
||||
} else if (x == 7) {
|
||||
printf("8\n");
|
||||
} else {
|
||||
printf("4\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
15
【额外练习】选择结构/7-9 选择-三角形判别.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
int a, b, c;
|
||||
|
||||
scanf("%d%d%d", &a, &b, &c);
|
||||
|
||||
if (a + b > c && a + c > b && b + c > a) {
|
||||
printf("Yes\n");
|
||||
} else {
|
||||
printf("No\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|