PTA | 心理阴影面积、考试周

总结2-9写的代码,最近几天很荒废,颓废的已经快成烂人了,因为昨天是除夕,所以没有打开电脑写练习题。今天写完这篇代码,终于算是把第一页的所有5分题写完了,好难好难,太菜了自己,下面的三四天内争取自己可以做5道10分题吧,哈哈哈~

一、心理阴影面积

1、题目内容

这是一幅心理阴影面积图。我们都以为自己可以匀速前进(图中蓝色直线),而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工(图中的红色折线)。由红、蓝线围出的面积,就是我们在做作业时的心理阴影面积。

现给出红色拐点的坐标 (x,y),要求你算出这个心理阴影面积。

输入格式:

输入在一行中给出 2 个不超过 100 的正整数 x 和 y,并且保证有 x>y。这里假设横、纵坐标的最大值(即截止日和最终完成度)都是 100。

输出格式:

在一行中输出心理阴影面积。

友情提醒:三角形的面积 = 底边长 x 高 / 2;矩形面积 = 底边长 x 高。嫑想得太复杂,这是一道 5 分考减法的题……

输入样例:

90 10

输出样例:

4000

 2、答案

(1)题目分析

求解阴影面积的解法有两种:

这里就介绍第二种计算方法,比较简单,第一种计算有些小复杂。

【大正方形 - x轴的矩形 - y轴的矩形】/2

第二幅图:红色矩形—X轴矩形 ; 绿色矩形—y轴矩形;

(其中多减去了一个100-x * y 的矩形(右下角的小矩形)需 /2,以及大正方形需 /2,两个轴的矩形需 /2,故总体需要 /2。)

(2)结果展示
解法一:

可以通过对照图一的长度标签和代码,应该可以看懂,图画的丑了一点。

#include<stdio.h>
int main()
{
    int x,y,S;            //S,阴影面积
    scanf("%d%d",&x,&y);
    int S1,S2,S3;         //S1,X轴附近的三角形;    S2,X轴附近的三角形;    S3,右下角的正方形
    S1=(x*y)/2;
    S2=((100-x)*(100-y))/2;
    S3=(100-x)*y;
    S=(100*100)/2-S1-S2-S3;
    printf("%d",S);
    return 0;
}

测试结果:

 

解法二:
#include<stdio.h>
int main(){
    int x,y,S;
    scanf("%d %d",&x,&y);
    if(x>y && (x>0||x<100) && (y>0||y<100)){
        S = (100*100-100*y-100*(100-x))/2;
        printf("%d\n",S);
    }
    return 0;
}

二、考试周

1、题目内容

考试周快到了,浙江大学的电子屏又调皮了…… 本题请你帮小编写一个自动倒计时的程序,对给定的日期(例如“腊八”就对应 8)和倒计时天数(例如电子屏上的“四天之后”就对应 4),自动调整公式里的分母(例如 8/2=4 里面的那个 2)。

输入格式:

输入在一行中给出两个正整数:A 是给定的日期,不超过 30;B 是倒计时天数,不超过 10。

输出格式:

在一行中输出公式 A/X=B,其中 X 是满足等式的数字,输出时保留小数点后 1 位即可。

输入样例:

8 3

输出样例:

8/2.7=3

2、答案

(1)题目分析

根据题目,已知是通过除法运算求得那个除数X的值,所以在给定的日期和倒计时天数全部为整数时,X便不是整数了,而是有尾数的浮点数。核心是:X= A/B,如何使得两个整型的数做除法可以得到一个浮点数——强制类型转换。

X1的操作,A/B得到的是一个整数,类似于整型算术运算,会默认舍弃小数点后面的值,保留整数部分。

X的操作,对A进行了隐式类型转换,然后再除以整数B,默认对B也做了隐式类型转换,最终得到的 A/B 是浮点型的算术运算,有小数点。

(2)结果展示
#include<stdio.h>
int main(){
    int A,B;
    float X;
    scanf("%d %d",&A,&B);
    if((A<=30 || A>0) && (B<=10 || B>0)){
        X = (1.0*A)/B;
        printf("%d/%.1f=%d",A,X,B);
    }
    else printf("error\n");
    return 0;
}

/*
另外的写法:
X = (float)A/B;				X=A/(float)B;
*/

3、知识点总结——我不会的

文心一言解答如下:

  • 43
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值