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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月07日 18时58分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
DbUtil的介绍使用
2019-04-30
DbUtil异步更新AsyncQueryRunner
2019-04-30
java判断中文汉字工具类
2019-04-30
DbUtils里的ResultSetHandler处理器应用
2019-04-30
Apache WEB服务器启用了OPTIONS方法
2019-04-30
配置文件中的数据库密码加密
2019-04-30
tailf报错limit of inotify watches was reached
2019-04-30
Solr控制台索引维护-删除索引
2019-04-30
ping结果的相关知识点,tracert命令验证
2019-04-30
ARP欺骗原理与模拟
2019-04-30
网络运维相关知识点
2019-04-30
GNS3软件简介
2019-04-30
csdn搜索博主的文章
2019-04-30
ORA-12552: TNS:operation was interrupted
2019-04-30
MyISAM表修复
2019-04-30
GNS3中关联使用SecureCRT
2019-04-30
oracle日期的相关有用统计SQL
2019-04-30
oracle数据库LOB管理
2019-04-30
oracle数据库BFILE的应用demo
2019-04-30