| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1157 人关注过本帖
标题:[求助]关于函数调用和二维数组应用
只看楼主 加入收藏
yrj007
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-3-17
收藏
 问题点数:0 回复次数:10 
[求助]关于函数调用和二维数组应用

输入一个任意正整数(比如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;
}

搜索更多相关主题的帖子: 函数 应用 
2007-03-17 16:19
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

不能定义动态数组


雁无留踪之意,水无取影之心
2007-03-17 16:34
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
这个问题,我以前真没有见到过。能不能为它申请 一个动态内存?

~~我的明天我知道~~
2007-03-17 16:39
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
不能,必须将其设为尽可能大

雁无留踪之意,水无取影之心
2007-03-17 16:56
yrj007
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-3-17
收藏
得分:0 
PcrazyC你说的是a[2*N-1][2*N-1]改成无限大吗?我试了不行,
可能是我没理解,能劳烦说明白一点,谢谢了。

2007-03-17 17:23
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
申请一个动态内存?这个是什么意思?

该学习了。。。
2007-03-17 17:28
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

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

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


雁无留踪之意,水无取影之心
2007-03-17 17:36
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
还有一个地方有问题

scanf("%d",&H);

雁无留踪之意,水无取影之心
2007-03-17 17:38
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
for(i=0;i<(2*J-1);i++)
这里怎么又冒出一个J出来,都不知道是多少?

雁无留踪之意,水无取影之心
2007-03-17 17:41
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

#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;
}


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


雁无留踪之意,水无取影之心
2007-03-17 17:44
快速回复:[求助]关于函数调用和二维数组应用
数据加载中...
 
   



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

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