实验3

task1
整型 字符类型 ``
将输入的分数转换为对应的等级A、B、C、D、E,其中 90-100 为 A,80-89 为 B,70-79为 C,60-69分为 D,60下为 E
case分支缺少break语句,会导致过度执行

task2
计算整数n的各位数字之和
能 循环实现 递归实现

task3
计算x的n次幂 递归函数
n = 0 1(因为任何数的 0 次幂为 1)
n为奇 x乘power(x, n-1)
n为偶 power(x, n/2) 乘 power(x, n/2)

task4
`#include <stdio.h>
int is_prime(int x)
{
int y;
y = x - 1;
if (x == 1)return 0;
else if (x == 2)return 1;
for (;y>=1; y--)
{
if (x % y == 0 && y != 1)
return 0;

}
 return 1;

}
int main()
{
int n;
for (n = 1; n <= 98; n++) {
if (is_prime(n) && is_prime(n + 2))
printf("%d %d\n", n, n + 2);
}
}`

屏幕截图 2025-10-26 151250

task5
`#include <stdio.h>
int func(int n, int m); // 函数声明
int main() {
int n, m;
int ans;
while (scanf_s("%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) {
int a, b, c;
int up=1, down1=1,down2=1;
if (m > n) return 0;
else if(m = n||m==0)return 1;
else {
for (a = 1; a <= n; a++)
{
up = up * a;
}
for (b = 1; b <= m; b++) { down1 = down1 * b; };
for (c = 1; c <= n - m; c++) { down2 = down2 * c; };
}
return up / (down1 * down2);

}
*/
int func(int n, int m) {
if (m > n)return 0;
else if (m == n||m==0)return 1;
return (func(n - 1, m) + func(n - 1, m - 1));
}
`

屏幕截图 2025-10-28 131452
屏幕截图 2025-10-28 133259

task6
int main() { int a, b, c; int ans; while (scanf_s("%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 i; if (a > b) { if (b > c)i = c; else if (b < c)i = b; } else if(a<b){ if (a > c)i = c; else if (a< c)i = a; } else if (a = b) { if (a > c)i = c; else if (a < c) i = a; } for (; i >= 1; i--) { if (a % i == 0 && b % i == 0 && c % i == 0)return i; } }

屏幕截图 2025-10-28 135243
task7
`#include <stdio.h>

include <stdlib.h>

int print_charman(int n);
int main() {
int n;
printf("Enter n: ");
scanf_s("%d", &n);
print_charman(n);
return 0;
}
int print_charman(int n) {

int b = 2;
int c = 0;
if (n <= 0)return 0;
for (; b <2* n; b++) { printf("\t O \t"); }

if(n>=1) printf("\t O \t\n");

b = 2; for (; b <2*n; b++) { printf("\t<H>\t"); }

if(n>=1) printf("\t\t\n");

b = 2; for (; b <2*n; b++) { printf("\tI I\t"); }

if(n>=1) printf("\tI I\t\n");

return print_charman(n - 1);
}
`

屏幕截图 2025-10-28 213917

posted @ 2025-10-28 22:13  hylaaa  阅读(6)  评论(0)    收藏  举报