神犇营-my0027-中奖率

版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请与博主联系。 https://blog.csdn.net/qq_31790997/article/details/90737832

小韦同学@神犇营-my0027-中奖率

题目:

描述

码猿星球举办了三场抽奖活动,请你写程序分别统计一下这三场抽奖活动的中奖率。
比如某一场抽奖活动的总人数为 100,中奖人数为 30,则中奖率为 30%。
某一场抽奖活动的人数大于等于10000,小于等于100,000,000,000,000,000。

输入

输入分三行。每一行为两个数字,分别表示该场抽奖活动的总人数和未中奖人数。

输出

输出三行,每一行是对应的那一场抽奖活动的中奖率,保留3位小数。

输入样例1

100 50
100 30
100 60

输出样例1

50.000%
70.000%
40.000%

题解:

破题:

对于每一场而言,中奖率 = 中奖人数 / 总人数,而题目中只给出了未中奖人数,所以中奖人数 = 总人数 - 未中奖人数。

思路:

总共有三场抽奖活动,每一场输入的数据有总人数和未中奖人数,所以每一场需要两个变量来保存所输入的数据,总共有三场,所以总共需要六个变量来保存输入的数据。可以用整数型的变量,但是注意两点:

1° 这里输入的数据的范围已经超过 int 能表示的范围,所以如果用整型的变量,可以选用 long long 类型的。
2° 考虑到最后算出来的中奖率会是浮点数,而整数除整数会是整除,处理起来比较麻烦,所以这里可以将变量定义为浮点型的。

因此定义六个变量,用来分别存储输入的数据:

	// 定义浮点型的变量用来分别存三场抽奖活动的总人数和未中奖人数 
	double s1, p1, s2, p2, s3, p3;
	

定义好变量之后,现在需要输入数据:

	// 分别输入 
	cin >> s1 >> p1;
	cin >> s2 >> p2;
	cin >> s3 >> p3; 
	

现在按照我们分析的思路将结果算出来,并且输出:
计算的公式为:中奖人数 / 总人数 = (总人数 - 未中奖人数)/ 总人数
因为最后要输出的是百分之多少,所以还要乘上 100。
这里用 C 语言的 printf 来控制保留小数点的位数,这里是保留三位小数。用 printf 来输出百分号(%)时,必须是在双引号内输入两个百分号,不然就不能正确输出百分号。

	// s1 - p1是中奖人数,除以总人数,再乘以100,就是中奖率
	// 输出的时候要保留三位小数,并且要输出%,输出%的时候要写两个% 
	printf("%.3f%%\n", (s1 - p1) / s1 * 100);
	printf("%.3f%%\n", (s2 - p2) / s2 * 100);
	printf("%.3f%%\n", (s3 - p3) / s3 * 100);

或者也可以用以下方式输出:

	// s1 - p1是中奖人数,除以总人数,再乘以100,就是中奖率
	// 输出的时候要保留三位小数,并且要输出%,输出%的时候要写两个% 
	printf("%.3f", (s1 - p1) / s1 * 100);
	cout << "%" << endl;  // 输出百分号并且换行
	printf("%.3f", (s2 - p2) / s2 * 100);
	cout << "%" << endl;  // 输出百分号并且换行
	printf("%.3f", (s3 - p3) / s3 * 100);
	cout << "%" << endl;  // 输出百分号并且换行
	

完整代码:


#include <bits/stdc++.h>

using namespace std;

int main() {
	
	// 定义浮点型的变量用来分别存三场抽奖活动的总人数和未中奖人数 
	double s1, p1, s2, p2, s3, p3;
	// 分别输入 
	cin >> s1 >> p1;
	cin >> s2 >> p2;
	cin >> s3 >> p3; 
	// s1 - p1是中奖人数,除以总人数,再乘以100,就是中奖率
	// 输出的时候要保留三位小数,并且要输出%,输出%的时候要写两个% 
	printf("%.3f%%\n", (s1 - p1) / s1 * 100);
	printf("%.3f%%\n", (s2 - p2) / s2 * 100);
	printf("%.3f%%\n", (s3 - p3) / s3 * 100);

	return 0;
}
             

或者:


#include <bits/stdc++.h>

using namespace std;

int main() {
	
	// 定义浮点型的变量用来分别存三场抽奖活动的总人数和未中奖人数 
	double s1, p1, s2, p2, s3, p3;
	// 分别输入 
	cin >> s1 >> p1;
	cin >> s2 >> p2;
	cin >> s3 >> p3; 
	printf("%.3f", (s1 - p1) / s1 * 100);
	cout << "%" << endl;  // 输出百分号并且换行
	printf("%.3f", (s2 - p2) / s2 * 100);
	cout << "%" << endl;  // 输出百分号并且换行
	printf("%.3f", (s3 - p3) / s3 * 100);
	cout << "%" << endl;  // 输出百分号并且换行

	return 0;
}
            

猜你喜欢

转载自blog.csdn.net/qq_31790997/article/details/90737832