#include<stdio.h>
#include<conio.h>
float aver(int b[],int j);
int sum(int b[],int j);
main(){
int a[10],i,su;
float ave;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
su=sum(a,10);
ave=aver(a,10);
printf("十个数之和为:%d\n平均值为:%.3f\n",su,ave);
}
int sum(int b[],int j){
int x=0,i;
for(i=0;i<j;i++)
x+=b[i];
return x;
}
float aver(int b[],int j){
int x=0,i;
float y;
for(i=0;i<j;i++)
x+=b[i];
y=x*1.0/j;
return y;
}
怎么修改这个问题 warning C4244: '=' : conversion from 'double ' to 'float ', p
答案:1 悬赏:20
解决时间 2021-04-28 08:20
- 提问者网友:夕夏残阳落幕
- 2021-04-27 13:18
最佳答案
- 二级知识专家网友:说多了都是废话
- 2021-04-27 13:52
Double(双精度浮点型)变量存储为 IEEE 64 位(8 个字节)浮点数值的形式
浮点数(floating point number),占用4byte。
你的lixi定义为float, cunqi定义为double。benjin*cunqi*3.15/100.0。任何数和double型数运算得到结果为double。而把这个运算式的结果(double型)赋给lixi(float型),8字节的数赋给4字节的数,会造成数据损失,就好像得到3.1416,只能储存到3.14一样。所以会出这个警告。一般来说,你这个程序在精度不高的情况下,这个警告无害。
浮点数(floating point number),占用4byte。
你的lixi定义为float, cunqi定义为double。benjin*cunqi*3.15/100.0。任何数和double型数运算得到结果为double。而把这个运算式的结果(double型)赋给lixi(float型),8字节的数赋给4字节的数,会造成数据损失,就好像得到3.1416,只能储存到3.14一样。所以会出这个警告。一般来说,你这个程序在精度不高的情况下,这个警告无害。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯