Kevin_Sun_2007 2019-03-10 13:51 采纳率: 66.7%
浏览 1346
已采纳

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);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看