年龄与疾病-神一样的内存与速度-今天又学到了一招

xiaoxiao2021-02-28  12

**关键问题 1、C语言如何输入百分比函数用的是两个%表示** 2、如何输入一行数字显示规定输入多少个,然后用for循环,再用sanf函数,解决数字都在一列,占了好少的内存,厉害了!

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

输入 共2行,第一行为过往病人的数目n(0 < n <= 100),第二行为每个病人患病时的年龄。 输出 按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段患病人数占总患病人数的比例,以百分比的形式输出,精确到小数点后两位。每个年龄段占一行,共四行。 样例输入 10 1 11 21 31 41 51 61 71 81 91 样例输出 20.00% 20.00% 20.00% 40.00% 内存较小的方法

#include <iostream> #include <cstdio> using namespace std; int main(){ int n,a[100],i=0,value; scanf("%d",&n); int k = i,m1=0,m2=0,m3=0,m4=0; for(int j =0;j<n;j++){ scanf("%d",&value); if(value>0&&value<=18) m1=m1+1; else if(value>=19&&value<=35) m2 = m2 +1; else if(value>=36&&value<=60) m3 = m3 +1; else if(value>=61) m4 = m4 +1; }; float n1=n; printf("%.2f%%\n%.2f%%\n%.2f%%\n%.2f%%\n",(m1/n1)*100,(m2/n1)*100,(m3/n1)*100,(m4/n1)*100); return 0; }

内存较大的方法-慎用for循环呀

#include <iostream> #include <cstdio> using namespace std; int main(){ int n,a[100],i=0; scanf("%d",&n); if (n<0||n>100) exit(0); while(scanf("%d",&a[i++])) { if(getchar()=='\n') break; }; int k = i,m1=0,m2=0,m3=0,m4=0; for(int j =0;j<k;j++){ if(a[j]>0&&a[j]<=18) m1=m1+1; else if(a[j]>=19&&a[j]<=35) m2 = m2 +1; else if(a[j]>=36&&a[j]<=60) m3 = m3 +1; else if(a[j]>=61) m4 = m4 +1; }; float n1=n; printf("%.2f%%\n%.2f%%\n%.2f%%\n%.2f%%\n",(m1/n1)*100,(m2/n1)*100,(m3/n1)*100,(m4/n1)*100); return 0; }
转载请注明原文地址: https://www.6miu.com/read-1900188.html

最新回复(0)