· 如何写一个程序计算用户输入的数字的平均数
用户输入正整数,并计算输入数字的平均数,如果输入“-1”表示输入结束;

#include<stdio.h>int main()
{
int x;
double sum = 0;
int cnt = 0;scanf("%d",&x);
while (x != -1){sum += x;cnt ++;scanf("%d",&x);
}
if (cnt>0){printf("%f\n", sum/cnt);//  不记录所有输入的数
}
}

输入结果

1 2 3 4 5 6 7 8 9 10
-1
5.500000

· 如何写一个程序计算用户输入的数字的平均数,并输出所有大于平均数的数
用户输入正整数,并计算输入数字的平均数,输出所有大于平均数的数。如果输入“-1”表示输入结束;
我们如何记录很多数
常见如下

int num1,num2,num3……num100?

所以我们需要用到数组,我们将所有需要记录的数据定义为一个数组,然后遍历整个数组,如果大于平均值,我们输出这个数组

#include<stdio.h>
int main()
{
int x;
double sum = 0;
int cnt = 0;
int number[100];        //定义数组及数组类型,有100个int
scanf("%d",&x);
while (x!= -1){number[cnt] = x;       //number这个数组的cnt单元等于X // 调试用的代码,可以观察number[i]的值如何变化 {int i;printf("%d\t",cnt);     //输出cnt的值 for(i=0;i<=cnt;i++){printf("%d\t",number[i]);}printf("test\n");}sum += x;cnt ++;scanf("%d",&x);
}
if (cnt>0){printf("%f\n",sum/cnt);int i;for(i=0;i<cnt;i++){      // 遍历数组的每一个数组,如果大于平均数,则输出 if(number[i]>sum/cnt){printf("%d\n",number[i]);}}
}
return 0;
}

输入结果

1 2 3 4 5 6 7 8 9 10
0 1 test
1 1 2 test
2 1 2 3 test
3 1 2 3 4 test
4 1 2 3 4 5 test
5 1 2 3 4 5 6 test
6 1 2 3 4 5 6 7 test
7 1 2 3 4 5 6 7 8 test
8 1 2 3 4 5 6 7 8 9 test
9 1 2 3 4 5 6 7 8 9 10 test
-1
5.500000
6
7
8
9
10


定义数组
· <类型>变量名称[元素数量];
· int grades[100];
· double weight[20];
· 元素数量必须是整数
· C99之前,元素数量必须是编译时确定的字面量

数组
· 是一种容器(可以放东西的东西),特点是:
· 其中所有的元素具有相同的数据类型;
· 一旦创建,不能改变大小
· *(数组中的元素在内存中是连续依次排列的)

int a[10]
· 一个int的数组
· 10个单元:a[0],a[1],……a[9]
· 每个单元就是一个int类型的变量
· 可以出现在赋值的左边或右边
· a[2] = a[1]+6;
· *在赋值左边叫左值,右边叫右值

数组的单元
· 数组的每个单元就是数组类型的一个变量
· 使用数组时,放在[]中的数字叫做下表或索引,下表从0开始计数
· grades[0]
· grades[99]
· average[5]

有效的下标范围
· 编译器和运行环境都不会检查数组下标的越界
· 一旦程序开始运行,越界的数组访问可能造成问题,导致崩溃
· ·segmentation fault
· 偶尔可能运气好,未造成严重后果
· 程序员的责任,让我们保证程序只使用有效的下标值

翁恺老师C语言学习笔记(八)数组相关推荐

  1. 翁恺老师C语言学习笔记(十一)字符串_字符串常量

    字符串常量 char* s = "Hello,world!" 我们先看一段代码 #include<stdio.h>int main(void) {char *s = & ...

  2. 翁恺老师C语言学习笔记(十一)字符串

    字符数组 如果我们定义了这样的一个字符数组 char word[] = {'H','e','l','l','o','!'}; word[0] H word[1] e word[2] l word[3] ...

  3. 翁恺老师C语言学习笔记(十)指针_指针与数组

    传入函数的数组成了什么? · 当我们向一段函数传入数组变量,参数接收到的是值,如果我们传入指针时,参数接收到的是也是值(一个地址): · 如果传入函数的是一个普通变量,它接收到的是一个值 · 如果传入 ...

  4. 翁恺老师C语言学习笔记(十)指针_指针的使用

    指针的应用场景一 · 交换两个变量的值 void swap(int *pa, int *pb);//定义指针*pa和*pb int main(void) {int a = 5; int b = 6;s ...

  5. 翁恺老师C语言学习笔记(十)指针_指针变量就是记录地址的变量

    指针变量就是记录地址的变量 scanf函数 · 如果能够将取得的变量的地址传递给一个函数,能否通过这个地址在那个函数内访问这个变量 · scanf("%d", &i) · ...

  6. 翁恺老师C语言学习笔记(十)指针_运算符取得变量的地址

    指针(一) 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值.由于通过地址能找到所需的变量单元,可以说,地址指 ...

  7. 翁恺老师C语言学习笔记(九)数组的运算

    · 在一组给定的数据中,如何找出某个数据是否存在? 先看一段代码 #include<stdio.h> /* 找出key在数组a中的位置 @param key 要寻找的数字 @param a ...

  8. 翁恺老师C语言学习笔记(七)函数

    题目:求出1-10.20-30.35-45的三个和 #include<stdio.h>int main() {int i;int sum;for(i=1,sum=0;i<10;i++ ...

  9. 翁恺老师C语言学习笔记(十)指针_指针运算

    我们先看一段代码 #include <stdio.h>int main(void) {char ac[] = {0,1,2,3,4,5,6,7,8,9,};char *p = ac;pri ...

最新文章

  1. CentOS安装编译环境
  2. js时间格式化函数,支持Unix时间戳
  3. 2019.2.20异常
  4. CanalAdapter启动过程分析(源码详解)
  5. 整合Hibernate3.x
  6. word菜单删除,小常识,删除word菜单,WORD菜单栏,删除词霸2003菜单,删除adobe菜单
  7. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波16 - 锐化高通滤波器 - 钝化掩蔽和高提升滤波
  8. Android之Timer和TimerTask的介绍
  9. CREAMy简洁大气模板Typecho主题
  10. 产业链人士:台积电将同设备及原材料供应商谈判,希望明年降价15%
  11. java继承test 怎么写_Java Junit Test 要怎么写?
  12. Qt4_中央窗口部件
  13. Kubernetes集群搭建之Etcd集群配置篇
  14. d3js scales深入理解
  15. 《勿忘初心,不负梦想》
  16. Excel竟然能够按照单元格的指定颜色顺序排序
  17. 机器学习面试题总结!!!!
  18. 芝诺数解|「六」享受生活,品味甘甜——重庆奶茶
  19. systemd service unit
  20. oracle查询数据令某字段显示固定值

热门文章

  1. 综观java读取和创建excel方法
  2. 昆明北大附中2021高考成绩查询入口,昆明高考成绩单:昆明多所高中高考数据来啦!...
  3. python曲线拟合绘图_python – 将曲线拟合到分段图像
  4. mysql 使用jdbctemplate_SpringBoot学习笔记-使用jdbcTemplate访问mysql
  5. c语言 动态链表,C语言的链表(篇章之二:动态链表)
  6. android 微信支付测试,求大神指导一下!!!android开发,测试demo按步骤配置,无法调用到微信支付...
  7. BUUCTF Web [极客大挑战 2019]Havefun
  8. WIN10和XP共享及XP添加WIN10共享打印机方法
  9. 百度推出Apollo 3.5和Apollo Enterprise
  10. 47. Python socket编程 2