C语言循序渐进之数组

数组

类型符 数组名[常量表达式] (类型、变量名/标识符、值、内存地址)

int a[10]

#include <stdio.h>
        //输出11~19
int main()
{
    int array[10];    //10:表示大小
    int data;
    for(data = 1 ; data < 10 ;data++){
        array[data] = data + 10;
        printf("%d\n",array[data]);
    }


    return 0;
}

数组初始化

#include <stdio.h>

int main()
{
    int i;
   //int array[10] = {0,1,2,3};    //后面未赋值的填0
    // int array[10] = {0};
    // int array[3] = {0,1,2};   等价于  int array[] = {0,1,2}; //系统根据大小自动分配内存空间
    int array[10] = {0,1,2,3,4,5,6,7,8,9};
    for(i = 0 ; i < 10 ;i++){
        printf("%d\n",array[i]);
    }
    return 0;
}
#include <stdio.h>

int main()
{    
    int array[] = {0,1,2,5,4,6};
    int size;
    int i;                                    //sizeof:计算内存大小
    size = sizeof(array)/sizeof(array[0]);    //array:表示数组的大小;array[0]:表示数组中一个元素的大小   
    for(i = 0; i < size ;i++){
        printf("%d\n",array[i]);
    } 
    return 0;
}

练习

#include <stdio.h>
#include <stdlib.h>
            //0~9,逆向输出
int main()
{    
    int array[10];
    int i = 0;
    int data = 0;
    for(i = 0 ; i < 10 ;i++){
        array[i] = i;    
    }
    //正向输出
        for(i = 0 ; i < 10 ;i++){
        printf("%d\n",array[i]);    
    }
    puts("====================");    
    /*
    int size = sizeof(array) / sizeof(array[0]);    //计算array数组大小 
    for(i = 0 ; i < size ; i++){
        data = size - i -1;
        printf("%d\n",array[data]);
    }
    */
    
    for(i = 9 ; i >= 0 ; i--){
        printf("%d\n",array[i]);
    }
    
    return 0;
}

斐波那锲数列

#include <stdio.h>

int main()
{
    int array[30];
    array[0] = 0;
    array[1] = 1;
    int i;
    for(i = 2 ; i < 30 ; i++){
        array[2] = array[i-1] + array[i-2];
        printf("%d  ",array[i]);
    }
    
    return 0;
}

冒泡排序法

#include <stdio.h>
        //将元素从小到大输出
int main()
{    
    int j;
    int k;
    int temp;
    int array[] = {100,52,63,94};
    int size = sizeof(array) / sizeof(array[0]);
    for(j = 0 ; j < size-1 ; j++){
        for(k = 0 ;k < size-1-j ; k++){
            if(array[k] > array[k+1]){
                temp = array[k];
                array[k] = array[k+1];
                array[k+1] = temp;
            }
        }       
    }
    for(j = 0; j < size ; j++){
        printf("%d  ",array[j]);
    }

    return 0;
}

选择排序法

#include <stdio.h>
            //从小到大输出
int main()
{
    int j;
    int k;
    int temp;
    int array[] = {85,98,548,48};
    int size = sizeof(array) / sizeof(array[0]);    //计算数组内存空间大小
    for(j = 0; j < size-1 ;j++ ){
        for(k = j+1; k < size;k++){
            if(array[j] > array[k]){        
                temp = array[j];
                array[j] = array[k];
                array[k] = temp;
            }
        }
    }
    for(j = 0; j < size ; j++){
        printf("%d  ",array[j]);
    }
    return 0;
}

二维数组

#include <stdio.h>
            //二维数组输出:
                            1  2  3
                            4  5  6    
int main()
{
    int array[2][3] = {{1,2,3},{4,5,6}};    //2:2组;3:每组里面有3个元素
   // int array[][3] = {1,2,3,4,5,6};
    int i;
    int j;
    for(i = 0 ; i < 2;i++){
        for(j = 0; j < 3; j++){
            printf("%d  ",array[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}

一些初始化写法

#inclue <stdio.h>

int main()
{
    int array[3][4] = {{1},{5},{9}};  //3行4列,可以不写行,一定要写列
    //int array[3][4] = {{1},{0,6},{0,0,11}};
    return 0;
}
#include <stdio.h>
        //查找数组中最大元素
int main()
{            
    int array[][4] = {5,7,87,54,655,41,215,545,451,545,45454,999};
    int row;    //行
    int column;    //列
    int i;
    int j;
    int max = 0;
    for(i = 0 ; i < 3;i++){        //打印数据
        for(j = 0; j < 4; j++){
            printf("%d  \t",array[i][j]);
        }
        printf("\n");
    }
    
    for(i = 0; i < 3; i++){            //查找最大数据
        for(j = 1; j < 4; j++){
            if(array[i][j-1] > array[i][j]){
                max = array[i][j-1];
                row = i;
                column = j-1;
            }
        }    
    }
        printf("max = %d  ",max);    
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值