标题:二维数组的问题---为什么这样写不行?
只看楼主
宁缺T
Rank: 1
等 级:新手上路
帖 子:21
专家分:8
注 册:2019-9-12
结帖率:87.5%
已结贴  问题点数:20 回复次数:2 
二维数组的问题---为什么这样写不行?
运行结果如图所示:

有关代码
程序代码:
#include<stdio.h>
int main(){
   int row,i,j;
   int a[][4]={0};
   scanf("%d",&row);
   for(i=0;i<row;i++)
     for(j=0;j<4;j++)
       scanf("%d",&a[i][j]);

   for(i=0;i<row;i++)
   {
       for(j=0;j<4;j++)
       {
           printf("%d",a[i][j]);
       }
       printf("\n");
        
     return 0;
   }


搜索更多相关主题的帖子: i++ 二维数组 int row for 
2019-11-29 16:18
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:10 
ANSI C意义下的数组是固定大小的,尺寸上没有弹性。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-11-29 16:30
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
   int row,i,j;
   int **a;
   scanf("%d",&row);

    a=(int**)calloc(row,sizeof(int*));                      //分配动态内存
    for(i=0;i<row;i++)
        a[i]=(int*)calloc(4,sizeof(int));

   for(i=0;i<row;i++)
     for(j=0;j<4;j++)
       scanf("%d",&a[i][j]);

   for(i=0;i<row;i++)
   {
       for(j=0;j<4;j++)
       {
           printf("%3d",a[i][j]);
       }
       printf("\n");
   }

    free(a);                    //释放分配的动态内存
    for(i=0;i<row;i++)
        free(a[i]);

   return 0;
}

可以使用动态内存分配的方法

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-29 18:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498144-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.514984 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved