注册 登录
编程论坛 数据结构与算法

关于队列,杨辉三角

未来大仙 发布于 2016-03-21 11:13, 5630 次点击
程序代码:
typedef struct _D{
    int length; //队列长度
    int s;
    int t;
    int dui[max];  //数组做队列
    int sum;  // s+t
    int r;// t所在位置
}list;
void yang(int n,list p){               // 队列运算
    for(int i=4;i<n+4;++i){
        for(int j=0;j<
        i;++j){
            p.sum=p.t+p.s;     //计算  s+t
            p.length++;      //队列长度+1
            p.dui[p.length]=p.sum;   //s+t放在队尾
            p.s=p.t;
            p.t=p.dui[++p.r];
        }
        p.dui[++p.length]=0;
    }
}
    主要是这两个,不知道为什么出现的结果不是我所希望的,我检查很多次,不知道哪里出现错误,出现的结果是一堆系统数字,感觉存储在数组的数据被系统取代了。。帮帮忙
7 回复
#2
未来大仙2016-03-23 19:25
回复 楼主 未来大仙
没人愿意说嘛? 这代码不多啊,看起来不是很费事我就是怕代码太多 才放了这两个关键的上去...
#3
林月儿2016-03-23 19:29
p.dui[++p.length]=0;
#4
未来大仙2016-03-23 20:24
回复 3楼 林月儿
把杨辉三角的每行数的 头和尾 都看作有个 0
#5
林月儿2016-03-23 20:35
数组下标越界怎么办
#6
未来大仙2016-03-23 20:40
回复 5楼 林月儿
我用的maxsize 是 100个  暂时不担心越界
#7
书生牛犊2016-04-04 21:45
这个问题建议你拿到C语言板块去问,那里更能就代码本身和你进行交流。
同时,由于你给出的代码只有一个小片段,别人是看不出哪里有问题的,
另外,个人建议你在程序中插入几个printf语句,,在计算过程中就查看一下结果,看看程序是在什么时候出现了不和谐的偏差。不是非要照着题目要求的,从头走到尾,直接输出结果,调试调试,调整试试。
比如上面这个片段,你不妨就可以在每一次执行完一个for循环就输出那个数据,看看是不是正确的,(比如每一行的长度,dengdneng)
#8
未来大仙2016-04-04 22:31
回复 7楼 书生牛犊
试过了,printf输出的全是不知道哪里的数字,出问题的就在我给的那个函数里,反正我看不明白为什么会这样。。
1