任务一

#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:   ans = 'A';break;
                        case 9:    ans = 'B';break;
                        case 8:    ans = 'C';break;
                        case 7:    ans = 'D';break;
                        case 6:    ans = 'E';  
                  }
                  
                  return ans;
      
}

任务一

功能:根据传入的整数分数,返还已对应的等级A,B,C,D,E
形参类型:int
返回值类型:char

 

任务二

#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);
      }
      
      return 0;
}
int sum_digits(int n) {
      int ans=0;
      
      while(n != 0) {
            ans += n%10;
            n/=10;
      }
      
      return ans;
}

任务二

问题1:计算一个整数各位数字之和
问题2:能 原方式是迭代思维,新方式是递归思维

 

 

任务三

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

任务三

问题一:power功能是计算x的n次幂

问题二:递归函数 

96ce1c2c1686c86aabf0c265cafe03e3_720

 

 

任务四

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

任务四素数

 

 

任务五

#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 x=1,y=1,z=1,i;
for(i=1;i<=n;++i)x*=i;
for(i=1;i<=m;++i)y*=i;
for(i=1;i<=n-m;++i)z*=i;
return x/(y*z);}

#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;
return func(n-1,m)+func(n-1,m-1);}

任务五1

 

 

任务六

#include <stdio.h>

int gcd(int a, int b, int c);

int main() {
    int a, b, c, ans;
    scanf("%d %d %d", &a, &b, &c);
    ans = gcd(a, b, c);
    printf("%d\n", ans);
    return 0;
}

int gcd(int a, int b, int c) {
    int min = a;
    if (b < min) min = b;
    if (c < min) min = c;
    for (int i = min; i >= 1; i--)
        if (a % i == 0 && b % i == 0 && c % i == 0)
            return i;
    return 1;
}

任务六

 

 

任务七

#include <stdio.h>
#include <stdlib.h>
void print_charman(int n);

int main() {
    int n;

    printf("Enter n: ");
    scanf("%d", &n);
    print_charman(n); // 函数调用
      system("pause");
    return 0;
}
void print_charman(int n){int i,k,j;
for(i=0;i<n;++i){
    for(j=0;j<i;++j)printf(" \t");
    for(k=0;k<n*2-1-2*i;++k){printf(" O\t");}
    printf("\n");
    for(j=0;j<i;++j)printf(" \t");
    for(k=0;k<n*2-1-2*i;++k){printf("<H>\t");}
    printf("\n");
    for(j=0;j<i;++j)printf(" \t");
    for(k=0;k<n*2-1-2*i;++k){printf("I I\t");}
    printf("\n");}}

任务七1

任务七2

任务七3