标题:二维数组作参数的问题
只看楼主
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
结帖率:90.63%
已结贴  问题点数:20 回复次数:5 
二维数组作参数的问题
#include <stdio.h>
#include <stdlib.h>
#define N 10

void Input(int array[][N], int n);
void Output(int array[][N], int n);
int main(void)
{
    int n;
    int array[N][N];
    printf("Please input n:");
    scanf("%d", &n);
    Input(array, n);
    Output(array, n);
    system("pause");
    return 0;
}

void Input(int array[][9], int n)//问题:这里二维数组的列为什么要用N, 如果不用N或10会出现乱码
{
    int i, j;
    printf("Please input %d number:", n*n);
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d", &array[i][j]);
        }
    }
}

void Output(int array[][N], int n)
{
    int i, j;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            printf("%d\t", array[i][j]);
        }
        printf("\n");
    }
}

[ 本帖最后由 chen1204019 于 2013-2-7 09:08 编辑 ]
搜索更多相关主题的帖子: number system include void 
2013-02-07 09:06
空沃夫
Rank: 2
来 自:老和山职业技术学院
等 级:论坛游民
帖 子:48
专家分:76
注 册:2012-12-7
得分:5 
二维数组当然是要用定义每行的元素个数,不然机器怎么知道每一行输入多少元素后再换行?
2013-02-07 12:29
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
得分:5 
树上规定:行数不是必须指明,但列数必须指明。
具体为啥也不知道

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-02-07 15:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
以下是引用a151141在2013-2-7 15:31:59的发言:

树上规定:行数不是必须指明,但列数必须指明。
具体为啥也不知道
2楼已经说“为啥”了呀!
假设已知 int p[][5],那么 p[2][3]的地址就是 p的地址再往后挪2*5+3个int的位置
但如果你不知道行长为5,则怎么办?

2013-02-07 16:07
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
得分:0 
回复 4楼 rjsp
我也好奇为什么列数一定要为N,到底为什么?

新手发言,请多指教!
2013-02-08 06:39
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:5 
列数必须说明,这是王八的屁股——规定!
2013-02-09 20:56



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




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

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