当前位置: 代码迷 >> C语言 >> [求助]关于函数调用和二维数组应用
  详细解决方案

[求助]关于函数调用和二维数组应用

热度:71   发布时间:2007-03-17 16:19:20.0
[求助]关于函数调用和二维数组应用

输入一个任意正整数(比如3)程序运行结果如下:33333
32223
32123
32223
33333
我程序源代码如下:
#include <stdio.h>
#include <conio.h>
int f(int N )//定义函数
{
int i,J,j,k,w,q;
int r=0;
int a[2*N-1][2*N-1];
for (k=0;k<(2*N-1);k++)
{
a[0][k]=N;
a[2*N-2][k]=N;
a[k][2*N-2]=N;
a[k][0]=N;
}
N--;
if(N>1)
f(N); //函数的递阶调用
if(N==1)
for(i=0;i<(2*J-1);i++)
{
for(j=0;j<(2*J-i);j++)
{
printf("%d",a[i][j]);
r++;
if (r%(2*J-1)==0)
printf("\n");//输出结果
}
}
}

int main ()
{
int H;
printf("请输入一个数\n");
scanf("%d",H);
f(H);//调用函数
getch();
return 0;
}

搜索更多相关的解决方案: 函数  应用  

----------------解决方案--------------------------------------------------------

不能定义动态数组


----------------解决方案--------------------------------------------------------
这个问题,我以前真没有见到过。能不能为它申请 一个动态内存?
----------------解决方案--------------------------------------------------------
不能,必须将其设为尽可能大
----------------解决方案--------------------------------------------------------
PcrazyC你说的是a[2*N-1][2*N-1]改成无限大吗?我试了不行,
可能是我没理解,能劳烦说明白一点,谢谢了。
----------------解决方案--------------------------------------------------------
申请一个动态内存?这个是什么意思?
----------------解决方案--------------------------------------------------------

PcrazyC你说的是a[2*N-1][2*N-1]改成无限大吗?

不是说改得很大,只要你需要就可以了,但里面的数不能带有变量,这里的N就是一个变量,数组的维数都改成常数


----------------解决方案--------------------------------------------------------
还有一个地方有问题

scanf("%d",&H);
----------------解决方案--------------------------------------------------------
for(i=0;i<(2*J-1);i++)
这里怎么又冒出一个J出来,都不知道是多少?
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <conio.h>
void f(int N )//定义函数
{
int i,J,j,k,w,q;
int r=0;
int a[100][100];
for (k=0;k<(2*N-1);k++)
{
a[0][k]=N;
a[2*N-2][k]=N;
a[k][2*N-2]=N;
a[k][0]=N;
}
N--;
if(N>1)
f(N); //函数的递阶调用
if(N==1)
for(i=0;i<(2*N-1);i++)
{
for(j=0;j<(2*N-i);j++)
{
printf("%d",a[i][j]);
r++;
if (r%(2*N-1)==0)
printf("\n");//输出结果
}
}
}

int main ()
{
int H;
printf("请输入一个数\n");
scanf("%d",&H);
f(H);//调用函数
getch();
return 0;
}


随便给改了几处,只能保证没有语法错误


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