利用数组处理数据——一维数组

首先通过一个例题来引入数组

求三个学生的平均成绩

#include <stdio.h>
void main()
{
    float score,sum,ave;
    int i;
    sum=0;
    for(i=1;i<=3;i++)
    {
        scanf("%f",&score);
        sum=sum+score;
        
    }
    ave=sum/30;
    printf("%f\n",ave);
}

假设成绩为 1,2,3,运行结果:

改进:

  1. 先判断是否大于零,定义a,输入a,a=scanf(),如果a>=0,继续进行。

  1. 计数器counter,初始等于0,累加counter++,个数计算通过累加实现。

如果要求输出所有成绩当中比平均成绩高的成绩,就需要将值保存下来,但是保存值需要一个变量,挨个定义变量,输入值,就显得十分麻烦,对于大批量数据,处理时,不能像处理小数据一样定义简单变量去保存,繁重且容易出错,新的处理方式就是数组

数组:一组数目固定,类型相同的数据项的集合。

  1. 数组是计算机编程中的重要概念,运用数组可以方便地处理大规模的数据。

  1. 在程序中可以使用下标变量,即说明这些变量的整体为数组,用数组名➕下标这种形式来确定唯一元素,数组中的每个变量的数据类型是相同的。

  1. 每一个数叫数组元素或者数据项,在内存单元中连续存放,占据连续的内存空间,可以进行批量处理。

  1. 第一个位置序号0,依次1,2.....

  1. 例如number[0],可以赋值number[0]=a,可以作为变量输出等。

一维数组:数据的线性组织方式

  • 定义

一维数组,是由数字组成的以单纯的排序结构排列的结构单一的数组,是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。

当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。

数组的定义格式如下:

类型标识符 数组名[常量表达式]

说明:①数组名的命名规则与变量名的命名规则一致

②常量表达式表示数组元素的个数。可以是常量或符号常量,不能为变量。

int a[10];     //数组a的定义是合法的
int a[n];      //若n为变量,则数组a的定义是非法的

要声明类型,即元素的类型,和变量名命名规则一样。要声明长度,即存放元素个数。

int a[10],b[5]
char c[1]
y[4*m]    //表达式
  • 性质

  1. 一维数组的存储

占据连续的内存空间,整型占4个字节,如果是int a[10],占据4×10个字节,跟数据类型有关,

总字节数=sizeof(数据类型)*数组元素个数

  1. 格式

数组名[下标],下标可以是整型常量,整型表达式,从0开始,最大下标是(长度-1),不能越界访问(程序设计的一种严重问题,越界访问,编译器检查不出来)

先定义后使用,和变量一样,可以认为同时定义多个变量

3.引用

  1. 逐个引用元素,不能一次引用整个数组
int a[100],b[100]; a=b;    //这是非法的
  1. 数组名不能与其他变量名相同
int a;
  
float a[10];               //这是非法的
  1. 不能在方括号中用变量来表示元素的个数
int n=5;
  
int a[n];                 //这是非法的

但可以是符号常数或常量表达式

int a[3+2];                               //这是合法的

4. 一维数组的初始化:

即定义数组时赋初值

一,数组元素全部赋值,多个初值用逗号分开,大括号{}括起来,按顺序赋值int a[2]={1,2}

二.给部分赋初值,int a[10]={1,2},1赋值给第一个,2赋值给第二个,其他自动为0

三.使数组元素全为0,int a[10]={0};直接写int a[10],不赋值

四.对全部元素赋值,可以不指定即省略数组长度,例如a[]={1,2},系统识别长度为2。

初值个数和数组长度不一样时,不能省略,例如int a[10]={1,2}。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒大大王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值