(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净
要求:
1、从键盘输入一些整数,求出它们的平均值。数据的个数事先不确定,在输入过程中以ctrl+z键(EOF)作为输入结束的标记。
2、输入一些整数,按回车,然后同时按ctrl键和z键,再按回车结束输入。
本体涉及到 while(scanf("%lf",&a[i])!=EOF)的用法,所以在这里写一点自己的心得体会!
目前接触到的Printf;Scanf()等都是函数,而Scanf()是有返回值的!
C语言中的程序在运行到“while(scanf("%lf",&a[i])!=EOF)”这一句时,先对a[i]进行赋值,根据赋值情况来得出一个数:因为例子中只对1个值进行赋值,所以赋值成功的话返回值是1,否则是0,返回值即为成功赋值的个数。然后根据这个返回值再来判定while循环语句是否继续进行。大家通过上面的了解之后就会发现,这一语句其实是循环与输入的嵌套语句:其在赋值后,进行循环条件的判断。所以,题目的代码就出来了。
#include<stdio.h>
int main()
{double a[1000];int i=0;double s=0;while(scanf("%lf",&a[i])!=EOF)i++;int m=i;for(i=0;i<m;i++)s=s+a[i];printf("%.2f\n",s/i);return 0;
}