问题:如何写一个程序计算用户输入的平均数,并输出所有大于平均数的数?
思考:如果不引用数组的概念,我们则需要定义很多的变量,这使得我们的编写变得十分困难,因此,我们引入了数组的定义。
什么是数组?
<1>数组是一种用来存储相同类型数据元素的集合的数据结构。你可以通过声明一个数组来定义它。
<2>int numbers[5] = {1, 2, 3, 4, 5};//这样来声明和初始化数组。
<3>int x = numbers[2]; // 获取数组中第3个元素的值赋给变量x。
下面我们给出一种非最优的解法:
#include<stdio.h>
int main() {
int a;
int nut = 0;
double sum = 0.0;
int number[100];
int i;
printf("请输入:");
scanf_s("%d", &a);
while (a != -1) {
nut++;
number[nut] = a;
sum = sum + a;
printf("请输入:");
scanf_s("%d", &a);
}
double ave;
ave = sum / nut;
int n = 0;
int j;
for (j = 0; j <= nut; j++) {
if (number[j] > ave) {
n++;
}
}
printf("%d", n);
return 0;
}
//思路:首先我们思考如何计算出这个数的平均数,这很容易,简单的while循环就可以解决,之后我们便想如何定义我们输出的量,这时候就引出数组。
首先我们先定义一个大值,这里是100,这样做有些风险,但是在这个小程序中是可以解决的(后面会改进);
然后就是给每个小数组进行定义;
尤其注意这个式子 for (j = 0; j <= nut; j++),得确保它的值一一对应!