精华内容
下载资源
问答
  • C语言二维数组 - osc_it9fazjn的个人空间 - OSCHINA - 中文开源技术交流社区
    2021-05-21 03:44:25

    上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。

    二维数组的定义

    二维数组定义的一般形式是:

    dataType arrayName[length1][length2];

    其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。例如:

    int a[3][4];

    定义了一个3行4列的数组,共有3×4=12个元素,数组名为a,即:

    a[0][0], a[0][1], a[0][2], a[0][3]

    a[1][0], a[1][1], a[1][2], a[1][3]

    a[2][0], a[2][1], a[2][2], a[2][3]

    在二维数组中,要定位一个元素,必须给出一维下标和二维下标,就像在一个平面中确定一个点,要知道x坐标和y坐标。例如,a[3][4] 表示a数组第3行第4列的元素。

    二维数组在概念上是二维的,但在内存中地址是连续的,也就是说各个元素是相互挨着的。那么,如何在线性内存中存放二维数组呢?有两种方式:一种是按行排列, 即放完一行之后再放入第二行。另一种是按列排列, 即放完一列之后再放入第二列。

    在C语言中,二维数组是按行排列的。也就是先存放a[0]行,再存放a[1]行,最后存放a[2]行;每行中的四个元素也是依次存放。数组a为int类型,每个元素占用4个字节,整个数组共占用4×(3×4)=48个字节。

    【示例】一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。

    --

    Math

    C

    English

    80

    75

    92

    61

    65

    71

    59

    63

    70

    85

    87

    90

    76

    77

    85

    可设一个二维数组a[5][3]存放五个人三门课的成绩。再设一个一维数组v[3]存放所求得各分科平均成绩,设变量average 为全组各科总平均成绩。编程如下:

    #include

    int main(){

    int i, j; //二维数组下标

    int sum=0; //当前科目的总成绩

    int average; //总平均分

    int v[3]; //各科平均分

    int a[5][3]; //用来保存每个同学各科成绩的二维数组

    printf("Input score:\n");

    for(i=0; i<3; i++){

    for(j=0; j<5; j++){

    scanf("%d", &a[j][i]); //输入每个同学的各科成绩

    sum+=a[j][i]; //计算当前科目的总成绩

    }

    v[i]=sum/5; // 当前科目的平均分

    sum=0;

    }

    average =(v[0]+v[1]+v[2])/3;

    printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);

    printf("Total:%d\n", average);

    return 0;

    }

    运行结果:

    Input score:

    80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙

    Math: 72

    C Languag: 73

    English: 81

    Total:75

    程序使用了一个嵌套循环。在内循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内循环后再把该累加成绩除以5送入v[i]之中,这就是该门课程的平均成绩。外循环共循环三次,分别求出三门课各自的平均成绩并存放在v数组之中。退出外循环之后,把v[0]、v[1]、v[2]相加除以3即得到各科总平均成绩。最后按题意输出各个成绩。

    二维数组的初始化

    二维数组的初始化可以按行分段赋值,也可按行连续赋值。

    例如对数组a[5][3],按行分段赋值可写为:

    int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

    按行连续赋值可写为:

    int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};

    这两种赋初值的结果是完全相同的。

    【示例】求各科平均分和总成绩平均分。

    #include

    int main(){

    int i, j; //二维数组下标

    int sum=0; //当前科目的总成绩

    int average; //总平均分

    int v[3]; //各科平均分

    int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

    for(i=0; i<3; i++){

    for(j=0; j<5; j++){

    sum+=a[j][i]; //计算当前科目的总成绩

    }

    v[i]=sum/5; // 当前科目的平均分

    sum=0;

    }

    average =(v[0]+v[1]+v[2])/3;

    printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);

    printf("Total:%d\n", average);

    return 0;

    }

    运行结果:

    Math: 72

    C Languag: 73

    English: 81

    Total:75

    对于二维数组初始化赋值还有以下说明

    1) 可以只对部分元素赋初值,未赋初值的元素自动取0值。例如:

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

    是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为:

    1  0  0

    2  0  0

    3  0  0

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

    赋值后的元素值为:

    0  1  0

    0  0  2

    3  0  0

    2) 如对全部元素赋初值,则第一维的长度可以不给出。例如:

    int a[3][3]={1,2,3,4,5,6,7,8,9};

    可以写为:

    int a[][3]={1,2,3,4,5,6,7,8,9};

    3) 二维数组可以看作是由一维数组嵌套而成的,把一维数组的每个元素看作一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组,C语言允许这种分解。

    如二维数组a[3][4],可分解为三个一维数组,其数组名分别为:a[0]、a[1]、a[2]。

    对这三个一维数组不需另作说明即可使用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0], a[0][1], a[0][2], a[0][3]。必须强调的是,a[0], a[1], a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量。

    更多相关内容
  • 主要介绍了C语言二维数组中的查找的实例的相关资料,需要的朋友可以参考下
  • c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度。 例如: #include void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr...
  • 描述c语言二维数组如何初始化1 有两种方法(1)在定义时可以直接赋值来初始化(2)在定义后可以为其元素一个个来赋值2 示例1234567891011121314151617181920212223242526272829#include《stdio.h》void display(int arr...

    描述

    c语言二维数组如何初始化

    1 有两种方法

    (1)在定义时可以直接赋值来初始化

    (2)在定义后可以为其元素一个个来赋值

    2 示例

    1234567891011121314151617181920212223242526272829#include《stdio.h》

    void display(int arr[2][3], int row, int col){

    for (int i = 0; i 《 row; i++){

    for (int j = 0; j 《 col; j++){

    printf(“%d ”, arr[i][j]);

    }

    puts(“”);

    }

    puts(“”);

    }

    int main(){

    //方法(1)

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

    //方法(2)

    int arr2[2][3];

    int num = 1;

    for (int i = 0; i 《 2; i++){

    for (int j = 0; j 《 3; j++){

    arr2[i][j] = num++;

    }

    }

    display(arr1, 2, 3);

    display(arr2, 2, 3);

    getchar();

    return 0;

    }

    3 运行结果

    559e5dc5e78bc08067527ee24d072944.png

    由结果可知,两种方式达到的效果是一样的

    4 扩展

    由于C语言中数组中的元素的地址是连续的,所以下面的写法也是可以的,运行效果同上

    12345678910111213141516171819202122232425262728#include《stdio.h》

    void display(int arr[2][3], int row, int col){

    for (int i = 0; i 《 row*col; i++){

    for (int j = 0; j 《 col; j++){

    printf(“%d ”, arr[i][j]);

    }

    puts(“”);

    }

    puts(“”);

    }

    int main(){

    //方法(1)

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

    //方法(2)

    int arr2[2][3];

    int num = 1;

    int *p = *arr2;//指向数组的第一个元素

    for (int i = 0; i 《 2 * 3; i++){

    *p++ = num++;

    }

    display(arr1, 2, 3);

    display(arr2, 2, 3);

    getchar();

    return 0;

    }

    c二维数组初始化为0的2种实现方式

    1 #include 《stdio.h》

    2 #include 《stdlib.h》

    3 #include 《string.h》

    4 int main()

    5 {

    6 //char a[2][4] ;

    7 char a[2][4] = {0} ;

    8 char *b =a[0];

    9 for (int i=0; i《8; i++)

    10 {

    11 printf(“%d ”, *(b+i));

    12 }

    13 printf(“\n------------\n”);

    14 //memset(a,0x0, sizeof(a));

    15

    16 for (int i=0; i《8; i++)

    17 {

    //printf(“%d”, b[i]);

    //printf(“%d”, a[i]); //这个是错的输出结果,原因是这个时候a的类型是二维指针,编译器的解析不是我们想象的那个样子!

    //它输出的是那一行的数据,

    18 printf(“%d ”, *(b+i));

    19 }

    20 }

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • 题目:将一个7*7(只能要求必须行和列相等的矩阵)的二维数组下三角部分以螺旋、依次+1的方式填满并输出(如下图所示) 方法:依旧设置四个变量Left、Right、Up、Down控制循环,不过只有三种模式,故只需要三个...

    题目:将一个7*7(只能要求必须行和列相等的矩阵)的二维数组下三角部分以螺旋、依次+1的方式填满并输出(如下图所示)

    方法:依旧设置四个变量Left、Right、Up、Down控制循环,不过只有三种模式,故只需要三个for循环(红色线条、蓝色线条、绿色线条)即可解决。

    代码如下:(需要注意的已在代码中用注释说明)

    #include<stdio.h>
    void Print_Ar(int br[7][7],int n) {
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < n; j++) {
    			printf("%3d", br[i][j]);
    		}
    		printf("\n");
    	}
    	printf("\n");
    }
    int main() {
    	const int n = 7;
    	int ar[n][n] = { 0 };//该代码只适用于n*n的二维数组下三角填充!!
    	int Left = 0, Right = n - 1, Up = 0, Down = n - 1;
    	int num = 1;
    	while (Left <= Right && Up <= Down) {
    		//需要填充三个不同部分,故需使用三个循环解决
    		for (int i = Up; i <= Down; i++) {
    			ar[i][Left] = num++;
    		}
    		for (int i = Left + 1; i <= Right; i++) {
    			ar[Down][i] = num++;
    		}
    		//切勿写成下列循环!!只有第一次填充是对角线ar[i][i]!!
    		/*for (int i = Down - 1; i > Up; i--) {
    			ar[i][i] = num++;
    		}*/
    		for (int i = Down - 1, j = Right - 1; i > Up&& j > Left; i--, j--) {
    			ar[i][j] = num++;
    		}
    		//不要忘记控制循环变量发生改变
    		Left++, Right -= 2, Up += 2, Down--;//通过观察后续循环发现的规律
    	}
    	Print_Ar(ar, n);
    	return 0;
    }
    

     运行结果如下:

           

    同理,上三角填充也很容易。如下图所示:

      代码如下:

    #include<stdio.h>
    void Print_Ar(int br[7][7], int n) {
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < n; j++) {
    			printf("%3d", br[i][j]);
    		}
    		printf("\n");
    	}
    	printf("\n");
    }
    int main() {
    	const int n = 7;
    	int ar[n][n] = { 0 };
    	int left = 0, right = n - 1, up = 0, down = n - 1;
    	int num = 1;
    	while (left <= right && up <= down) {
    		for (int i = left; i <= right; i++) {
    			ar[up][i] = num++;
    		}
    		for (int i = up + 1; i <= down; i++) {
    			ar[i][right] = num++;
    		}
    		for (int i = down - 1, j = right - 1; i > up && j > left; i--, j--) {
    			ar[i][j] = num++;
    		}
    		up++, down -= 2, left += 2, right--;
    	}
    	Print_Ar(ar, n);
    	return 0;
    }

     运行结果如下:

    展开全文
  • C语言二维数组的使用

    千次阅读 2020-02-23 10:43:55
    二维数组的定义 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。 我们可以将二维...

    二维数组的定义

    二维数组定义的一般形式是:

    dataType arrayName[length1][length2];
    

    其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度

    我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如:

    int a[3][4];
    

    定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即:

    a[0][0], a[0][1], a[0][2], a[0][3]
    a[1][0], a[1][1], a[1][2], a[1][3]
    a[2][0], a[2][1], a[2][2], a[2][3]
    

    如果想表示第 2 行第 1 列的元素,应该写作 a[2][1]

    也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。

    二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存中存放二维数组呢?有两种方式:

    	一种是按行排列, 即放完一行之后再放入第二行;
    	
    	另一种是按列排列, 即放完一列之后再放入第二列。
    

    在C语言中,二维数组是按行排列的。也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 4 个元素也是依次存放。数组 a 为 int 类型,每个元素占用 4 个字节,整个数组共占用 4×(3×4)=48 个字节。

    你可以这样认为,二维数组是由多个长度相同的一维数组构成的。

    示例 一个学习小组有 5 个人,每个人有 3 门课程的考试成绩,求该小组各科的平均分和总平均分。
    在这里插入图片描述
    我们可以定义一个二维数组 a[5][3] 存放 5 个人 3 门课的成绩,定义一个一维数组 v[3] 存放各科平均分,再定义一个变量 average 存放总平均分。最终编程如下:

    #include <stdio.h>
    int main(){
        int i, j;  //二维数组下标
        int sum = 0;  //当前科目的总成绩
        int average;  //总平均分
        int v[3];  //各科平均分
        int a[5][3];  //用来保存每个同学各科成绩的二维数组
        printf("Input score:\n");
        for(i=0; i<3; i++){
            for(j=0; j<5; j++){
                scanf("%d", &a[j][i]);  //输入每个同学的各科成绩
                sum += a[j][i];  //计算当前科目的总成绩
            }
            v[i]=sum/5;  // 当前科目的平均分
            sum=0;
        }
        average = (v[0] + v[1] + v[2]) / 3;
        printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);
        printf("Total: %d\n", average);
        return 0;
    }
    

    运行结果:

    Input score:
    80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙
    Math: 72
    C Languag: 73
    English: 81
    Total: 75
    

    程序使用了一个嵌套循环来读取所有学生所有科目的成绩。在内层循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内层循环(进入外层循环)后再把该累加成绩除以 5 送入 v[i] 中,这就是该门课程的平均分。外层循环共循环三次,分别求出三门课各自的平均成绩并存放在数组 v 中。所有循环结束后,把 v[0]、v[1]、v[2] 相加除以 3 就可以得到总平均分。

    二维数组的初始化(赋值)

    二维数组的初始化可以按行分段赋值,也可按行连续赋值。

    例如,对于数组 a[5][3],按行分段赋值应该写作:

    int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
    

    按行连续赋值应该写作:

    int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};
    

    这两种赋初值的结果是完全相同的。

    示例2和“示例1”类似,依然求各科的平均分和总平均分,不过本例要求在初始化数组的时候直接给出成绩。

    #include <stdio.h>
    int main(){
        int i, j;  //二维数组下标
        int sum = 0;  //当前科目的总成绩
        int average;  //总平均分
        int v[3];  //各科平均分
        int a[5][3] = {{80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85}};
    
        for(i=0; i<3; i++){
            for(j=0; j<5; j++){
                sum += a[j][i];  //计算当前科目的总成绩
            }
            v[i] = sum / 5;  // 当前科目的平均分
            sum = 0;
        }
    
        average = (v[0] + v[1] + v[2]) / 3;
        printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);
        printf("Total: %d\n", average);
    
        return 0;
    }
    

    运行结果:

    Math: 72
    C Languag: 73
    English: 81
    Total: 75
    

    对于二维数组的初始化还要注意以下几点:
    1 . 可以只对部分元素赋值,未赋值的元素自动取“零”值。例如:

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

    是对每一行的第一列元素赋值,未赋值的元素的值为 0。赋值后各元素的值为:

    1  0  0
    2  0  0
    3  0  0
    

    再如:

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

    赋值后各元素的值为:

    0  1  0
    0  0  2
    3  0  0
    

    2 . 如果对全部元素赋值,那么第一维的长度可以不给出。例如:

    int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    

    可以写为:

    int a[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    

    3 . 二维数组可以看作是由一维数组嵌套而成的;如果一个数组的每个元素又是一个数组,那么它就是二维数组。当然,前提是各个元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。

    例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。

    这三个一维数组可以直接拿来使用。这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。

    扫一扫获取更多资讯哟!!!
    在这里插入图片描述

    展开全文
  • C语言二维数组知识点介绍数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍...
  • 在你绞尽脑汁的时候,二维数组(一维数组的大哥)像电视剧里救美的英雄一样显现在你的面前,初识数组的朋友们还等什么呢?让我们认识一下这位武功高强的大哥吧!1. 双下标变量先来认识一下双下标变量,聪明的你一定...
  • C语言二维数组怎么写好有同学在面对二维数组的时候,常常会犯浑。尤其是使用函数传参的时候,有老师讲到一维数组传参后就等价于一级指针,部分同学举一反三自学成才,想当然地认为二维数组传参后就等价于二级指针,...
  • C语言 二维数组定义和使用 - C语言零基础入门教程

    千次阅读 多人点赞 2021-08-22 15:13:10
    目录 一.二维数组简介 二.定义二维数组并初始化 1.定义二维数组 2.初始化二维数组 ...三.访问二维数组 ...而二维数组和一维数组类似,简单理解就是:二维数组由多个一维数组构成,语法如下: type arrayName
  • int n=3; int a[n][n]; for(int i=0;i;i++) for(int j=0;j;j++) scanf("%c",&a[i][j]); for(int i=0;i;i++) for(int j=0;... 这些代码不能正确的对二维数组进行输出跟输出 输入 asd asd asd 输出 asd asd
  • C语言二维数组的定义和引用C语言二维数组的定义和引用7.1.1二维数组的定义前面介绍的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维...
  • C语言二维数组字符串的赋值

    千次阅读 2021-05-19 09:07:13
    今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理。1、在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下:void fun(int a[5][20]); //合法void fun(int a[]...
  • char a[100][100]; int m; scanf("%d",&m); while(m--) gets(a[m]); 为什么一个元素都输入不进去,新手求教
  • c.c语言二维数组运用(评分系统)

    千次阅读 2020-05-27 15:41:50
    没午睡,越想越气,越气越写不出来,越写不出来就动歪点子(写完代码留着一堆bug照不出来,于是就放在那另写代码吧结果映出来,看似完成了,刚好我舍友c语言啥也不懂,真的糊弄的有点不好意思,还要麻烦他帮我日夜刷...
  • 这种常规形式的数组一般使用不过二维,并且数组名很特殊,有跟指针以及地址有密不可分的关系,但是不一样,并且它使用数据的静态存储区。... //二维数组下标int sum = 0; //当前科目的总成绩int av...
  • C语言利用二维数组输入输出字符串

    千次阅读 2021-04-02 09:25:13
    #include<stdio.h> int main(){ char a[15][20]; int i; for(i=0;i<15;i++){ scanf("%s",&a[i][0]); } printf("%s ",&a[2][0]); printf("%s",&a[11][0]); }
  • 杨辉三角是中国古代数学的杰出研究成果之一,它把项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合 [2] 。--------来自百度 杨辉三角的实现 那么具体怎么实现呢?
  • c语言二维数组练习

    2021-11-10 16:05:25
    输入输入数据包含多个测试实例,数据的第一行是一个整数n(0<n<=1000),表示气球个数,然后是n行输入数据,每行是其中一个气球的颜色,气球颜色是一个由小写字母构成的长度不超过15的串, N=0结束输入。 ...
  • col:表示这个数组有多少列void function(int *a[col],int row);void function (int a[][col],int row);void fucntion(int a[row][col],introw);--------第一个参数row其实会被编译器忽略,因此与上一个方法其实是...
  • #include<stdio.h> int main() { int a[3][4]= {18,24,23,84,56,66,45,7,5,9,38,43}; int row=0; int col=0; int max=a[0][0]; int i=0,j=0; for(i=0; i<3; i++) { ... if(a[i][j]&
  • 6.C语言 二维数组

    千次阅读 2021-10-18 08:29:05
    1.什么是二维数组? 就是数组中保存的元素都是一维数组,我们就称之为二维数组 2.二维数组的定义格式 元素类型 数组名称[一维数组的组数][一维数组中存储的元素个数] 一维数组的个数:代表二维数组中可以存储...
  • C语言二维数组转化为一维数组

    万次阅读 2019-11-08 12:13:50
    C语言二维数组转化为一维数组 #include <stdio.h> #include <stdlib.h> #define A 2 //行的长度 #define B 2 //列的长度 int main() { //定义一个二维数组 int array1[A][B]={1,2,3,4}; //定义一个一...
  • =10)存入到二维数组中,并输出。 请在下方粘贴代码和程序运行结果截图 输入及输出结果如图所示: #include <stdio.h> void main() { int a[10][10],i,j,n; while(scanf("%d",&n)!=EOF) { ...
  • #include #include #define M 5 #define N 10 int main() { char a[M][N]; int i,j; int m; scanf("%d",&m); for(i=0;i;i++) gets(a[i]);...为什么循环3次却只能输入2个字符串????
  • 数组 数组(Array)是在内存中连续存储的具有相同类型的一组数据的集合。 数组是一组相同类型元素的集合。*这些元素在内存中依次连续挨着存放。 数组中,若将有限个类型相同的变量的集合命名,那么这个名称为数组名...
  • C语言二维数组

    2021-05-18 13:12:48
    上节讲解的数组可以看作是一行连续的...本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayNa...
  • (注:图中输出a[0]+2是为测试数组的线性存储方式。) 测试代码如下: #include<stdio.h> int main(){ int a[3][2]; int i, j; for(i = 0; i < 3; i++){ for(j = 0; j < 2; j++){ printf(...
  • #include <stdio.h> #include <stdlib.h> int main(){ char str[][30] = {"zhangsan","lisi","wangwu"};... //定义行指针,即二维数组名 是一个数组指针、行指针 //行数 = sizeof(array)/siz...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,004
精华内容 17,601
关键字:

c语言二维数组输入