C语言(四)——数组

变量的定义

#include <stdio.h>

int main()
{
    int a[10];
    float b[10];
    double d[10];
    char c[10];
}

变量的初始化

#include <stdio.h>

int main()
{
    int a[3] = {0, 1, 2};           // 含有3个元素的数组,元素分别是0, 1, 2
    int b[] = {0, 1, 1};            // 维度是3的数组
    int c[5] = {0, 1, 2};           // 等价于c[] = {0, 1, 2, 0, 0}
    char d[3] = {'a', 'b', 'c'};    // 字符数组的初始化 
    printf("%d", c[3]);
    return 0;
}

访问和修改数组

#include <stdio.h>

int main()
{
    int a[3] = {0, 1, 2};  // 数组下标从0开始
    printf("%d %d %d\n", a[0], a[1], a[2]);
    a[0] = 5;
    printf("%d", a[0]); 

    return 0;
}

数组的读入和输出

#include <stdio.h>

int a[20], ans[20];
int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i ++) scanf("%d", &a[i]);
    for(int i = 0; i < n; i ++) printf("%d ", a[i]);
    puts("");
    for(int x : a) printf("%d ", x);
    
    return 0;
}

练习:

练习题0:P1428 小鱼比可爱 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include <stdio.h>

int a[20], ans[20];
int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i ++) scanf("%d", &a[i]);
    for(int i = 0; i < n; i ++)
    {
        int cnt = 0;
        for(int j = 0; j < i; j ++)
        {
            if(a[j] < a[i]) cnt ++;
        }
        printf("%d ", cnt);
    }
    
    return 0;
}

练习题1: 使用数组实现求斐波那契数列的第 N 项。

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);

    f[0] = 0, f[1] = 1;
    for (int i = 2; i <= n; i ++ ) f[i] = f[i - 1] + f[i - 2];

    printf("%d", f[n]);
    return 0;
}

练习题2:P5731 【深基5.习6】蛇形方阵 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include <stdio.h>

int arr[20][20];
bool st[20][20];
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int main()
{
    int n;
    scanf("%d", &n);
    int x = 0, y = 0, d = 1;
    for(int i = 1; i <= n * n; i ++)
    {
        arr[x][y] = i;
        st[x][y] = true;
        int a = x + dx[d], b = y + dy[d];
        if(a < 0 || a >= n || b < 0 || b >= n || st[a][b])
        {
            d = (d + 1) % 4;
            a = x + dx[d], b = y + dy[d];
        }
        x = a, y = b;
    }
    
    for(int i = 0; i < n; i ++)
    {
        for(int j = 0; j < n; j ++)
        {
            printf("%3d", arr[i][j]);
        }
        puts("");
    }
    return 0;
}

评论

  1. 朱玉明
    博主
    Windows Edge 106.0.1370.42
    3 年前
    2022-10-17 19:43:07
本文评论已关闭
上一篇
下一篇