C语言自学完备手册(14)——数组
发布日期:2021-06-30 11:19:38 浏览次数:4 分类:技术文章

本文共 2882 字,大约阅读时间需要 9 分钟。




版权声明

  • 本文原创作者:
  • 作者博客地址:

数组

数组是相同类型数据的集合。换言之,只有类型相同的数据才可以放到同一个数组中。

数组的声明

数组的声明需要指定:元素类型、变量名、元素个数;例如:

int a [5];
在此声明一个int类型的数组a,数组长度为5。

请看如下示例:

#include 
#include
int main(){ int a [5]; a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; int length=sizeof(a)/sizeof(a[0]); printf("数组长度为%d\n",length); puts("遍历数组"); for(int i=0;i<5;i++){ printf("a[%d]=%d\n",i,a[i]); }}

运行结果:

数组长度为5遍历数组a[0]=1a[1]=2a[2]=3a[3]=4a[4]=5Process returned 0 (0x0)   execution time : 0.472 sPress any key to continue.

在该示例中声明一个变量,然后为数组中每个元素赋值;最后再对数组进行遍历。有个小东西需要注意一下:在Java里面求数组的长度直接a.length就可以了。但是,在C里面是不一样的,在此采用的是sizeof(a)/sizeof(a[0])的方式。

刚才的示例中是先声明数组,后初始化数组。其实,也可以声明的同时对其进行初始化。例如:

int a[5]={1,2,3,4,5};
也可以在声明的时候不指明元素个数,例如:
int a[ ]={1,2,3,4,5};
也可以只对部分元素进行初始化,例如:
int a[5]={1,2,};等价于int a[5]={1,2,0,0,0};
但是要注意:不能通过赋值语句对数组进行初始化,例如:
int a[5];
a={1,2,3,4,5};
而且C语言中不支持使用=为数组赋值,例如:
int a[5]={1,2,3,4,5};
int b[5];
b=a;

数组的练习

1 数组的复制

#include 
#include
int main(){ int a[5]={
1,2,3,4,5}; int b[5]; int i; int length=sizeof(a)/sizeof(a[0]); for(i=0;i

2 接收键盘的输入为数组元素赋值

#include 
#include
int main(){ int i; int a[5]; for(i=0;i<5;i++){ printf("a[%d]:",i); scanf("%d",&a[i]); } puts("遍历数组:"); for(i=0;i<5;i++){ printf("a[%d]=%d\n",i,a[i]); } return 0;}

3 数组的逆置

#include 
#include
//逆置数组int main(){ int a[]={
1,3,5,7,9,11}; int i; int length=sizeof(a)/sizeof(a[0]); for(i=0;i

4 获取数组的最大值与最小值

#include 
#include
int main(){ int a[]={
8,3,5,7,9,11}; int i; int max=a[0]; int min=a[0]; int length=sizeof(a)/sizeof(a[0]); for(i=0;i
max){ max=a[i]; } if(a[i]

二维数组

所谓二维数组就是多个一维数组集合在一起形成的数组,即二维数组的每个元素是一个一维数组。例如: int a[4][3]表示该二维数组有4个元素,每个元素是一个一维数组并且该一维数组中有3个元素。

关于二维数组的遍历,请看如下示例:

#include 
#include
int main(){ int i; int j; int a[4][3]={
{
1,2,3},{
4,5,6},{
7,8,9},{
0,5,8}}; for(i=0;i<4;i++){ for(j=0;j<3;j++){ int temp=a[i][j]; printf("a[%d][%d]=%d\n",i,j,temp); } } return 0;}

二维数组练习题

4个学生参加3门课的期末考试,请求出每门课程的平均成绩

#include 
#include
int main(){ int i; int j; int a[4][3]={
{
71,82,93},{
64,75,76},{
77,78,89},{
70,65,78}}; int chineseSum=0; int mathSum=0; int englishSum=0; for(i=0; i<4; i++) { for(j=0; j<3; j++) { if(j==0) { chineseSum+=a[i][j]; } if(j==1) { mathSum+=a[i][j]; } if(j==2) { englishSum+=a[i][j]; } } } printf("语文平均成绩%d\n",chineseSum/4); printf("数学平均成绩%d\n",mathSum/4); printf("英语平均成绩%d\n",englishSum/4); return 0;}

转载地址:https://it9527.blog.csdn.net/article/details/81036210 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C语言自学完备手册(15)——函数(1)
下一篇:C语言自学完备手册(13)——break和continue

发表评论

最新留言

很好
[***.229.124.182]2024年04月07日 18时58分54秒