bupt2024大一上计导关系与逻辑练习

7-1 星期几换算

分数 15

全屏浏览

切换布局

作者 唐艳琴

单位 中国人民解放军陆军工程大学

今天是周六,又到了可以休息的日子了,7天后又会是一个周六。请你帮忙计算下,n(n为整数,可以是正也可以为负)天后会是星期几呢?

输入格式:

输入天数

输出格式:

输出星期几

输入样例1:

8

输出样例1:

星期日

输入样例2:

-2

输出样例2:

星期四

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include<stdio.h>
int main(void)
{
    const char* day[]={"星期六","星期日","星期一","星期二","星期三","星期四","星期五"};
    int a;
    scanf("%d",&a);
    int b=a%7;
    if (b<0) b=b+7;
    else if(b>=0) b=b;
    printf("%s",day[b]);
    return 0;
    
}

不嫌麻烦可以用if else或者swich语句来输出星期几

7-2 案例3-8:使用条件运算符计算整数的绝对值

分数 10

全屏浏览

切换布局

作者 章理登

单位 浙江工贸职业技术学院

使用条件运算符计算整数的绝对值。

输入格式:

一个整数x,表示需要计算绝对值的整数。

输出格式:

输出一个整数,表示输入整数的绝对值。

输入样例:

10

输出样例:

10的绝对值是10

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include<stdio.h>
int main (void)
{
    int x,y;
    scanf("%d",&x);
    y=abs(x);
    printf("%d的绝对值是%d",x,y);
    return 0;
}

唉没必要,认识一下新的函数算了doge

7-6 实验2_1_判断两数的大小

分数 100

全屏浏览

切换布局

作者 scs

单位 北京邮电大学

已知有两个整数,请使用if-else选择结构将它们中的较大数选择出来,存到max变量中;将较小数选择出来,存到min变量中,并将选择结果输出。

输入格式:

只有一行,为用空格分隔的两个整数。测试用例保证这两个数可以用int类型存储。

输出格式:

如果输入的两个整数相等,则输出“The two numbers are equal.”,如果不等则按如下格式输出:“The larger number is 100, the smaller number is 25.”(假设输入的两个数分别为100和25)。

输入样例:

100 25

输出样例:

The larger number is 100, the smaller number is 25.

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include<stdio.h>
int main(void)
{
    int a,b;
    
    scanf("%d %d",&a,&b);

    if(a==b)printf("The two numbers are equal.");
    else {int max,min;
        max=(a>b)?a:b;
        min=(a<b)?a:b;
        printf("The larger number is %d, the smaller number is %d.",max,min);
    }
    return 0;

唉没必要,认识一下新的逻辑运算符算了doge

7-7 实验2_2_公历闰年

分数 100

全屏浏览

切换布局

作者 scs

单位 北京邮电大学

地球绕太阳运行周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,每四年累积约一天,把这一天加于2月末(即2月29日),使当年时间长度变为366日(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天),这一年就为闰年。需要注意的是,公历是根据罗马人的"儒略历"改编而得。由于当时没有了解到每年要多算出0.0078天的问题,从公元前46年,到16世纪,一共累计多出了10天。为此,当时的教皇格列高利十三世,将1582年10月5日人为规定为10月15日。并开始了新闰年规定。即规定公历年份是整百数的,必须是400的倍数才是闰年,不是400的倍数的就是平年。比如,1700年、1800年和1900年为平年,2000年为闰年。此后,平均每年长度为365.2425天,约4年出现1天的偏差。按照每四年一个闰年计算,平均每年就要多算出0.0078天,经过四百年就会多出大约3天来,因此,每四百年中要减少三个闰年。闰年的计算,归结起来就是通常说的:四年一闰;百年不闰,四百年再闰。。

输入格式:

只有一个整数y(1900<=y<=2500),代表年份。

输出格式:

只有一行,如果输入的年份为闰年,则输出"Yes",否则输出"No"。

输入样例:

2008

输出样例:

Yes

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include <stdio.h>
int main(void)
{
    int y,a,b,c;
    scanf("%d", &y);
    a=(y - 1900)%4;
    b=y%100;
    c=y%400;
    if ((y%4 == 0&&y%100!=0)||y%400 == 0)
        printf("Yes");
    else
        printf("No");
    return 0;
}

以前的我写的混乱啊……大家凑合着看吧(如果有别人看)

7-9 实验2_4_网购一

分数 100

全屏浏览

切换布局

作者 scs

单位 北京邮电大学

某电商规定,如果订单商品总价小于20元,则付快递费10元;如果订单商品总价大于等于20元且小于30元,则付快递费8元;如果订单商品总价大于等于30元且小于40元,则付快递费5元;如果某订单商品总价大于等于40元,则包邮。现某订单共4件商品,请你算一下该订单实付多少。

输入格式:

只有一行,为四个用空格分隔的正整数,代表4件商品的价格。

输出格式:

为一个整数,为客户实际需要支付的钱数。测试用例保证输入合法,且所有整数可以用int型存储。

输入样例:

1 2 3 4

输出样例:

20

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include <stdio.h>
int main(void)
{
    int a,b,c,d;
    scanf("%d%d%d%d",&a,&b,&c,&d);
    int f=a+b+c+d;
    int g;
    if(f>=40)g=0;
    else if(f<20)g=10;
    else if(f>=20&&f<30)g=8;
    else g=5;
    printf("%d",g+f);
        return 0;
}

7-7 案例3-2:判断三边能否构成三角形

分数 10

全屏浏览

切换布局

作者 章理登

单位 浙江工贸职业技术学院

输入三个整数,判断以这三个整数作为边长能否构成三角形,如果能构成三角形输出1,否则输出0。

输入格式:

输入在一行中给出三个正整数。

输出格式:

如果能构成三角形输出1,否则输出0。

输入样例:

1 2 3

输出样例:

0

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include<stdio.h>
int main(void)
{
    int a,b,c,d;
    scanf("%d%d%d",&a,&b,&c);
    if((a+b)>c&&(a+c)>b&&(b+c)>a)d=1;
        else d=0;
    printf("%d",d);
    return 0;
}

7-8 从键盘上输入四个整数a,b,c,d,输出其中最大者。

分数 4

全屏浏览

切换布局

作者 奋斗的阿酱

单位 重庆工信职业学院

从键盘上输入四个整数a,b,c,d,输出其中最大者。

输入格式:

a,b,c,d。例如:4,5,7,1

输出格式:

最大值是XX。例如:最大值是7

输入样例:

例如:

4,5,7,1

输出样例:

例如:

最大值是7

代码长度限制

17 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include <stdio.h>
int main(void)
{
    int a,b,c,d;
    scanf("%d,%d,%d,%d",&a,&b,&c,&d);
    int max = (a>b)?((a>c)?((a>d)?a:d):((c>d)?c:d)):((b>c)?((b>d)?b:d):((c>d)?c:d));
    printf("最大值是%d",max);
    return 0;
}

逆天套娃,不建议省事费眼睛和脑子

7-10 实验2_5_求三角形的面积

分数 100

全屏浏览

切换布局

作者 scs

单位 北京邮电大学

已知三角形的三条边长a、b、c,求三角形的面积。三角形的面积可以根据海伦公式来计算,这里S代表周长的一半,Area代表三角形的面积:

S=(A+B+C)/2

Area=(S(S−a)(S−b)(S−c))​

求一个数的平方根需要用库函数sqrt(x)。参数x可以是整数或者浮点数,函数返回值是一个浮点数。在处理浮点数的时候,建议使用双精度浮点型(double型)变量,

注意:为了使用该函数,需要在main函数之前加上预处理语句:

#include <math.h>

%lf的默认输出为6位小数,如果想要输出3为小数,则应为%.3lf。

输入格式:

为三个用空格分隔的正整数a、b、c,代表三角形的三边长度。

输出格式:

只有一行。当输入的三条边a、b、c可以构成三角形时(即两条边的长度和大于第三条边的长度),输出三角形的面积,输出结果保留3位小数,假如a=5,b=12,c=13,则输出“30.000”;当a、b、c三条边无法构成三角形时,则输出“The edges cannot make up of a triangle.”。测试用例保证运算中用到的整数可以用int型存储,小数可以用double型存储。

输入样例:

5 12 13

输出样例:

30.000

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

answer:

#include <stdio.h>
#include <math.h>
int main(void)
{
    double a,b,c;
    scanf("%lf%lf%lf",&a,&b,&c);
    double S=(a + b + c)/2.0;
    double area;
    if((a + b)>c&&(a + c)>b&&(b + c)>a)
    {
        area = sqrt(S*(S - a)*(S - b)*(S - c));
        printf("%.3lf",area);
    }
    else
    {
        printf("The edges cannot make up of a triangle.");
    }
    return 0;
}

7-11 三对三篮球赛

分数 100

全屏浏览

切换布局

作者 scs

单位 北京邮电大学

三对三篮球赛规定

第4条:得分

4.1. 在圆弧线以内投篮命中得 1 分。

4.2. 在圆弧线以外投篮命中得 2 分

4.3. 罚篮命中得 1 分。

第5条:比赛时间/优胜者

5.1 一节 10 分钟(这个可以称为常规时间)。在死球状态下和罚球时应停表。再次开球时,当球权方与防守队一名球员完成一次传递球后(即一旦进攻队持球),计时器应继续计时。

5.2. 但是,在规定的比赛时间内(即在常规时间内),率先取得 21 分或以上的队伍获胜。

5.3. 如果在规定比赛时间(即在常规时间内)两队打平,则应进行加时赛。加时赛中率先取得 2 分的队伍获胜。

请你根据这些条款写一段程序来判断一场比赛的胜负。

注意:判断胜负的一个基本原则是得分高的队伍获胜(但规则里没有明确说明)。

输入格式:

为用空格分隔的两个整数,依次代表A队得分和B队得分。测试用例保证合法。

输出格式:

上述得分为常规时间结束(包括先得21分及以上直接获胜的情况)时的比分,如果A队获胜,则输出A win;如果B队获胜,则输出B win;如果两队打平,需要进行加时赛,则输出no result;如果出现不可能的比分(比如 29 30),则输出error。

输入样例:

11 17

输出样例:

B win

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>

int main(void) {
    int a, b;
    scanf("%d %d", &a, &b);
    if (a < 0 || b < 0) {
        // 分数不能为负数
        printf("error");
    } else if (a > 23 || b > 23) {
        // 分数不能超过23
        printf("error");
    } else if ((a == 22 && b == 21) || (a == 21 && b == 22)) {
        // 一个队22分,一个队21分的情况
        printf("error");
    } else if (a > 21 && b > 21) {
        // 两队得分均大于21
        printf("error");
    } else if (a == 21 && b == 21) {
        // 两队同时21分
        printf("error");
    } else if (a == 23 && b < 20) {
        // 一个队23分另一个队小于20分不存在
        printf("error");
    } else if (b == 23 && a < 20) {
        // 一个队23分另一个队小于20分不存在
        printf("error");
    } else if (a >= 21 && a > b) {
        // A队先达到21分且分数高于B队
        printf("A win");
    } else if (b >= 21 && b > a) {
        // B队先达到21分且分数高于A队
        printf("B win");
    } else if (a == b) {
        // 常规时间打平
        printf("no result");
    } else if (a > b) {
        // 未达到21分,A队分数高
        printf("A win");
    } else {
        // 未达到21分,B队分数高
        printf("B win");
    }


    return 0;
}

感觉不是计算机再写而是我在写,真是烦人,建议数学不好的人还是别学计算机了(哭死)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值