为什么把浮点数用整形格式输出会变成0?

^一剪梅^ 2014-12-20 10:22:37
#include<stdio.h>
#include<stdarg.h>
float count_Average(int num,...)
{
int sum=0;
va_list ap;
va_start(ap,num);
for(int i=0;i<num;i++)
{
sum+=va_arg(ap,int);
}
return (float)sum/num;
}
int main(void)
{
float k=count_Average(3,1,2,3);
printf("--%d\n",k);
return 0;
}
...全文
1012 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-01-04
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390676437 电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
竹影半墙 2015-01-03
  • 打赏
  • 举报
回复
《计算机组成原理》 《CSAPP》信息的表示和处理
  • 打赏
  • 举报
回复
去看下 int float 这些类型的存储方式
羽飞 2014-12-21
  • 打赏
  • 举报
回复
printf("--%d\n",(int)k); 这样输出试试
jacksonfan 2014-12-21
  • 打赏
  • 举报
回复
自己调试看看呗,我用手机没法调试 估计是输出的数小于0.5
fly_dragon_fly 2014-12-21
  • 打赏
  • 举报
回复
2.0显示0对的,它刚好尾数为0,可变参数不指定时float将转成double,低4字就是0,要么改为%f,要么强转为int

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧