实验三

 

task1

score_to_grade作用:将输入的分数进行分等级输出

形参类型:整形

返回值类型:字符串

如果改变函数定义,去掉line21-line28的break,程序将在每一此输入数值后继续进行输出,不能及时跳出switch

task2

sum_digits的作用:将输入数据的每位上的数字加起来输出

改变之后依然能够实现,是通过递归的方式进行输出,第一种为嵌套。

task3

power的功能为计算一个数x的n次方

并且是递归函数

输入x,n:

n == 0时,输出1

n 为奇数时,(n-1)/2-1直至n==0

n为偶数时,(n/2)-1直至n==0

task4

#include<stdio.h>
int is_prime(int n);         //函数声明
 
int main(){
    int num=0,x;
    printf("100以内的孪生素数:\n"); 
    for(x=2;x<100;++x)
        if(is_prime(x)&&is_prime(x+2))
        {
            printf("%d %d\n",x,x+2);
            num += 1; 
        }                             //函数调用 
    printf("100以内的孪生素数共有:%d个",num);
    
    return 0;
} 
int is_prime(int n)                   //函数定义 
{   
    int m;
    if(n==2)
        return 1;
        
    for(m=2;m<n;++m){
        if(n%m==0)
        return 0; 
    }
    return 1;
}

task5

#include<stdio.h>
#include<stdlib.h>
void hanoi(unsigned int n,char from,char temp,char to);  //函数声明
void moveplate(unsigned int n,char from,char to);
int i=0;
int main(){
    unsigned int n;
    while(scanf("%u",&n)!=EOF)
    {
    hanoi(n,'A','B','C');    
    printf("一共移动了%d次",i);
    i=0;      
    }                        //函数调用 
    return 0;
}
void hanoi(unsigned int n,char from,char temp,char to){       //函数定义 
    if (n==1)
        moveplate(n,from,to);
    else
    {
        hanoi(n-1,from,to,temp);
        moveplate(n,from,to);
        hanoi(n-1,temp,from,to);
    }
}
void moveplate(unsigned int n,char from,char to) {
    printf("%u:%c-->%c\n",n,from,to);
    ++i;
}

task6

#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 i,j,k,ans,a=1,b=1,c=1;
    if (m==0)
        return 1;
    else{
        for(i=n;i>=1;--i)
            a*=i;
        for(j=m;j>=1;--j)
            b*=j;
        for(k=n-m;k>=1;--k)
            c*=k;
    return a/(b*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 ans;
    if(n<m)
      return 0;
    if((m==0)||(m==n))
      return 1;
       
    ans=func(n-1,m)+func(n-1,m-1);
    return ans;
}

task7

 

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

 

posted @ 2024-10-29 17:29  Goldie0316  阅读(2)  评论(0编辑  收藏  举报