黑马程序员关于c语言数组详解
2015-04-21 12:09
225 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -----
我们想要保存一个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; }
运行截图:
相关文章推荐
- 黑马程序员---------C语言 关于数组被当作函数参数传递的问题
- C语言0长度数组(可变数组/柔性数组)详解
- 黑马程序员-IOS笔记-C语言中的指针与数组
- c语言字符数组与字符串的使用详解
- C语言数组与指针详解
- C语言--关于二维数组,字符串数组,多维数组
- 黑马程序员——C语言——数组和字符串
- 黑马程序员—C语言—数组、字符串、结构体和枚举
- c语言 一道关于数组的拓展训练
- c语言中关于字符串的那些事儿(字符数组和字符指针)
- C语言快速入门之数组详解
- 黑马程序员—C语言指针与数组
- 关于C语言中的字符数组和字符指针
- C语言 指针与数组的详解及区别
- 山东理工大学ACM平台题答案关于C语言 1228 两数组最短距离
- 黑马程序员-C语言数组
- 黑马程序员——C语言——数组和指针
- 黑马程序员-IOS笔记-C语言中的字符串数组 指针
- 关于C语言字符数组、字符串和指针的相关问题
- C语言中关于数组的运算