AcWing 718. 实验
原题链接
困难
作者:
只要是你呀ღ
,
2020-03-07 20:22:11
,
所有人可见
,
阅读 7131
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
int a;
char t;
int sum=0,sum1=0,sum2=0,sum3=0;//sum1表示兔子,sum2表示老鼠,sum3表示青蛙
double s1,s2,s3;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a>>t;
if(t=='C')
sum1+=a;
else if(t=='R')
sum2+=a;
else
sum3+=a;
sum+=a;
}
s1=(double)sum1/(double)sum*100;
s2=(double)sum2/(double)sum*100;
s3=(double)sum3/(double)sum*100;
cout<<"Total: "<<sum<<" animals"<<endl;
cout<<"Total coneys: "<<sum1<<endl;
cout<<"Total rats: "<<sum2<<endl;
cout<<"Total frogs: "<<sum3<<endl;
printf("Percentage of coneys: %.2lf %\n",s1);
printf("Percentage of rats: %.2lf %\n",s2);
printf("Percentage of frogs: %.2lf %\n",s3);
return 0;
}
用printf打印出一个%时需要printf(“%%”);
if else 呢里用Switch case 是不是更简洁,时间效率有变化吗
写这个的时候没讲case……纠结这个干什么。
这个else
sum3+=a,如果t=A呢,不就是报错了,应该是else if吧
#include[HTML_REMOVED]
#include[HTML_REMOVED]
int main()
{
int n,a,total=0,s1=0,s2=0,s3=0;
char t;
double p1,p2,p3;
scanf(“%d”,&n);
while(n–){
scanf(“%d%c”,&a,&t);
if(t==’C’)
s1 += a;
if(t==’R’)
s2 += a;
if(t==’F’)
s3 += a;
total=total+a;
}
p1=(s1/total)100;
p2=(s2/total)100;
p3=(s3/total)*100;
printf(“Total: %d animals\n”,total);
printf(“Total coneys: %d\n”,s1);
printf(“Total rats: %d\n”,s2);
printf(“Total frogs: %d\n”,s3);
printf(“Percentage of coneys: %.2f %%\n”,p1);
printf(“Percentage of rats: %.2f %%\n”,p2);
printf(“Percentage of frogs: %.2f %%\n”,p3);
}
兄弟们,这个错哪了呀
Total: 100 animals
Total coneys: 0
Total rats: 0
Total frogs: 0
Percentage of coneys: 0.00 %
Percentage of rats: 0.00 %
Percentage of frogs: 0.00 %
输出完是这样
a 是干什么的 我认为是sum1++啊
a表示每一次实验用的小动物的数量
请问一下大佬为什么要用double,新手小白的疑问
因为最后输出要保留两位小数,用double精度更高。我刚才也试了一下float,用float也是可以的。这个看个人吧,一般涉及到精度的问题我偏向于使用double,这样很少会出现精度的问题
cin cout和printf最好不要一起用吧
为啥 cpp就是支持c啊
https://blog.csdn.net/qq_28236309/article/details/52200632看这个博客,主要是cout和printf混用会出现一些不可预测的问题
404了,什么原因啊?
可以混用吧。。。我看了说好几个帖子不能混用,说一大堆。一看他的举出问题的例子,头文件都只用一个iostream。出问题的例子头文件加上cstdio就不会出问题。