Kevin_Sun_2007
2019-03-10 13:51
采纳率: 66.7%
浏览 1.3k

c++保留小数输出出现问题

我的输出都是0,望指导。

题目:某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。

输入:
共2行,第一行为过往病人的数目n(0<n<=100),第二行为每个病人患病时的年龄。
输出:
按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段患病人数占总患病人数的比例,以百分比的形式输出,精确到小数点后两位。每个年龄段占一行,共四行。

#include<iostream>
#include<cstdio>
using namespace std;
int patient[100];
int main(){
    int number,a=0,b=0,c=0,d=0;
    double aout,bout,coutt,dout;
    cin>>number;
    for(int i=1;i<=number;i++){
        cin>>patient[i];
    }
    for(int i=1;i<=number;i++){
        if(patient[i]>=0&&patient[i]<=18)   a++;
        if(patient[i]>=19&&patient[i]<=35)  b++;
        if(patient[i]>=36&&patient[i]<=60)  c++;
        if(patient[i]<=61)                  d++;
    }
    aout=a*100/number;
    bout=b*100/number;
    coutt=c*100/number;
    dout=d*100/number;
    printf("%2d",aout);
    cout<<"%"<<endl;
    printf("%2d",bout);
    cout<<"%"<<endl;
    printf("%2d",coutt);
    cout<<"%"<<endl;
    printf("%2d",dout);
    cout<<"%"<<endl;
    return 0;
}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • threenewbee 2019-03-10 14:08
    已采纳

    aout=a*100/number;
    ->
    aout=a*100/(double)number;

    printf("%2d",coutt);
    ->
    printf("%4.2lf",coutt);

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题