实验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 }

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 }

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 }

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 }

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 }

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 }

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 }

浙公网安备 33010602011771号