时间:2023年3月8日 晚21:43
主题:C/C++入门
说明:记录错题以及值得注意的算法
题目 2181: 信息学奥赛一本通T1005-地球人口承载力估计
题目描述:假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
输入格式:输入只有一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。(样例输入:110 90 90 210)
输出格式:一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。(样例输出:75.00)
代码:
#include<stdio.h>
int main()
{
float x,a,y,b;
float z;
scanf("%f %f %f %f\n", &x, &a, &y, &b);
z=(x*a-y*b)/(a-b);
printf("%.2f\n", z);
return 0;
}
错误原因:
x, a, y, b的数据类型是 float或者double,而不是int