题目描述
输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。
输入格式
10个数
输出格式
大于平均数的个数
样例输入
1 2 3 4 5 6 7 8 9 10
样例输出
5
```c
#include
int main(){
int a[10]={0},i,num=0,average=0;
for (i=0;i<10;i++){
scanf("%d",&a[i]);
average+=a[i];
}
average/=10;
for(i=0;i<10;i++){
if(a[i]>average){
num++;
}
}
printf("%d",num);
return 0;
}
如果您没定义初始值,按理说你这个程序是跑不起来的;
当您未定义初始值的时候,系统会给您自动分配一个
可以通过调试看出来
你不给他初值 他就是随机数 不初始化的值怎么使用++?
只有赋值为0,才能确保是从0开始,然后每次加1的,不给值的话不同编译软件结果不同吧,可能是随机数,可能是1开始,结果就是6
就是没初始化吧,不初始化就是系统给的值1
#include <stdio.h>
int main(){
int a[10]={0},i,num,average=0;
printf("%d",num); //这里就会输出num=1,你可以试试
for (i=0;i<10;i++){
scanf("%d",&a[i]);
average+=a[i];
}
average/=10;
for(i=0;i<10;i++){
if(a[i]>average){
num++;
}
}
printf("%d",num);
return 0;
}
```
变量定义没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。
如果加了static不给初值,变量的初值是默认的 0。
不能说不赋初值就不行,对于局部变量,不赋初值的话,其实里面存的是一个随机的值,谁也不知道是多少
变量使用时一定要初始化,其实你不一定要赋值0,其他数也行,最后减去这个数就行