当前位置: 代码迷 >> C语言 >> 请教!动态二维数组
  详细解决方案

请教!动态二维数组

热度:188   发布时间:2008-04-19 16:05:04.0
能否解释一下
while(getchar() != '\n');
这句代码有什么作用?想不明白!!
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]cosdos[/un] 在 2008-4-19 14:02 的发言:[/bo]

/************************
     19-04-08 14:00
        DEV-C++
************************/

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a;    // [a][b]
    int b;    // [a][b]
   
    printf("请输入二维int数组的维数a和b: ");
    scanf("%d %d", &a, &b);
    while(getchar() != '\n');

    int (* p)[b];     // 指向一个不定长的数组的(int)数组
    p = malloc(sizeof(int) * a * b);
   
    int i, j;
    for(i = 0; i < a; i++)
        for(j = 0; j < b; j++)
            scanf("%d", &p[i][j]);

    for(i = 0; i < a; i++)
    {
        for(j = 0; j < b; j++)
            printf("%d ", p[i][j]);
        putchar('\n');
    }

    system("Pause");
    return 0;
}


你既然用GCC/mingw编译器,那你这个动态分配已经不需要了
本来编译器就支持变长数组,在这个编译器上属于多此一举


----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]雨中秣燕[/un] 在 2008-4-19 16:13 的发言:[/bo]

你既然用GCC/mingw编译器,那你这个动态分配已经不需要了
本来编译器就支持变长数组,在这个编译器上属于多此一举

http://blog.programfan.com/upfile/200804/2008040611237.gif ...


是不是可以这样理解
在GCC/mingw编译器上,如果一个数组的维数不确定,可以先申请一个变量,用该变量的输入值来确定数组长度
一维:
int a;
scanf("%d",&a);
int array[a];
二维:
int a,b;
scanf("%d%d",&a,&b);
int array[a][b];

不太明白,是不是可以这样理解?

[[it] 本帖最后由 酷猫 于 2008-4-19 16:48 编辑 [/it]]
----------------解决方案--------------------------------------------------------
回复 21# 的帖子
当输入为回车键时停止while循环。
----------------解决方案--------------------------------------------------------
TO 24#
已经查到了!
谢谢!!
----------------解决方案--------------------------------------------------------
请问各位说的可是动态!似乎是半动态而已!
LZ要的是链表组成的二维数组吧。
----------------解决方案--------------------------------------------------------
22#
燕子啊,你不一直强调跨平台的么……
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]StarWing83[/un] 在 2008-4-19 23:15 的发言:[/bo]

22#
燕子啊,你不一直强调跨平台的么……

你先看清楚那个人的代码啊


----------------解决方案--------------------------------------------------------
不就写了个DEV-C++么,呵呵~~~~~
恩……有道理,说实话用了那么长时间GCC,开始觉得VC的不爽了……
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]StarWing83[/un] 在 2008-4-20 22:05 的发言:[/bo]

不就写了个DEV-C++么,呵呵~~~~~
恩……有道理,说实话用了那么长时间GCC,开始觉得VC的不爽了……

天哪。。。。。。。麻烦你用其它的编译器编译试试看
你不要又在误解我的意思!!!!!


----------------解决方案--------------------------------------------------------
  相关解决方案