永发信息网

C++ Segmentation fault 一般怎么排错啊。。。

答案:1  悬赏:0  手机版
解决时间 2021-08-11 19:56

一碰到这个问题就不知道怎么排错了。。。

 

// zoj 1298

 

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>

using namespace std;

#define inf (1<<30)
#define MAX (1<<9)

int arc[MAX][MAX]={0};

int main()
{
 int n,m,counter=1;
 while(cin>>n>>m && !(n==0 && m==0) ){
  fill(arc[1],arc[1]+n*n,inf);
  int tag[MAX]={1,1},dist[MAX]={0,0};
  int i,k,t=n-1;
  while(m--){
   int a,b,l;
   cin>>a>>b>>l;
   arc[a][b]=arc[b][a]=l;
  }
  for( i=2; i<=n; ++i) dist[i]=arc[1][i];
  while(t--){
   int MIN=inf;
   for(i=2; i<=n; ++i)
    if( !tag[i]&& tag[i]<MIN){
     k=i; MIN=tag[i];
    }
    tag[k]=1;
   for(i=2; i<=n; ++i)
    if( !tag[i] ) dist[i]=min(dist[i],dist[k]+arc[k][i]);
  }
  int MAXNUM=0;
  for(i=2; i<=n; ++i)
   MAXNUM=max(MAXNUM,dist[i]);
  vector <int > res;
  for(i=2; i<=n; ++i)
   if(dist[i]==MAXNUM) res.push_back(i);
  //for(i=0; i<res.size(); ++i ) cout<<res[i]<<' '; cout<<endl;
  if(res.size()==1) printf("System #%d\nThe last domino falls after %.1f seconds, at key domino %d.\n\n",counter,(float)dist[ res[0] ],res[0]);
  else{
   MAXNUM=0;
   int a,b;
   for(i=0; i<res.size(); ++i)
    for(k=0; k<res.size(); ++k)
     if(arc[ res[i] ][ res[k] ]!=inf && arc[ res[i] ][ res[k] ]!=0){
      MAXNUM=max(arc[ res[i] ][ res[k] ],MAXNUM);
      //cout<<MAXNUM<<' '<<arc[ res[i] ][ res[k] ]<<endl;
      a=res[i];b=res[k];
     }
   if(a>b) swap(a,b);
   //cout<<a<<' '<<b<<endl;
   //cout<<arc[ a ][ b ]<<endl;
   //cout<<MAXNUM<<endl;
   printf("System #%d\nThe last domino falls after %.1f seconds, between key dominoes %d and %d.\n\n",counter,dist[ res[0] ]+MAXNUM/2.0,a,b);
  }
  counter++;
 }
 return 0;
}

 

最佳答案
Segmentation Fault 段错误。

int f(int a,int b,int& n) 的定义 参数3 n 是个引用。

return (a*f(a,b,n-1)+b*f(a,b,n-2))%7;} 这里调用f的时候参数3是int的临时变量,无法转换成引用。

只要修改定义 int f(int a,int b,int n) 就行。引用在这里似乎没必要

---------------------------------

你输入的3个数是什么?是不是递归栈溢出了?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样提高英语写作?
我喜欢的她现在在大安,但是又来了一个小屁孩
发两个搭配网站 有图片的 谢谢
DNF用装备调整器,调下级加13的武器强化会降
谁能告诉我麦迪什么时候能戴上总冠军戒指?
郑州火车票查询
涧西区菜鸟驿站(洛阳新塘村十一排80号店)我想
关于QQ牧场的一些问题!!!
熊猫卫士怎么卸载?
奇幻宝贝怎么注册?
苏教牛津版)四年级英语上册课件哪里能找到?
传奇SF为什么我家显示关服,朋友家可以玩?
QQ农场不显示怎么办?
媳妇的美好时代的姐妹篇是什么
求口袋妖怪所有道馆馆主资料和所有四天王资料
推荐资讯
中华英雄我47级
常州买二手车
你去扬州了么
精利套装门定州总店地址在哪,我要去那里办事
求刘心 凭什么说的MP3
敦煌离舟曲多远
为什么我一味的付出、得到的只有你的冷漠、
有什么好听的舞曲!!! 越多越好 最好是英文
为什么网页中的FLASH打不开?刚下载了flash插
8.15是不是真的送A车
飞车的暴风挑战,英雄模式和平民模式;该怎么
梦见同事陪我买雨伞
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?