总结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、知识点总结——我不会的
文心一言解答如下: