黑马程序员关于c语言数组详解

来源:互联网 发布:windows集中管理 编辑:程序博客网 时间:2024/04/30 15:16

------<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;}

运行截图:


                         
                                                

0 0
原创粉丝点击