c语言怎么让输出值是小数?

# include <stdio.h>
int main(void)
{
int i;
float aver =0;
int count = 0;

for(i=0; i<8; ++i)
{
if (i%2 != 0)
{
count = count + 1;
printf("i = %d\n", i) ;
aver = (aver + i) / count;
}
}
printf("aver = %d\n", aver) ;
return 0;
}

利用C语言使输出值为小数的编程方法和思想如下:

1.首先需要定义一个变量作为后续需要输出的数。这里以定义一个变量a为例。需要注意的是,整型int是不支持转化的。

2.然后使用scanf()函数接受从键盘输入的一个数,这样就为变量a成功赋值。

3.接着使用printf语句来对数a进行小数化的处理。处理格式为:【%.(需要保留的小数位数)数的格式符】,这里演示以保留3位小数为例:也就是%.3f。

4.最后点击运行程序,在程序的调试窗口就可以看到数已经成功转化为带小数的输出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-13

帮你改了一个地方,加了注释,你看看:

#include<stdio.h>

#include<math.h>

main()

{ int a=1,b=2,t=1,j=0;

  double i,sum;

  i=0.0;

  sum=0.0;

  clrscr();

  while(t<=20)

  { i=(double)a/b;// 这里加个强制转换就OK了

    sum=sum+i;

    j=b;

    b=a;

    a=b+j;

    t=t+1;

  }

  printf("sum=%f\ni=%f\n",sum,i);

  printf("a=%d\nb=%d",a,b);

}


运行结果:

第2个回答  推荐于2017-09-24

C语言输出小数即浮点数有两种控制输入/输出的方法:

%f或者%lf:接受浮点数,单精度浮点数用f,双精度浮点数用lf。

%e或者%E:接受科学计数法表示的的浮点数,此处"e"的大小写代表在输出时用的“e”的大小写。示例如下:

#include <stdio.h>
int main()
{
printf("%f\n%lf\n", 1.1f, 1.1);
printf("%e\n%E\n", 1.1, 1.1);
return 0;
}

第3个回答  2013-04-06
%d整型输出,%ld长整型输出,
%o以八进制数形式输出整数,
%x以十六进制数形式输出整数,
%u以十进制数输出unsigned型数据(无符号数)。
%c用来输出一个字符,
%s用来输出一个字符串,
%f用来输出实数,以小数形式输出,
%e以指数形式输出实数,
%g根据大小自动选f格式或e格式,且不输出无意义的零。
第4个回答  推荐于2017-09-16
printf("aver = %d\n", aver) ;

修改成

printf("aver = %f\n", aver) ;

就可以输出小数了。追问

for(i=0; i<10; ++i)

{
if (i%2 != 0)
{
count = count + 1;
sum = sum + i;
}
aver = sum / 3;

}
printf("sum = %d, aver = %f\n", sum, aver) ;

前面的代码有错误,应该是这个。我的目的是求1到10所有奇数的和除以3的得数。可是结果却是,

“sum = 25, aver = 8.000000”

追答

aver = sum / 3;

应该移到for循环外面吧

而且你的sum是什么类型 int吗??修改为float类型。

本回答被提问者采纳