| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:为什么一运行就没了,哪里出错了呢???
只看楼主 加入收藏
百万英镑
Rank: 1
等 级:新手上路
帖 子:32
专家分:7
注 册:2011-9-14
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
为什么一运行就没了,哪里出错了呢???
#include<stdio.h>
void main()
{
int a[10][10],i,j;
for(i=0;i<=10;i++)
{
for(j=0;j<=i;j++)
  if(i==j)
  a[i][j]=1;
  else if(i!=j)
  a[i][j]=a[i-1][j-1]+a[i-1][j];
  }
  printf("%d\n",a[i][j]);
  printf("\n");
  }
2011-11-17 14:46
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:5 
for(i=0;i<=10;i++) 这里越界了

没看明白这个是干嘛的
程序代码:
#include<stdio.h>
void main()
{
    int a[10][10]={0},i,j;

    for(i=0;i<10;i++)
    {
        for(j=0;j<=i;j++)
        if(i==j)
            a[i][j]=1;
        else 
            a[i][j]=a[i-1][j-1]+a[i-1][j];
    }

    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        printf("%4d",a[i][j]);
        printf("\n");
    }
}


杨辉三角的话要这样
程序代码:
#include<stdio.h>
void main()
{
    int a[10][10]={0},i,j;

    for(i=0;i<10;i++)
    {
        for(j=0;j<=i;j++)
        if(i==j||j==0)  /*这样才能表示每行第一个数是1*/
            a[i][j]=1;
        else 
            a[i][j]=a[i-1][j-1]+a[i-1][j];
    }

    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        printf("%4d",a[i][j]);
        printf("\n");
    }
}


[ 本帖最后由 luchar 于 2011-11-17 14:56 编辑 ]
2011-11-17 14:54
Frefreak
Rank: 2
等 级:论坛游民
帖 子:25
专家分:28
注 册:2011-7-4
收藏
得分:5 
你是指运行后一闪而过?
2011-11-17 14:56
wuyunxong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:148
注 册:2011-10-26
收藏
得分:5 
在TC里运行的话,要加getch();
不然就一闪而过了!

还有你的数组访问会越界!

[ 本帖最后由 wuyunxong 于 2011-11-17 15:14 编辑 ]
2011-11-17 15:13
wuyijiang07
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:177
注 册:2011-10-21
收藏
得分:5 
2楼正解,程序写的也很好,就是感觉void main()不符合规范,应该用int main(void),标准的C里面是这样定义的
2011-11-17 17:50
快速回复:为什么一运行就没了,哪里出错了呢???
数据加载中...
 
   



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

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