题目描述
(更适合初学者宝宝体质)
医学部一共进行了 N场动物实验。共有三种小动物可用来实验,分别是青蛙、老鼠和兔子。
每次实验都会选取其中一种动物来参与实验,选取数量若干。
现在请你统计一下医学部一共用了多少小动物,每种分别用了多少,每种动物使用数量占总量的百分比分别是多少。
输入格式
第一行包含整数 N,表示实验次数。
接下来 N行,每行包含一个整数 A
(表示一次实验使用的小动物的数量)和一个字符 T
(表示一次实验使用的小动物的类型,C 表示兔子(coney),R 表示老鼠(rat),F 表示青蛙(frog))。
输出格式
请你参照输出样例,输出所用动物总数,每种动物的数量,以及每种动物所占百分比。
注意输出百分比时,保留两位小数。
解题思路
首先从输入的东西下手,N试验次数也是输入的循环次数,T是要对比的字符,A是要计算的数
这样就好说了,首先,我们用while循环来控制输入的次数(因为不知道具体多少次)
然后我们可以用char比对输入的字母对应那个动物,根据这个把A数值放入不同的容器,最后计算出结果
那么涉及到一些知识点:
1.char字母比对:
定义输入的char为T:char T ==>定义比对的char:char def1='A'(要对比的字符)==>if(T==def1)条件判断
2.计算时数据类型不匹配
一开始我们定义的都是int,最后算百分数要换数据类型,改一个为double就行了
可以使用static_cast<数据类型>(名字)直接改为该数据类型,
```
Eg:
int a;
static_cast<double>a;//a由整型转化为双精度浮点
```
3.while循环结束本身不能输出最后的数字,但是实验证明,这些数字还是被储存在内存里可以直接使用
C++ 代码
#include<iostream> //引入C++标准头文件
#include<iomanip> //引入C++输出操纵文件
using namespace std; //描述空间
int main(){ //引入主函数
int N,A; //定义要输入的整型变量
int i=0; //定义while循环的工具数
char T;
char defined1='C'; //定义比对char1
char defined2='R'; //定义比对char2
char defined3='F'; //定义比对char3
cin>>N; //用户输入N
int coney=0,rat=0,frog=0; //分别定义各个动物的数量
while(i<N){ //while循环使输入所有数据
cin>>A; //用户输入数量
cin>>T; //用户输入char关键字
if(T==defined1){ //如果输入的是C
coney+=A; //coney加上大小是A的数
}else if(T==defined2){ //如果输入的是R
rat+=A; //rat加上大小是A的数
}else if(T==defined3){ //如果输入的是F
frog+=A; //frog加上大小是A的数
}
i=i+1; //工具数+1继续循环直到条件不成立
}
cout<<"Total: "<<coney+rat+frog<<" animals"<<endl; //按照格式输出
cout<<"Total coneys: "<<coney<<endl; //按照格式输出
cout<<"Total rats: "<<rat<<endl; //按照格式输出
cout<<"Total frogs: "<<frog<<endl; //按照格式输出
int all=coney+rat+frog; //这里写all的原因是开始先试着输出一下
double percentage1=coney/static_cast<double>(all); //定义第一个百分比
double percentage2=rat/static_cast<double>(all); //定义第二个百分比
double percentage3=frog/static_cast<double>(all); //定义第三个百分比
cout<<"Percentage of coneys: "<<fixed<<setprecision(2)<<percentage1*100.00<<" %"<<endl;//保留三位小数输出
cout<<"Percentage of rats: "<<fixed<<setprecision(2)<<percentage2*100.00<<" %"<<endl;//保留三位小数输出
cout<<"Percentage of frogs: "<<fixed<<setprecision(2)<<percentage3*100.00<<" %"<<endl;//保留三位小数输出
}程序结束
篇章
上一篇:AcWing 711. 乘法表
https://www.acwing.com/file_system/file/content/whole/index/content/10254929/
下一篇:AcWing 713. 区间 2
https://www.acwing.com/solution/content/208686/