| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:运行出现问题
只看楼主 加入收藏
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
运行出现问题
#include<stdio.h>
#define N 1000
#define M 1000
int fun(int i,int j)
{
    if(j==0||i==j)
        return 1;
    else
        return fun(i-1,j-1)+fun(i-1,j);
}
void main()
{
    int i,j,n;
    int a[N][M]={0,0,0,0,0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<=i;j++)
            a[i][j]=fun(i,j);
    for(i=0;i<n;i++)
    {
        for(j=0;j<i;j++)
            printf("%d ",a[i][j]);
        printf("%d\n",a[i][j]);
    }
}  编译和连接都通过。为什么运行的时候会自动关闭,求解答
搜索更多相关主题的帖子: void fun include return 
2013-01-17 23:49
落雨and无声
Rank: 2
等 级:论坛游民
帖 子:48
专家分:30
注 册:2012-10-5
收藏
得分:18 
回复 楼主 abc00000
栈溢出了。。。1000*1000的数组实在是太大了。把a定义成全局变量就好了,或者用动态内存管理实现。
2013-01-17 23:56
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
收藏
得分:0 
栈一般是多大,将1000*1000改成多少才不会溢出??
2013-01-18 00:03
落雨and无声
Rank: 2
等 级:论坛游民
帖 子:48
专家分:30
注 册:2012-10-5
收藏
得分:0 
回复 3楼 abc00000
一般是1M左右,我也犯过这毛病,定义一个int a[10000]的数组就已经不行了,具体多大我也没试过。。。
2013-01-18 00:06
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
收藏
得分:0 
将a定义成全局变量,这个怎样定义??
2013-01-18 00:11
落雨and无声
Rank: 2
等 级:论坛游民
帖 子:48
专家分:30
注 册:2012-10-5
收藏
得分:0 
回复 5楼 abc00000
写在头文件main函数以外就可以了,比如在main函数的上一行加上a[m][n]={0,0,0}然后把你main函数里的删掉
2013-01-18 00:17
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
收藏
得分:0 
回复 6楼 落雨and无声
#include<stdio.h>
#define N 30
#define M 30
int fun(int i,int j)
{
    if(j==0||i==j)
        return 1;
    else
        return fun(i-1,j-1)+fun(i-1,j);
}
int a[N][M]={0,0,0};
void main()
{
    int i,j,n;
    while(scanf("%d",&n)!=EOF,n>=1&&n<=30)
    {
        for(i=0;i<n;i++)
            for(j=0;j<=i;j++)
                a[i][j]=fun(i,j);
            for(i=0;i<n;i++)
            {
                for(j=0;j<i;j++)
                    printf("%d ",a[i][j]);
                printf("%d\n",a[i][j]);
            }
            printf("\n");
    }
} 这个程序在输入23以上的时候,运行时间就会比较长了,请问该如何改,才会缩短其时间
2013-01-18 00:30
XQwindow
Rank: 2
等 级:论坛游民
帖 子:121
专家分:64
注 册:2013-1-1
收藏
得分:2 
慢的时候应该在循环吧,数多了,循环慢了??

我不知道我能否当程序员,但我依然热爱编程!
2013-01-18 10:03
abc00000
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-10-16
收藏
得分:0 
回复 8楼 XQwindow
那应该怎样改
2013-01-18 14:33
落雨and无声
Rank: 2
等 级:论坛游民
帖 子:48
专家分:30
注 册:2012-10-5
收藏
得分:0 
回复 7楼 abc00000
时间肯定会变长,因为你的fun函数时个递归函数,数据量增加1,递归的次数可不止增加了1。除非你的fun用非递归来写。
2013-01-18 18:29
快速回复:运行出现问题
数据加载中...
 
   



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

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