在輸入以下資料之后
5
Xman
Superman
Spiderman
Batman
Ironman
7
MakeFriend Xman Superman
MakeFriend Batman Superman
ListFriend Batman
ListFriend Ironman
MakeFriend Spiderman Superman
ListFriend Ironman
ListFriend Superman
本来應該輸出
Superman
Xman Batman Spiderman
但不知道為什麽出現了segmentation fault
以下是程式碼拜託了
#include
#include <string.h>
using namespace std;
struct person{
int index;
char name[21],names[21];
int list_of_friends[500];
int num_of_friend;
};
int main() {
string a,b,s;
int m,n,ans_number = 0;
cin >>m;
int i,j;
struct person persons [m];
for( i=0;i<m;i++){
cin>> persons[i].name;
}
cin >>n;
struct person A[n],B[n],C[n];
int count1=0,count2=0;
for( i=0;i<n;i++){
cin>> s;
if(s=="MakeFriend"){
cin>>A[count1].names>>B[count1].names;
count1++;
}
if(s=="ListFriend"){
cin>>C[count2].names;
count2++;}
}
for(j=0;j<count2;j++){
ans_number=0;
for(i=0;i<count1;i++){
if(strcmp(B[j].names,A[i].names)!=0 ){
if(strcmp(C[j].names,A[i].names)==0 )
{
cout<<B[i].names<<" ";
ans_number++;
}
else if (strcmp(C[j].names,B[i].names)==0){
cout<<A[i].names<<" ";
ans_number++;
}}
}
cout<<endl;
}
return 0;
}
只改第一列,改成#include <iostream>
程式執行正常,如下圖
至於 segmentation fault
我試出一種可能的原因
就是「stdin 沒有提供資料」時