SCAU程序设计在线实训平台_考试_20软工R4-6第十次堂测

1 计算摄氏温度值

描述

从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值,精确到小数点后两位。
数学公式描述为:

摄氏温度值等于9分之5 乘上 华氏温度值减去32的差 所得到的积。

输入格式

华氏温度值

输出格式

摄氏温度值,精确到小数点后两位

输入样例

100

输出样例

37.78

代码实现
#include <stdio.h>
int main()
{
    double f;
    scanf("%lf",&f);
    printf("%.2lf",(f-32)/9*5);
    return 0;
}

2 计算数列和

描述

由键盘输入一个正浮点数e,计算如下数列的和,以某项绝对值小于e结束
1 -1/2 1/3 -1/4 1/5 -1/6 1/7 -1/8 …
结果显示7位小数

输入格式

一个浮点数

输出格式

输入样例

0.4

输出样例

0.5000000

代码实现
#include <stdio.h>
#include <math.h>
int main()
{
    double e,a=1,b=1,all=0;
    scanf("%lf",&e);
    while(fabs(a/b)>=e){
        all+=a/b;
        a=-a;
        b++;
    }
    printf("%.7lf",all);
    return 0;
}

3 求各位数和

描述

由键盘输入一个int类型的正整数,计算输出构成该数的各位数字之和。

输入样例

126489

输出样例

30

提示

因为1+2+6+4+8+9=30

#include <stdio.h>
int main()
{
    int a,all=0;
    scanf("%d",&a);
    while(a!=0){
        all+=a%10;
        a/=10;
    }
    printf("%d",all);
}

4 多个数的最大公约数

描述

由键盘输入n(n<=10)个正整数,计算并输出它们的最大公约数。

输入格式

第一行为n,第二行为n个正整数(空格分隔)

输出格式

这n个数的最大公约数

输入样例

3
12 18 42

输出样例

6

提示

数字之间一个空格

#include <stdio.h>

int ojld(int a,int b)
{
    if(a<b){
        int temp=b;
        b=a;
        a=temp;
    }
    while(a%b){
        int r = a%b;
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}

int main()
{
    int a,b,n,sz[10],min=999;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&sz[i]);
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(ojld(sz[i],sz[j])<min) min=ojld(sz[i],sz[j]);
        }
    }
    printf("%d",min);
    return 0;
}

5 吃豆豆

描述

大嘴巴吃豆豆:
有一个5*5的棋盘,每一个棋盘格上有一定数量的豆豆,大嘴巴最开始从最左上角的格开始吃起,然后可以选择走到下一格去吃豆豆,或走到右边一格去吃豆豆
(注意,大嘴巴不能向上或向左走,同时也不能走出棋盘),这样一直走一直吃,直到到达最右下一格为止。
如下图是一种走法
当然选择不同的路线,会吃到不同数量的豆豆,大嘴巴希望能吃到最多的豆豆,请编程实现输入棋盘上豆豆的分布情况,输出大嘴巴能吃到的最多豆豆数量。

输入格式

5行,每行5个数,代表每一格上的豆豆数量

输出格式

吃到的最多豆豆数量

输入样例

2 5 6 3 7
3 7 9 2 1
3 5 8 6 3
2 4 6 8 4
9 8 3 5 2

输出样例

52

代码实现:
#include <stdio.h>
int sz[5][5];
int max(int a,int b){
    if(a>b)return a;
    return b;
}
int F(int x,int y){
    if(x<0||y<0){   //若超出边界
        return 0;   //则不取
    }
    else{
        return max(F(x-1,y),F(x,y-1))+sz[x][y];     //递归
    }
}
int main()
{
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            scanf("%d",&sz[i][j]);
        }
    }
    printf("%d",F(4,4));
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值