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;
}
c++

1个回答

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

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

Kevin_Sun_2007
Kevin_Sun_2007 谢谢
6 个月之前 回复
caozhy
贵阳老马马善福专门编写代码的老马就是我! 回复Kevin_Sun_2007: 问题解决的话,请点我回答左上角的采纳,谢谢
6 个月之前 回复
caozhy
贵阳老马马善福专门编写代码的老马就是我! 回复Kevin_Sun_2007: patient[i]<=61 错了,是patient[i]>=61
6 个月之前 回复
Kevin_Sun_2007
Kevin_Sun_2007 您好,为什么按样例输入10 1 11 21 31 41 51 61 71 81 91,输出dout为70.00% ?
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c++保留小数输出出现问题
我的输出都是0,望指导。rnrn题目:某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。rnrn输入:rn 共2行,第一行为过往病人的数目n(0rn#includernusing namespace std;rnint patient[100];rnint main()rn int number,a=0,b=0,c=0,d=0;rn double aout,bout,coutt,dout;rn cin>>number;rn for(int i=1;i<=number;i++)rn cin>>patient[i];rn rn for(int i=1;i<=number;i++)rn if(patient[i]>=0&&patient[i]<=18) a++;rn if(patient[i]>=19&&patient[i]<=35) b++;rn if(patient[i]>=36&&patient[i]<=60) c++;rn if(patient[i]<=61) d++;rn rn aout=a*100/number;rn bout=b*100/number;rn coutt=c*100/number;rn dout=d*100/number;rn printf("%2d",aout);rn cout<<"%"<
scanf 、pritnf与保留小数输出
格式化输入函数scanf 格式化输出函数printf
python 四舍五入保留小数输出
可以参考详细博客 比如 x = 0.94532 四舍五入保留小数点后2位: print('the result is %.2f'%x) .2表示保留小数点后两位数,f表示float浮点数,
C语言中保留小数
eg: 保留小数点后第二位: 1.定义一个double型的变量。 2.先乘100。 3.加零点五。(此刻的小数点第三位加了零点五后,该进位和该舍掉 其实此刻为小数点第一位。) 4.强制转换: x=(int)x; ...
保留小数???
数据库表中数值字段为1234.5678956789怎样写sql语句,返回值保留4位小数,并四舍五入。
C++与C的保留小数
首先看C++的: C++要实现对浮点型数据小数位的保留,需要添加头文件,C++一共有三种小数保留方式,具体看代码实现更简便点。 #include #include using namespace std; int main() { double a = 3.141111; double b = 3.149999; //第一种 cout << fixed << setprecisio
保留小数
create table #abc (num decimal(14,6) null) insert into #abc (num) select 123.211432 union select 123.219103 union select 123.210921 select * , case when '0' = substring( cast ( num as varc...
C / C++中保留小数精度
#include #include using namespace std; int main() { double a = 13.4565565326789; double b, c, d; cout<<a<<endl; b = floor(a * 10000.0000f) / 10000.0000f; /*保留小数点后四位*/ cou
C语言四舍五入以及保留小数
怎么实现用C 语言四舍五入并保留小数点后7 位小数,以及类似的问题,谢谢
js 保留小数
因为toFixed()函数不能对整数使用,所以重写了一个toFixed()方法 , /** * 保留小数位,原生的toFixed不能用于整数 * @param value 值 * @param scale 小数位 * @returns {number|*} */ $scope.toFixed = function(value, ...
Java保留小数
求实数绝对值并保留2位小数。import java.text.DecimalFormat;import java.util.Scanner;public class Main {   public static void main(String[] args) {   Scanner reader = new Scanner(System.in);   while(reader.hasNext...
保留小数问题。
[code=Delphi(Pascal)][/code]procedure TForm1.edt15Exit(Sender: TObject);rnvarrn a,b,c:Double;rn beginrn rn if not TryStrToFloat(Trim(edt14.Text),a) thenrn beginrn ShowMessage('请输入数字');rn edt14.SetFocus;rn exit;rn end;rn if not TryStrToFloat(Trim(edt15.Text),b) thenrn beginrn ShowMessage('请输入数字');rn edt15.SetFocus;rn exit;rn end;rn rn c:=b/(a+b)*100;rn edt22.Text:=FloatToStr(round(c))+'%' ;
保留小数问题
如何实现以下功能:rn就是小数位数有几位就保留几位,如:MONEY字段:".93" 要求显示:"0.93",如果是".3232",要求显示"0.3232"rn就是说不保留位数,但小于0的,需显示0.XXXX.
结构数组输出浮点数出现问题?
我定义一个结构数组,需要从键盘输入,然输出。有两个定义的是浮点和字符型的,输入后打印总是有错!哪位细心人帮忙看看!我的错误出在哪里了!rnrn#include rnrnstruct stu rnrnint num;rnchar name[15];rnfloat grade;rnrnrnmain()rnrn int i;rn struct stu stu1[3];rnrn for(i = 1; i <= 3; i++)rn rn scanf("%d,%c,%f",&stu1[i].num,&stu1[i].name,&stu1[i].grade);rn rn for(i = 1; i <= 3; i++)rn rn printf("num=%d,name=%c,grade=%f",stu1[i].num,stu1[i].name,stu1[i].grade);rn rn
结构体成员输出出现问题。
大家好,问一个问题.rn在下面程序中,在main函数中rn输出成员last的值时(红色字部分),第一次输出正常,rn同样输出但第2次就不对了?什么原因?rnrn另外 在tc++3.0下为什么给结构体成员m赋值rn输出的却是-NAM ?什么原因rn[code=C/C++]#includern#define MAXSIZE 1000rntypedef structrnrn int elem[MAXSIZE];rn int last;rn [color=#FF0000]float m;[/color]rnSeqlist;rnrnSeqlist *init(int n)rnrn Seqlist list;rn int i;rn for(i=0;ilast);rn printf("\n %d",p->last);[/color]rn [color=#99CC00]printf("\n %f",p->m);[/color] tc++3.0下输出-NAM 什么原因?rnrn[/code]
double保留小数
保留四位小数,四舍五入(RoundingMode.UP) new BigDecimal(price / (1 + detailCode)).setScale(4, RoundingMode.UP).doubleValue();
Oracle保留小数
今天在做项目的时候,把一张表的数据查出来,更新到另一张表。但是在执行的时候却报错了。错误如下: [code=&quot;sql&quot;]ORA-01438: 值大于为此列指定的允许精度[/code] 经过查看,发现查出的数据小数位很长,比如24632.458674。 后用一Oracle函数解决该问题。 示例: [code=&quot;sql&quot;]select round(12345.66666,2) from du...
如何保留小数
头文件: #include #include using namespace std; int main() { double a=3.141111; double b = 3.149999; cout << fixed << setprecision(2) << a << " "<<b<<endl;//#1 cout << setiosflags(ios::fixed) << s
MYSQL保留小数
mysql保留小数   1、调用mysql自带的格式化小数函数format(x,d) 例如: select format(23456.789,2);   select formate(salary,2);     输出: 23,456.79     format()函数会对小数部分进行四舍五入操作,整数部分从右向左每3位一个逗号进行格式化输出     2、调用mysql...
保留小数,四舍五入
function decimal(num,v){ var vv = Math.pow(10,v); return Math.round(num*vv)/vv; }   alert(decimal(12.335,2));
C++保留小数
本题要求控制小数点后的位数,如果采用 C 语言的 printf 函数来输出,那么控制小数点后的位数形式为“ printf("%*.*f", a);”,如“ printf("%.3f\n",sum);”。如果采用 C++的 cout 输出,那么先用“ cout.precision(n);”来设定小数点后保留 n 位,然后,输出时加“ fixed”参数,表明是定点输出。
Scala 保留小数
val a = 3.1415926 //保留两位小数 val b = a.formatted("%.2f") println(b) //3.14 或者//已经被废弃的方法 val b = format("%.2f",a)
scala 保留小数
scala 保留小数
保留小数的工具类
工具类:public class DoubleUtils { /** * double保留小数 * @param f要保留的数据 * @param m保留的位数 * @return */ public static Double keepTwoValue(Double f,Integer m){ BigDecimal bg = new BigDecimal(f); ...
java保留小数
java学习中遇到的问题(1) java中保留几位小数的办法 1 使用printf ”’java int n = 1.234 System.out.printf(“%.2f”,n); ”’ 得出的结果显然就是n = 1.23 2 使用java中的DecimalFormat类 下面是一个例子 ”’java import java.text.DecimalFormat; imp...
javascript保留小数
toFixed 保留2位小数 4舍5入 JavaScript中toFixed函数方法返回一个以定点表示法表示的数字的字符串形式。该字符串中小数点之前 有一位有效数字,而且其后必须包含 fractionDigits 数字。 如果没有 fractionDigits 参数,或者该参数为 undefined,toFixed 方法假定该值为 0。 调用方式为 numObj.toFixed(..); ...
java double类型保留位数、double转int
记录一下小知识 1.double保留小数点后一位 DecimalFormat df = new DecimalFormat("#.0"); df.format(0.99); 同理,保留小数点后两位 DecimalFormat df = new DecimalFormat("#.00"); df.format(0.99); 同理保留小数点后零位 DecimalFo
float保留小数
[code=Java]rnfloat num = 0.00005f;rn num+=1000;rn System.out.println(num);rnrn[/code]rnrn结果是1000.00006rn可是当num+=10000;时,打印的结果就是rn10000.0rnrn可是我需要小数点,即打印1000.00006.而且现在整个程序都用的是float,我还没办法改,这该怎么办?
急急急:表格输出出现问题
我做的新闻发布体统,输入的新闻是有格式的,比如:段落分明,段前空2格,可应表格输出是却成了一大段rnrn应该怎么处理?rnrn谢谢rn
输出double类型的变量时出现问题
我用的编译器是MinGW 4.6.1rn源程序:rn/* Exercise 5.1 Get the reciprocals */rn#include rnrnint main(void)rnrn double values[5] = 0.0; /* Store five doubles */rn double reciprocals[5] = 0.0; /* Store the reciprocals of the five values */rn double sum = 0.0; /* Store the sum of reciprocals */rn rn printf("Enter five doubles you want: \n");rn for(int i = 0 ; i < 5 ; i++)rn rn scanf("%lf" , &values[i]);rn rn rn /* Get the reciprocals */rn for(int i = 0 ; i < 5 ; i++)rn rn reciprocals[i] = 1.0 / values[i];rn printf("values[%d] is: %.3lf\n" , i , values[i]);rn rn rn /* Display the sum of the reciprocals */rn for(int i = 0 ; i < 5 ; i++)rn rn sum += reciprocals[i];rn rn printf("The sum of reciprocals is: %.3lf\n" , sum);rn return 0;rnrn程序运行后输出的结果全部是0.000,请问这是为什么?
C和C++编程出现问题!!!
我在一个C++的工程里面添加了一个C语言编写的文件,同时为这个.C文件加了相应的.h文件,但是在运行的时候出现了这个错误:rnfatal error C1189: #error : MFC requires C++ compilation (use a .cpp suffix)rn请高手指教!!!!!!!!rn谢谢!谢谢!谢谢!!!!1
C编程调试出现问题
#includern#includernstruct sturnint num;rnstruct stu * next;rn;rnrnvoid main()rnint len=1,i;rnstruct stu *p1,*p2,*head,* new1,*new1head;rnp1=p2=head=(struct stu *) malloc(sizeof(struct stu));rnprintf("input number(0:list end):");rnscanf("%d",&p1->num);rnwhile(p1->num!=0)rnp1=(struct stu *)malloc(sizeof(struct stu));rnprintf("input number(0:list end):");rnscanf("%d",&p1->num);rnif(p1->num==0)rn p2->next=NULL;rnelsernp2->next=p1;rnp2=p1;rnlen++;rnrnrnp1=head;rnprintf("\noriginal list:\n");rndo rnprintf("%4d",p1->num);rnif(p1->next!=NULL)rnp1=p1->next;rnwhile(p1->next!=NULL);rnprintf("%4d",p1->num);rnrnfor(i=0;inext!=NULL)rnp2=p1;rnp1=p1->next;rnrnif(i==0)rnnew1head=new1=p1;rnelsernnew1=new1->next=p1;rnp2->next=NULL;rnrnprintf("\n\nnew list:\n");rnp1=new1head;rnfor(i=0;inum);rnp1=p1->next;rnrnprintf("\n")rnrnrn出错提示:E:\C语言上机调试\1112.cpp(54) : error C2143: syntax error : missing ';' before ''rnError executing cl.exe.rnrn1112.obj - 1 error(s), 0 warning(s)rnrn
C语言程序运行时出现问题
/* Note:Your choice is C IDE */rn#include "stdio.h"rnvoid main()rnrn char s1[80],s2[80];rn int i,flag=1,resu;rn printf("Please input s1 and s2:\n");rn gets(s1);rn gets(s2);rn for(i=0;;i++)rn rn if(s1[i]>s2[i])rn rn printf("%d",s1[i]-s2[i]);rn flag=0;rn break;rn rn if(s1[i]
C语言画图出现问题
我的电脑用c语言画图的时,运行的时候窗口会闪一下,然后窗口就没了,同样的程序在别人的电脑上运行就可以,不是安装路径的问题,请问这是不是电脑内部一些信息原因,比如主板不支持?
c 类型自动转换 出现问题
今天在此学习了一下kmp算法,和以前的不太一样,这个next[0] = -1,写了个程序 # include # include int next[50]; void getNext(char *p){ memset(next,0,sizeof(next)); int len = strlen(p); next[0] = -1; int i,j; i=-1; j=0; whil
sql 保留小数+四舍五入
SELECT sampleInStockTable.CN_ID AS primaryId, sampleInStockTable.CN_NO AS no, salesTable.CN_NO AS salesTableNo, article.CN_NO AS articleNo, sampleInStockTable.CN_REAL_INSTOCK_DATE AS realInstockDat...
Java除法保留小数、百分数
1、int 相除只保留整数位,若保留小数点后2位先乘以100再除以100 2、double 相除精确到小数点后多位,通过DecimalFormat 设置保留小 数点后位数,0.00保留2位 3、百分数,通过NumberFormat获得百分数实例 import java.text.DecimalFormat; import java.text.NumberFormat; pub
网页小技巧之保留小数
此以保留两位小数为例 思路: 法1:先把数字转换为字符串,使用indexOf()得到小数点在字符串位置,使用slice()或substr()截取字符串; 法2:数值乘100后取整除10 法3:直接使用方法toFixed();该方法自带四舍五入 关键知识:indedOf(),slice(),substr(),parseInt(),toFixed() 具体代码: &amp;lt;!DOCTYP...
struts2标签 保留小数问题
数据库数据是double类型 因为想显示成100% 形式的 有没有直接格式的 rn我用取出的数据*100 再加% 可是这样小数位数就不对了 如数据库数据为0.1667 乘以100后 显示16.6999999999rn请大家帮忙
sql中保留小数
SELECT t1.sbvid AS DJID,rn t1.ccuscode as KHDM,rn t1.csbvcode AS XSDH,rn t3.cinvcode AS SPDM,rn t3.cinvname AS SPMC,rn t3.cinvstd AS SPXH,rn t4.cComUnitName AS SPDW,rn t2.iquantity AS SPSL,rn SPDJ=casern when t1.ccuscode=170034 then str(cast(t2.iunitprice as varchar(20)),charindex('.',cast(t2.iunitprice as varchar(20)))+4,4)rn else t2.iunitpricernend,rnt2.iunitprice,round(t2.iunitprice,4),rn t2.imoney AS SPJE,rn t2.itaxrate/100 AS SL,rn t2.itax AS SE,rnSPDJHS=case rn when t1.ccuscode=170034 then str(cast(t2.itaxunitprice as varchar(20)),charindex('.',cast(t2.itaxunitprice as varchar(20)))+4,4)rn elsern t2.itaxunitpricernend,rn t2.isum AS SPJEHS,rn(100000+t2.autoid) AS MXXHrn FROM salebillvouch t1 LEFT JOIN salebillvouchs t2 ON t1.sbvid=t2.sbvid rn LEFT JOIN inventory t3 ON t2.cinvcode=t3.cinvcodern LEFT JOIN ComputationUnit t4 ON t3.cComunitCode=t4.cComunitCodernrnrn这是我写的sql语句 但是测试的时候 总是得不到自己想要的数据rnt2.itaxunitprice 得到的还是原始数字 rn我想让这个字段保留四位小数 rn注:我的这个要保留的字段类型是float型的 rnrn求赐教!!!
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池