实验3

1.实验任务1
task1.c

点击查看代码
#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;	
}

image

问题1:score_to_grade函数实现了将分数转换为等级的操作 形参为整形score 返回值为字符型
问题2:case语段后缺少break,并且错误使用了“”,使ans无法被赋予数值,会报错,应该使用‘’才合理

2.实验任务2
task2.c

点击查看代码
#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;	
}

image
问题1:sum_digits的作用是把这个数每个位上的数字相加
问题2:能;第一种是迭代的思想,而第二种则采用递归的思想

3.实验任务3
task3.c

点击查看代码
 #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;
	}
}

屏幕截图 2025-10-26 150058
问题一:power函数实现幂的运算
问题二:是

微信图片_2025-10-26_151733_874

4.实验任务4
task1.c

点击查看代码
#include<stdio.h>
int is_prime(int n);
int main(){
	int court = 0;
	printf("100以内的孪生素数:\n");
	for(int j = 1;j <= 100;++j){
		if(is_prime(j) && is_prime(j+2)){
			printf("%d %d\n",j,j+2);
			court++;
		}
	}
	printf("100以内的孪生素数一共有%d个",court);
	return 0;
} 
int is_prime(int n){
	for(int i = 2;i <= n/2;i++){
		if(n % i == 0)
		return 0;
	}
	if(n == 1)
	return 0;
	if(n == 2)
	return 1;
}

image

5.实验任务5
task5_1.c

点击查看代码
#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){
	int sum1 = 1,sum2 = 1,sum3 = 1;
	for(int i = n;i >= 1;i--){
		sum1 *= i;
	}
	for(int j = m;j >= 1;j--){
		sum2 *= j;
	}
	for(int p = n-m;p >= 1;p--){
		sum3 *= p;
	}
	int sum;
	sum = sum1/sum2/sum3;
}

屏幕截图 2025-10-26 191432

task5_2.c

点击查看代码
#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)
	return 1;
	else if(m == n)
	return 1;
	else if(m > n)
	return 0;
	else 
	return func(n-1,m)+func(n-1,m-1);
}

屏幕截图 2025-10-26 185857

6.实验任务6
task6.c

点击查看代码
#include <stdio.h>

int gcd(int a,int b,int c);
int min(int x,int y);

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 min(int x,int y){
	return x<y?y:x;
}
int gcd(int a,int b,int c){
	int minu = min(min(a,b),c);
	for(int i = minu;i >= 1;--i){
		if(a % i == 0 && b % i == 0 && c % i == 0){
			return i;
			break;
		}
	}
}

屏幕截图 2025-10-26 193117

7.实验任务7
task7.c

点击查看代码
#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 t = 2*n - 1;
	for(int j = 0;j < n;j++){
		for(int i = 0;i < j;i++){
		printf("        ");
		}
		for(int i = 0;i < t;i++){
		printf(" o\t");
		}
		printf("\n");
		for(int i = 0;i < j;i++){
		printf("        ");
		}
		for(int i = 0;i < t;i++){
		printf("<H>\t");
		}
		printf("\n");
		for(int i = 0;i < j;i++){
		printf("        ");
		}
		for(int i = 0;i < t;i++){
		printf("I I\t");
		}
 		printf("\n");
		t = t-2;	
	}
}

屏幕截图 2025-10-28 164200

屏幕截图 2025-10-28 164149

屏幕截图 2025-10-28 164139

posted @ 2025-10-28 16:43  高熙恩  阅读(4)  评论(1)    收藏  举报