实验3
#include <stdio.h>
char score_to_grade(int score);
int main() {
int score;
char grade;
while(scanf("%d", &score) != EOF) {
grade = score_to_grade(score);
printf("分数: %d, 等级: %c\n\n", score, grade);
}
return 0;
}
char score_to_grade(int score) {
char ans;
switch(score/10) {
case 10:
case 9: ans = 'A'; break;
case 8: ans = 'B'; break;
case 7: ans = 'C'; break;
case 6: ans = 'D'; break;
default: ans = 'E';
}
return ans;
}

将数转换为等级(A,B,C,D,E)。
形参类型:int
返回值类型:char
ans = "A" 应改为 ans = 'A'
缺指令 选择无法正确执行
2
#include <stdio.h>
int sum_digits(int n); // 函数声明
int main() {
int n;
int ans;
while (printf("Enter n: "), scanf("%d", &n) != EOF) {
ans = sum_digits(n); // 函数调用
printf("n = %d, ans = %d\n\n", n, ans);
}
return 0;
}
// 函数定义
int sum_digits(int n) {
int ans = 0;
while (n != 0) {
ans += n % 10;
n /= 10;
}
return ans;
}

1.计算并返回一个整数n各位数字之和
2.能够实现相同的输出结果
3.
#include <stdio.h>
int power(int x, int n);
int main() {
int x, n;
int ans;
while(printf("Enter x and n: "), scanf("%d%d", &x, &n) != EOF) {
ans = power(x, n);
printf("n = %d, ans = %d\n\n", n, ans);
}
return 0;
}
int power(int x, int n) {
int t;
if(n == 0)
return 1;
else if(n % 2)
return x * power(x, n-1);
else {
t = power(x, n/2);
return t*t;
}
}

4.
#include <stdio.h>
#include <stdlib.h>
int classify_triangle(int a, int b, int c);
int main()
{
int a, b, c, ans;
while (scanf("%d%d%d", &a, &b, &c) != EOF)
{
ans = classify_triangle(a, b, c);
switch (ans)
{
case 0: printf("不能构成三角形\n"); break;
case 1: printf("普通三角形\n"); break;
case 2: printf("等边三角形\n"); break;
case 3: printf("等腰三角形\n"); break;
case 4: printf("直角三角形\n"); break;
}
}
system("pause");
return 0;
}
int classify_triangle(int a, int b, int c)
{
if (a + b <= c || a + c <= b || b + c <= a)
return 0;
else if (a == b && b == c)
return 2;
else if (a == b || a == c || b == c)
return 3;
else if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
return 4;
else
return 1;
}

5.
#include <stdio.h> int func(int n, int m); int main() { int n, m; int ans; while (scanf("%d%d", &n, &m) != EOF) { ans = func(n, m); printf("n = %d, m = %d, ans = %d\n\n", n, m, ans); } return 0; } int func(int n, int m) { if (m < 0 || m > n) return 0; if (m == 0 || m == n) return 1; if (m > n - m) m = n - m; int result = 1; for (int i = 1; i <= m; i++) { result = result * (n - m + i) / i; } return result; }


6.
#include <stdio.h> int gcd(int a,int b,int c); int main(){ int a,b,c; int ans; while(scanf("%d%d%d",&a,&b,&c)!=EOF){ ans=gcd(a,b,c); printf("最大公约数:%d\n\n",ans); } return 0; } int gcd(int a,int b,int c){ int min=a; if(min>b){ min=b; } if(min>c){ min=c; } for(int i=min;i>=1;i--){ if(a%i==0&&b%i==0&&c%i==0){ return i; } } }

7.
#include <stdio.h> #include <stdlib.h> void print_charman(int n); int main(){ int n; printf("Enter n:"); scanf("%d", &n); print_charman(n); return 0; } void print_charman(int n){ int i, j, k; for(k = n; k >= 1; k--){ int cnt = 2 * k - 1; int space = n - k; for(i = 0; i < space; i++){ printf("\t"); } for(i = 0; i < cnt; i++){ printf(" O\t"); } printf("\n"); for(i = 0; i < space; i++){ printf("\t"); } for(i = 0; i < cnt; i++){ printf("<H>\t"); } printf("\n"); for(i = 0; i < space; i++){ printf("\t"); } for(i = 0; i < cnt; i++){ printf("I I\t"); } printf("\n"); } }


浙公网安备 33010602011771号