05:年龄与疾病(1.6)

温馨提示:

如何输出%?

即两个%连写代表%,尝试输出printf(“%%”)

方法1:先存储数据再处理,定义4个变量记录4个年龄段的人数,初值为0

#include<cstdio>
int a[110];
int main(){
    int n;
    scanf("%d",&n);
    int temp;
    for (int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    int x=0,y=0,z=0,t=0;
    for (int i=1;i<=n;i++){
        if  (a[i]>=0&&a[i]<=18) x++;
        if  (a[i]>=19&&a[i]<=35) y++;
        if  (a[i]>=36&&a[i]<=60) z++;
        if  (a[i]>=61) t++;
    } 
    
    a[0]=x+y+z+t;//a[0]记录总人数 
    
    printf("%.2lf%%\n%.2lf%%\n%.2lf%%\n%.2lf%%\n",double(x)/a[0]*100,double(y)/a[0]*100,double(z)/a[0]*100,double(t)/a[0]*100);// double(x)将输出结果强制转换成double,即两个%连写代表% 
    return 0;
}
View Code

 

方法2:边读边处理,定义4个变量记录4个年龄段的人数。

//定义4个变量记录4个年龄段的人数,边读边处理 
#include<cstdio>
int main(){
    int n,x=0,y=0,z=0,t=0,sum;//x,y,z,t分别记录每个年龄段的人数 
    scanf("%d",&n);
    int temp;
    for (int i=1;i<=n;i++){
        scanf("%d",&temp);
        if  (temp>=0&&temp<=18) x++;
        if  (temp>=19&&temp<=35) y++;
        if  (temp>=36&&temp<=60) z++;
        if  (temp>=61) t++;
    } 
    sum=x+y+z+t;
    printf("%.2lf%%\n%.2lf%%\n%.2lf%%\n%.2lf%%\n",double(x)/sum*100,double(y)/sum*100,double(z)/sum*100,double(t)/sum*100);// double(x)将输出结果强制转换成double,即两个%连写代表% 
    return 0;
}
View Code

方法3:定义数组记录4个年龄段的人数和总人数

#include<cstdio>
int a[10];
int main(){
    int n;
    scanf("%d",&n);
    int temp;
    for (int i=1;i<=n;i++){
        scanf("%d",&temp);
        if  (temp>=0&&temp<=18) a[1]++;
        if  (temp>=19&&temp<=35) a[2]++;
        if  (temp>=36&&temp<=60) a[3]++;
        if  (temp>=61) a[4]++;
    } 
    a[0]=a[1]+a[2]+a[3]+a[4];
    printf("%.2lf%%\n%.2lf%%\n%.2lf%%\n%.2lf%%\n",double(a[1])/a[0]*100,double(a[2])/a[0]*100,double(a[3])/a[0]*100,double(a[4])/a[0]*100);// double(x)将输出结果强制转换成double,即两个%连写代表% 
    return 0;
}
View Code

 

转载于:https://www.cnblogs.com/ssfzmfy/p/5144058.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值