实验三

#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;
defult: ans='E';
    }
    return ans;
}
  

根据分数判断等级

形式参数为int

返回值为char

没有break程序将继续执行

实验二

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

计算各个位数的和

第一个为递归函数,一直执行到n为0,将其最后一位加到ans上;第二个为迭代函数,除去最后一位数再次使用函数,并加上个位数。

实验三

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

结果

 

 

 

求x的n次方

n为0时返回

n为奇时,使用power(x,n-1),并乘x;

n为偶,使用power(x,n/2),并平方;

实验4

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

结果

实验五

#include<stdio.h>
int t=1;
void hanoi(unsigned n,char a,char b,char c)
{
    if (n == 1) {
        printf("%d:将第%d个盘子从%c移动到%c\n", t, n, a, c);
        t++;
        return;
    }
    else  {
        hanoi(n - 1, a, c, b);
        printf("%d:将第%d个盘子从%c移动到%c\n", t, n, a, c);
        t++;
        hanoi(n - 1, b, a, c);
    }
}

int main() {
    int n;
    int t;
    while (scanf("%d", &n) != EOF) {
        hanoi(n, 'A', 'B', 'C');
        printf("\n一共移动了%d次\n\n", t - 1);
        t=1;
        
    }
}

结果

实验6

#include<stdio.h>
int func(int n,int m);
int func1(int n,int m);

int main()
{
    int n,m;
    int ans;

    while(scanf("%d%d",&n,&m)!=EOF)
    {
        ans =func1(n,m);
        printf("n=%d,m+%d,ans = %d\n\n",n,m,ans);
    }
    return 0;
}
int func(int n,int m)
{
    int ans=1;
    for (int i = n; i >= (n - m + 1); i--) {
        ans *= i;
    }
    for (int i = m; i >= 1; i--) {
        ans /= i;
    }
    return ans;
}
int func1(int n, int m) {
    if (n == 0 && m != 0) {
        return 0;
    }
    if (m == 0) {
        return 1;
    }
    else {
        return func1(n - 1, m) + func1(n - 1, m - 1);
    }

}
    
    
        

结果

实验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(i=n;i>=1;i--){
             for(k=i;k<n;k++)
             {
                 printf("\t");
             }
             for(j=1;j<=2*i-1;j++)
             {
             printf(" o\t");    
             }
             printf("\n");    

 

for(k=i;k<n;k++)
             {
                 printf("\t");
             }
             for(j=1;j<=2*i-1;j++)
            {
             printf("<H>\t");    
             }
             printf("\n");    
             for(k=i;k<n;k++)
             {
                 printf("\t");
            }
             for(j=1;j<=2*i-1;j++)
            {
             printf("I I\t");
             }
             printf("\n");
             
    
         printf("\n");
     }
 }

结果

 

posted @ 2024-10-26 17:22  毛天佑202483290413  阅读(11)  评论(0编辑  收藏  举报