关于c语言数组详解

 

我们想要保存一个int型数据可以用一个变量来保存,可是如果我们要保存相同类型的100个int型的变量呢?不可能用100个变量来保存吧,于是我们用到了数组,用数组来保存这100个数据就简单方便多了。

数组:数组从字面意义上解释,就是一组数据,所以数据就是用来保存一组数据的。

特点:只能存储相同类型的数据,可以是int,也可以是float,或者其他一些相同的数据类型,我们把保存的数据称为“元素”。

 

一维数组:

        1.定义: 声明数组的类型和元素个数

 

        2.格式:元素类型  数组名[元素个数]  比如:int  ages[5]

 

        3.初始化

           正确初始化:

                                 int ages[5]={18,19,23,27,21};

                                 int ages[]={18,19,23,27,21};

                                 int ages[5]={18,19,23,27};

                                 int ages[5]={[1]=19,[4]=21};

           列举一些错误写法:

                                 int ages;

                                 int ages[];

                                 int[5] ages;

                                 ages[5]={18,19,23,27,21};

                                 ages={18,19,23,27,21};

          4.内存分析:

           数组存储空间大小要合适

           内存分配是从高地址到低地址进行的,但是数组元素是从低地址到高地址开始分配的

           数组名可以作为首元素地址进行访问,比如ages,就可以当做ages[0]的地址

 

下面举一个例子:输入5个学生的成绩,计算并输出平均分,最高分和最低分。

#include <stdio.h>
int main()
{
	float average(int a[],int n);
    int Max(int a[],int n);
	int Min(int a[],int n);
	float a;
	int b,c;
	int score[5];
	printf("请输入5个学生的成绩:\n");
	for(int i=0;i<5;i++)
		scanf("%d",&score[i]);
	a=average(score,5);
	b=Max(score,5);
	c=Min(score,5);
	printf("平均分是:%0.2f,最高分是:%d,最低分是:%d\n",a,b,c);
	return 0;
}

float average(int a[],int n)
{
	float sum=0;
	for(int i=0;i<n;i++)
	sum += a[i];
	return sum/n;
}

int Max(int a[],int n)
{
	int max = a[0];
    for(int i=1;i<n;i++)
		if(max < a[i])
			max = a[i];
	return max;

}

int Min(int a[],int n)
{
	int min = a[0];
    for(int i=1;i<n;i++)
		if(min > a[i])
			min = a[i];
	return min;

}



运行截图:                      

 

二维数组:

 

        

        1.定义: 声明数组的类型和元素的行数和列数

 

        2.格式:元素类型  数组名[行数][列数]  比如:int  a[3][4];

 

        3.初始化

           正确初始化:

                                int a[2][3]={1,2,3,4,5,6};

                                int a[2][3]={{1,2},{3,4},{5,6}};

                                int a[][3]={1,2,3,4,5,6};

           列举一些错误写法:

                               int a[2][3];a[2][3]={1,2,3,4,5,6};      //二维数组定义和初始化不能分步,要在定义声明的时候进行初始化

          比如初始化三个人(小红,小明,小刚)的数学和英语成绩并打印出来就可以用二维数组为:

 

#include <stdio.h>
int main()
{
	float score[3][2]={89,78,90,88,86,96};
	// float score[3][2]={{89,78},{90,88},{86,96}};
	printf("小红的数学成绩:%0.2f,英语成绩:%0.2f\n",score[0][0],score[0][1]);
	printf("小明的数学成绩:%0.2f,英语成绩:%0.2f\n",score[1][0],score[1][1]);
	printf("小刚的数学成绩:%0.2f,英语成绩:%0.2f\n",score[2][0],score[2][1]);
	return 0;
}


运行截图:

 

 

                         

                                                

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值