2021.10.19练习2

1

谐均值计算(4分)

题目内容:

两数值的谐均值可以这样计算:首先对两数值的倒数取平均值,最后再取倒数。编写一个带有两个double参数的函数,计算这两个参数的谐均值。函数原型为:

double Calculate(double x,double y);

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

double Calculate(double x,double y);

double Calculate(double x,double y)
{
    return 1/((1/x+1/y)/2) ;
}

int main()
{
    double x, y;
    printf("Input two doubles:\n");
    scanf("%lf%lf",&x,&y);
    printf("1/((1/x+1/y)/2) = %0.3f\n",Calculate(x,y));


    return 0;
}
 

2

输出指定行列数的字符(4分)

题目内容:

编写一个函数,函数原型:void Chline(char ch, int column, int row);

该函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。

#include <math.h>
#include <stdlib.h>

void Chline(char ch, int column, int row);

void Chline(char ch, int column, int row)
{
    int x, i;
    for (x=1;x<=row; x++ )
    {
        for (i=1; i<=column; i++)
    {
        printf("%c",ch);
    }
    printf("\n");

    }
}

int main()
{
    int column, row;
    char ch;
    printf("input a char:\n");
    scanf("%c",&ch);
    printf("input column and row:\n");
    scanf("%d%d",&column,&row);
    Chline(ch,column,row);
    return 0;
}

3

魔术师猜数(4分)

题目内容:

在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!”。请编程模拟这个数字魔术游戏。要求用函数实现,函数原型为:int Magic(int m);

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

int Magic(int m);
int Magic(int m)
{
    int a, b, c, number, sum;
    for (a=1; a<10; a++ )
    {
        for (b=1; b<10; b++)
        {
            for (c=1; c<10; c++)
            {
                sum = a*122 + b*212 + c*221;
                number = a*100+b*10+c;
                if (sum == m)
                     {
                     if (number < 100)
                        { return 0; continue; }
                     else
                     {
                         return number;
                         break;
                     }
                 }

            }

        }
    }
}

int main()
{
    int n, x;

    scanf("%d",&n);

    x = Magic(n);

    if (x > 111&&x<=999)

        printf("The number is %d\n",x);

    else

        printf("The sum you calculated is wrong!\n");

    return 0;
}

4

计算礼炮声响次数(4分)

题目内容:

在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。

输入格式:

输出格式:"n=%d"

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

int main()
{
    int A, B, C,n;

    n = 63;//如果炮声不重叠,将会听到63声炮响。

    for (A=5;A<=105; A+=5)
    {
        for(B=6; B<=126; B+=6)
        {

                if(A==B)
                    n--;//去掉AB重叠,下边同理。

        }
    }

    for(C=7; C<=147; C+=7)
    {
        for(B=6; B<=126; B+=6)
        {
            if(B==C)

                    n--;
        }
    }

    for (A=5;A<=105; A+=5)
    {
       for(C=7; C<=147; C+=7)
       {
           if(A==C)

                    n--;
       }
    }
    printf("n=%d",n);
    return 0;
}

6

递归法计算游戏人员的年龄(4分)

题目内容:

有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,.....,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大年纪。

递归函数原型:unsigned int ComputeAge(unsigned int n);

提示:

计算年龄的递归公式为:

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

unsigned int ComputeAge(unsigned int n);

int main()
{
    unsigned n;

    scanf("%u",&n);

    printf( "The person's age is %u\n",ComputeAge(n));

    return 0;
}

unsigned int ComputeAge(unsigned int n)
{
    if (n==1)
        return 10;
    else
        return ComputeAge(n-1)+2;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值