首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请有空的进来帮小弟我指点一下,变长数组,

2012-02-23 
请有空的进来帮我指点一下,变长数组,,,#include stdio.h#include stdlib.hvoidshow(intm,intn,intarr[

请有空的进来帮我指点一下,变长数组,,,
#include <stdio.h>
#include <stdlib.h>

void   show(int   m,int   n,int   arr[][m],int   copy2[][m]);     //变长数组声明
void   copy(int   m,int   n,int   arr[][m],int   copy2[][m]);     //变长数组声明
/****************主程序入口*****************/
int   main(void)                                              
{
        int   n,m,i,j;                                         //声明变长数组下标  
        int   array[n][m],copy1[n][m];         //两个二维数组  
       
        printf( "please   input   the   tow   number:   ");
        while(scanf( "%d%d ",&n,&m)!=2)
        {
                exit(1);                                     //输入出错,终止程序退出
        }
        for(i=0;i <n;i++)
        {
                for(j=0;j <m;j++)
                {
                        array[i][j]=j;               //为变长数组赋值  
                }
        }
        copy(m,n,array,copy1);               //复制变长二维数组  
        show(m,n,array,copy1);               //显示两个数组内容  
        sytem( "pause ");
        return   0;
}  
/**************变长数组复制**********************/  
void   copy(int   m,int   n,int   arr[][m],int   copy2[][m])
{
        int   i,j;
       
        for(i=0;i <n,i++)
        {
                for(j=0;j <m;j++)
                {
                        copy1[i][j]=array[i][j];
                }
        }
}
/*************显示两个变长数组的内容*************/  
void   show(int   m,int   n,int   arr[][m],int   copy2[][m])
{
        int   i,j;
       
        for(i=0;i <n;i++)
        {
                for(j=0;j <m;j++)
                {
                        printf( "%-4d ",array[i][j]);
                }
        }
        putchar( '\n ');


        for(i=0;i <n;i++)
        {
                for(j=0;j <m;j++)
                {
                        printf( "%-4d ",copy1[i][j]);
                }
        }
}

我想问一下上面那两个函数的声明的参数部份,有问题吗,
我查了一下书本,书上的变长数组也是这么写着的,我用的是DEV-C++
是不是编译器不支持这种标准,,,请分析一下,谢谢              
         


[解决办法]
数组声明的时候必须指定其固定长度,而不是一个变量值。
[解决办法]
我想问一下上面那两个函数的声明的参数部份,有问题吗,
我查了一下书本,书上的变长数组也是这么写着的,我用的是DEV-C++
是不是编译器不支持这种标准,,,请分析一下,谢谢
==============================================
哪本书这么写的?难道变长数组就可以用变量确定长度吗?
[解决办法]
数组声明的时候必须指定其固定长度,而不是一个变量值
----------
c99标准支持变长数组
[解决办法]
void show(int m,int n,int arr[][m],int copy2[][m]); //变长数组声明
void copy(int m,int n,int arr[][m],int copy2[][m]); //变长数组声明

哪有这样声明函数的,第三个参数用到第一个参数
[解决办法]
#include <iostream>
using namespace std;

int main()
{
int m;
cin> > m;
int a[m];//变长数组
cin.get();
return 0;
}

热点排行