实验三

内容1

#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;
}

GHYW}Q_L)U`}Y}3SG_1}I%R

1:函数score_to_grade的功能是作为函数变量名计算返回值;字符型。

2:case后面没有break,程序无法结束,ans一直被覆盖

内容2

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;
}

S2QUI)~OYS~O{L$8V~S7)I1

1:将每一位上的数字作为单独的数字并相加得到和。

2:能,第二种使用递归的思想。

内容3

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;
}
}

]P(~@]B40YMZQ@(UHZKZ_85

1:求x的n次幂。

2:是递归;

模型:

n=0,t=1;

内容4

#include <stdio.h>
#include <math.h>
int is_Prime(int n){
    for(int i=2;i<=sqrt(n);i++) {
        if(n%i==0) return 0;
    }
    return 1;
}
 
int main() {
    int total=0;
    for(int n=2;n<=100;n++)
        if(is_Prime(n) + is_Prime(n+2) == 2) {
            printf("%d %d\n", n, n+2);
            total += 1;
    }
    printf("100以内的孪生素数共有%d个.", total);
}

%`B}J8G@AXU8${EY[0R8~UN

内容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){
    int numerator=1,denominator_1=1,denominator_2=1;
    int x,y,z;
    int ans=1;
    
    for(x=1;x<=n;++x){
        numerator*=x;
    }
    for(y=1;y<=m;++y){
        denominator_1*=y;
    }
    for(z=1;z<=(n-m);++z){
        denominator_2*=z;
    }
    ans=numerator/(denominator_1*denominator_2);
    
    return ans;
}

A3X{59[$667}TWZ}ZW1SEHC

递归

#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(n<m){
        return 0;
    }
    else if(m==0||m==n) {
        return 1;
    }
    else
    return func(n-1,m)+func(n-1,m-1);
}
A3X{59[$667}TWZ}ZW1SEHC

内容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 n;
    n=a;
    if(n>b){
        n=b;
    }
    if(n>c){
        n=c;
    }
    int i;
    for(i=n;i>=1;--i){
        if(a%i==0&&b%i==0&&c%i==0){
        return i;    
        }
    }
}

PHYPC}6T3T%8$356HG0YQF6

内容7

#include <stdio.h>
#include <stdlib.h>

 void print_charman(int n);
 int main() {
     int n;
     printf("input n: ");
     scanf("%d", &n);
     print_charman(n);
     return 0;
 }
 
 void print_charman(int n) {
     int i,j;
     
     for(i=1;i<=n;++i){
         int x=2*(n-i+1)-1;
         for(j=0;j<i;++j){
             printf("\t");
         }
        for(j=0;j<x;++j){
            printf(" O\t");
        }
        printf("\n");
        for(j=0;j<i;++j){
             printf("\t");
         }
        for(j=0;j<x;++j){
            printf("<H>\t");
        }
        printf("\n");
        for(j=0;j<i;++j){
             printf("\t");
         }
        for(j=0;j<x;++j){
            printf("I I\t");
        }
        printf("\n");
     }
 }

R4}80C_(]{BKYD9IZQTSG]J

`TH($ZZN@V9R7A~%6X4SUCH

 

 

 

posted @ 2025-10-30 19:29  luhan777  阅读(1)  评论(0)    收藏  举报