实验3

1

 1 #include <stdio.h>
 2 
 3 char score_to_grade(int score);  // 函数声明
 4 
 5 int main() {
 6     int score;
 7     char grade;
 8 
 9     while(scanf("%d", &score) != EOF) {
10         grade = score_to_grade(score);  // 函数调用
11         printf("分数: %d, 等级: %c\n\n", score, grade);
12     }
13 
14     return 0;
15 }
16 
17 // 函数定义
18 char score_to_grade(int score) {
19     char ans;
20 
21     switch(score/10) {
22     case 10:
23     case 9:   ans = 'A'; break;
24     case 8:   ans = 'B'; break;
25     case 7:   ans = 'C'; break;
26     case 6:   ans = 'D'; break;
27     default:  ans = 'E';
28     }
29 
30     return ans;
31 }

1

 

2

 1 #include <stdio.h>
 2 
 3 int sum_digits(int n);
 4 
 5 int main(){
 6     int n;
 7     int ans;
 8 
 9     while(printf("Enter n: "), scanf("%d", &n) != EOF){
10         ans = sum_digits(n);
11         printf("n = %d, ans = %d\n\n", n, ans);
12     }
13 
14     return 0;
15 }
16 
17 int sum_digits(int n){
18     int ans = 0;
19 
20     while(n != 0){
21         ans += n % 10;
22         n /= 10;
23     }
24 
25     return ans;
26 }

2

 

3

 1 #include <stdio.h>
 2 
 3 int power(int x, int n);
 4 
 5 int main(){
 6     int x, n;
 7     int ans;
 8 
 9     while(printf("Enter x and n:"),scanf("%d%d", &x, &n) != EOF){
10         ans = power(x, n);
11         printf("n = %d, ans = %d\n\n", n, ans);
12     }
13 
14     return 0;
15 }
16 
17 int power(int x, int n){
18     int t;
19 
20     if(n == 0)
21         return 1;
22     else if(n % 2)
23         return x * power(x, n-1);
24     else{
25         t = power(x, n/2);
26         return t*t;
27     }
28 }

3

 

4

 1 #include <stdio.h>
 2 
 3 int classify_triangle(int a, int b, int c);
 4 
 5 int main(){
 6     int a, b, c, x;
 7 
 8     while(scanf("%d%d%d", &a, &b, &c) != EOF){
 9         x = classify_triangle(a, b, c);
10         switch(x){
11         case 0:
12             printf("不能构成三角形\n\n");
13             break;
14         case 1:
15             printf("普通三角形\n\n");
16             break;
17         case 2:
18             printf("等边三角形\n\n");
19             break;
20         case 3:
21             printf("等腰三角形\n\n");
22             break;
23         case 4:
24             printf("直角三角形\n\n");
25             break;
26         }
27     }
28 
29         return 0;
30     }
31 
32 int classify_triangle(int a, int b, int c){
33     if(a >= b + c || b >= a + c || c >= a + b)
34         return 0;
35 
36     if(a == b && b == c)
37         return 2;
38 
39     if(a == b || a == c || c == b)
40         return 3;
41 
42     if(a*a == b*b + c*c || b*b == a*a +c*c || c*c == a*a + b*b)
43         return 4;
44 
45     else
46         return 1;
47 }

4

 

5

 1 #include<stdio.h>
 2 int func(int n, int m);
 3 
 4 int main(){
 5     int n, m;
 6     int ans;
 7 
 8     while(scanf("%d%d", &n, &m) != EOF){
 9         ans = func(n, m);
10         printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
11     }
12 
13     return 0;
14 }
15 
16 int func(int n, int m){
17     long long a = 1;
18     int i;
19 
20     if(m > n)
21         return 0;
22 
23     if(m == n || m == 0)
24         return 1;
25 
26     if(m > n - m)
27         m = n - m;
28 
29     if(m < n){
30         for(i = 1; i <= m; i++){
31             a = a*(n - m + i)/i;
32         }
33     }
34 
35     return a;
36 }

5

 

6

 1 #include <stdio.h>
 2 
 3 int gcd(int a, int b, int c);
 4 
 5 
 6 int main(){
 7     int a, b, c;
 8     int ans;
 9 
10     while(scanf("%d%d%d", &a, &b, &c) != EOF){
11         ans = gcd(a, b, c);
12         printf("最大公约数: %d\n\n", ans);
13     }
14 
15     return 0;
16 }
17 
18 int gcd(int a, int b, int c){
19     int i = a;
20 
21     if(b < a){
22         if(b <= c)
23             i = b;
24         if(c < b)
25             i = c;
26     }
27 
28     for(i; i >= 1; --i){
29         if(a % i == 0 && b % i == 0 && c % i == 0)
30         return i;
31 
32     }
33     return i;
34 }

6

 

7

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void print_charman(int n);
 4 
 5 int main(){
 6     int n;
 7     printf("Enter n:");
 8     scanf("%d", &n);
 9     print_charman(n);
10 
11     return 0;
12 }
13 
14 void print_charman(int n){
15     int count, i = 0, k, x;
16 
17     for(i; i <= n; i++){
18         count = 2*(n - i) - 1;
19 
20     for(x = 0; x < i; ++x){
21         printf("\t");
22     }
23     for(k = 0; k < count; k++ ){
24         printf(" O\t");
25     }
26     printf("\n");
27 
28     for(x = 0; x < i; ++x){
29         printf("\t");
30     }
31     for(k = 0; k < count; k++ ){
32         printf("<H>\t");
33     }
34     printf("\n");
35 
36     for(x = 0; x < i; ++x){
37         printf("\t");
38     }
39     for(k = 0; k < count; k++ ){
40         printf("I I\t");
41     }
42     printf("\n");
43     }
44 }

7

 

posted @ 2026-04-21 18:59  JRui-  阅读(6)  评论(0)    收藏  举报