| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 380 人关注过本帖
标题:帮忙看看这个简单的程序错在哪里
只看楼主 加入收藏
no47wk
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-11-25
收藏
 问题点数:0 回复次数:3 
帮忙看看这个简单的程序错在哪里
#include<iostream>
using namespace std;
void *CR(int *a,int *b)
{   
     *b=*a;
     *(b+1)=*a+*(a+1);
     *(b+2)=*(a+1);
     for(*b=*a,*(b+1)=*a+*(a+1),*(b+2)=*(a+1);*(a+2)!=2;++a,++b)//这里的++b如果去除了那么程序就能完成,但是无法达成目的;
        *(b+3)=*(a+2);
        *(b+3)='\0';
}
int main()
{
   int m,a[9][258]={{1,1},{1,2,1},{1,3,2,3,1},{1,4,3,2,3,4,1}},i;
   for(i=3;i<=7;++i)
       CR(&a[i][0],&a[i+1][0]);
   while(cin>>m)
   {
      if(m==1)
          cout<<"11"<<endl;
      else if(m==2)
          cout<<"121"<<endl;
      else
      {
           for(i=0;a[m-1][i]!=0;++i)
               cout<<" "<<a[m-1][i];
           for(i=i-2;a[m-1][i]!=1;--i)
               cout<<" "<<a[m-1][i];
               cout<<" "<<"1"<<endl;
      }
   }
   system("pause");
   return 0;
}

我的环境是DEV-C++4.9.9.2,此程序运行老是直接报错退出····高手指教一下,小弟不胜感激
搜索更多相关主题的帖子: include 
2010-12-02 18:49
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
下标越界
判断有问题 *(a+2)!=2

int m,a[9][258]={{1,1},{1,2,1},{1,3,2,3,1},{1,4,3,2,3,4,1}},i;

应该是第一次自行玩CR了后 下个数组中 没有2

[ 本帖最后由 ml232528 于 2010-12-2 22:15 编辑 ]

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2010-12-02 22:06
no47wk
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-11-25
收藏
得分:0 
回复 2楼 ml232528
貌似不是这个问题,如果是下表越界,为什么把++b去除了就没事了呢??
2010-12-03 10:01
wenxinwukui
Rank: 1
等 级:新手上路
帖 子:22
专家分:6
注 册:2010-11-15
收藏
得分:0 
同意2楼,第一次CR后a[4]为{1,5,4,3,0...}里面没有2.
至于为什么去掉++b就没事了,说实话你这个程序在我的codeblocks根本不报错,但是没有输出,呵呵。
2010-12-03 11:14
快速回复:帮忙看看这个简单的程序错在哪里
数据加载中...
 
   



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

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