#17751: Segmentation fault (core dumped)


rexwu1104@gmail.com (黑雪公主 Black Lotus)

學校 : 新北市私立南山高級中學
編號 : 93041
來源 : [118.166.54.130]
最後登入時間 :
2022-06-06 20:48:09
b298. 老闆阿我要退貨 -- 103學年度板橋高中校內資訊學科能力競賽(一) | From: [118.166.57.97] | 發表日期 : 2019-05-15 21:04

#include<iostream>
using namespace std;
int main()
{
  long int a, b, c, d;
  while (cin >> a >> b >> c >> d) {
    int f[2][b+1], h[2][b+1], e=0, i[a+1], m=0, n=0, num, bb=a;
    while (1) {
      i[a]=0;
      a--;
      if (a==0) {
        i[a]=0;
        break;
      }
    }
    while (b--) {
      cin >> f[0][m] >> h[0][m];
      m++;
    }
    f[0][m+1] = 0; h[0][m+1] = 0;
    m=0;
    while (c--) {
      cin >> f[1][m];
      while (1) {
        if (f[1][m]==f[0][n]&&i[f[0][n]]!=1) {
          i[f[0][n]] = 1; i[h[0][n]] = 1;
          num=n;
          while (1) {
            if (h[0][n]==f[0][e]&&i[f[0][e]]!=1) {
              i[f[0][e]] = 1; i[h[0][e]] = 1;
              n=e; e=0;
            }
            else if (h[0][n]==f[0][e]) {
              i[h[0][e]] = 1;
              e++;
            }
            else if (f[0][e]) {
              e++;
            }
            else {
              e=0; n=num; n++; break;
            }
          }
        }
        else if (f[1][m]==f[0][n]) {
          i[h[0][n]] = 1;
          n++;
        }
        else if (f[0][n]) {
          n++;
        }
        else {
          n=0; break;
        }
      }
      m++;
    }
    while (1) {
      a++;
      if (a==bb) {
        while (a--) {
          i[a] =i[a-1];
        }
        break;
      }
    }
    m=0;
    while (d--) {
      cin >> h[1][m];
      if (i[h[1][m]]==1) {
        cout << "TUIHUOOOOOO" << endl;
      }
      else {
        cout << "YA~~" << endl;
      }
    }
  }
}
請問哪裡導致 Segmentation fault (core dumped)
 
#17766: Re:Segmentation fault (core dumped)


rexwu1104@gmail.com (黑雪公主 Black Lotus)

學校 : 新北市私立南山高級中學
編號 : 93041
來源 : [118.166.54.130]
最後登入時間 :
2022-06-06 20:48:09
b298. 老闆阿我要退貨 -- 103學年度板橋高中校內資訊學科能力競賽(一) | From: [111.240.84.42] | 發表日期 : 2019-05-19 18:44

#include<iostream>
using namespace std;
int main()
{
  long int a, b, c, d;
  while (cin >> a >> b >> c >> d) {
    long int m, n, f[b+2], h[b+2], i[a+2], ans, num1;
    for (m=0;m<b;m++) {
      cin >> f[m] >> h[m];
    }
    while (c--) {
      cin >> num1; i[num1]=1;
      while (1) {
        for (m=0;m<b;m++) {
          if (num1==f[m]) i[h[m]]=1;
          for (n=0;n<b;n++) {
            if (h[m]==f[n]&&i[h[m]]==1) i[h[n]]=1;
          }
        }
        break;
      }
    }
    while (d--) {
      cin >> ans;
      i[ans] ? cout << "TUIHUOOOOOO" << endl : cout << "YA~~" << endl;
    }
  }
}
我有縮小了。
 
 
ZeroJudge Forum