【经验分享】C语言二维数组

Explorer 发布于 2024-12-13 872 次阅读


AI 摘要

C语言二维数组的创建、初始化与使用方法,包括不完全初始化、按行初始化及省略行数的规则。文章通过代码示例演示了数组的输入输出操作,并介绍了字符从两端向中间汇聚的实操练习。
本文发布于 2024-12-13,距今已超过 613 天。软件版本、命令参数、下载链接或第三方服务策略可能已经变化,请以官方文档和实际环境为准。

一、二维数组的创建

1.二维数组的创建

type arr_name[常量1][常量2];

例如:
int arr[3][5];
double data[2][8];
char ch[][];

//3表示数组有三行,5代表数组每一行有5个元素。int代表数组中的元素为整数。

2.二维数组的初始化

像一维数组【1】一样,同样使用大括号初始化

//不完全初始化,剩余元素默认为0;
int arr1[3][5] = {1,2};
int arr2[3][5] = {0};

//按照行初始化,第2,3,4列都为0;
int arr3[3][5] = {{1,2},{3,4},{5,6}}

//完全初始化
int arr4[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};

//初始化时候可以省略行,但是不能省略列
int arr4[][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

二、二维数组的使用

3.二维数组的输入与输出

C语言【2】规定数组的索引要从0开始,包括行与列

#include<stdio.h>
int main(){
 int arr[3][5] = {0};
 int i = 0;
 for(i = 0; i < 3; i++) {
 int j = 0;
 for (j = 0; i < 5; j++) {
 scanf("%d",&a[i][j]);
}
}
 for(i = 0; i < 3; i++) {
 int j = 0;
 for (j = 0; i < 5; j++) {
 printf("%d",a[i][j]);
}
 printf("n");
}
return 0;
}

三、实操练习

字符从两端移动,到中间汇聚

前提:

strlen【3】求的是字符串的长度,统计的是字符串中/0之前的长度。

sizeof【4】是数组所占内存空间的大小(单位是字节),包括/0。

#include<stdio.h>
#include<string.h>

int main() {
char arr1[] = "welcome to China!!!";
char arr2[] = "###################";
int left = 0;
int right = strlen(arr1) - 1;

while(left <= right) {
 arr2[left] = arr1[left];
 arr2[right] = arr1[right];
left++;
right--;
printf("%sn", arr2);
}
return 0;
}

输出以下

w#################!
we###############!!
wel#############!!!
welc###########a!!!
welco#########na!!!
welcom#######ina!!!
welcome#####hina!!!
welcome ###China!!!
welcome t# China!!!
welcome to China!!!

关于C99中的变长数组

在C99【5】标准中,变长数组【6】(Variable Length Arrays, VLA【7】)是一种允许数组的大小在运行时动态确定的特性。与传统的静态数组不同,变长数组的大小不是在编译时确定,而是在程序运行时动态指定

#include <stdio.h>

void example(int n) {
    int array[n];  // n是一个运行时确定的值
    for (int i = 0; i < n; i++) {
        array[i] = i + 1;
    }
    for (int i = 0; i < n; i++) {
        printf("%d ", array[i]);
    }
    printf("n");
}

int main() {
    int size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    example(size);
    return 0;
}

输入5输出1 2 3 4 5;

相关阅读