【零基础C语言】第三章 数组

数组的定义:

  int a[10];

它表示定义了一个整型数组,数组名为a,此数组有10个整型元素

定义一维数组的一般形式为:

类型符 数组名[常量表达式]

数组练习

 

数组计算大小和各种初始化

1.全部赋值

int a[10] = {0,1,2,3,4,5,6,7,8,9};初始化列表

2.部分赋值

int a[10] = {0,1,2,3,4};只提供前几个初值,后几个则初值为0

3.初始化成0

int a[10] = {0,0,0,0,0,0,0,0,0,0};

  或

int a[10] = {0};

4.见怪不怪

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

写成

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

 

 

sizeof关键字

sizeof 关键字 能计算括号里对应数据的大小空间。

size = sizeof (array)/sizeof (array[0]);

把整个数组的大小,除以数组中一个元素的大小,就获得总个数

数组应用编程练习

1.正序倒序输出

2.斐波那契数列

3.冒泡排序法

        从小到大:

#include <stdio.h>

int main()
{
        int a[] = {8,12,9,13};
        int i;
        int j;
        int t;
        int len = sizeof(a)/sizeof(a[0]);
        for(i = 0;i < len-1; i++){
                for(j = 0;j < len-1-i;j++){
                        if(a[j] > a[j+1]){
                                t = a[j];
                                a[j] = a[j+1];
                                a[j+1] = t;
                        }
                        
                }
                
        }
        for(i=0;i < len;i++){
                printf("%d  ",a[i]);
        }
        
        return 0;
}

        从大到小:

#include <stdio.h>

int main()
{
        int a[] = {8,12,9,13};
        int i;
        int j;
        int t;
        int len = sizeof(a)/sizeof(a[0]);
        for(i = 0;i < len-1; i++){
                for(j = 0;j < len-1-i;j++){
                        if(a[j] < a[j+1]){
                                t = a[j];
                                a[j] = a[j+1];
                                a[j+1] = t;
                        }
                        
                }
                
        }
        for(i=0;i < len;i++){
                printf("%d  ",a[i]);
        }
        
        return 0;
}

4.简单选择排序法

#include <stdio.h>

int main()
{
        int a[] = {8,12,9,13};
        int i;
        int j;
        int t;
        int len = sizeof(a)/sizeof(a[0]);
        for(i=0; i < len-1;i++){
                for(j=i+1;j<len;j++){
                        if(a[i] < a[j]){
                                t = a[i];
                                a[i] = a[j];
                                a[j] = t;
                        }
                }
        }
        
        for(i = 0;i < len;i++){
                printf("a[%d]=%d\n",i,a[i]);
        }
        
        return 0;
}

二维数组

二维数组常称为矩阵,写成行和列的排列形式。

一般形式为

  类型说明符 数组名[常量表达式][常量表达式]

例如:

float a[3][4,b[5][10]];3行4列的数组,5行10列的数组

#include <stdio.h>

int main()
{
        int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
        int b[2][2] = {{12,24},{21,8}};
        
        int i,j;
        for(i=0;i<3;i++){
                for(j=0;j<3;j++){
                        printf("%d  ",a[i][j]);
                }
                puts("\n");
        }
        
        int m,n;
        for(m=0;m<2;m++){
                for(n=0;n<2;n++){
                        printf("%d  ",b[m][n]);
                }
                puts("\n");
        }
        
        return 0;
}

练习题:二维数组里找出一个最大值

#include <stdio.h>

int main()
{
        int a[3][4] = {{56,89,258,665},{89,35,189,882},{320,987,691,789}};
        int hang;
        int lie;
        int i,j;
        int max = a[0][0];
        
        for(i=0;i<3;i++){
                for(j=0;j<4;j++){
                        printf("%d \t",a[i][j]);
                }
                puts("\n");
        }
        
        for(i=0;i<3;i++){
                for(j=0;j<4;j++){
                        if(max < a[i][j]){
                                max = a[i][j];
                                hang = i;
                                lie = j;
                        }
                }
        }
        printf("第%d行第%d列的%d最大",hang,lie,max);
        
        return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值