国产成人AV一区二区三区在线_国产成人精品无码免费看_国产成人无码无卡在线观看_国产精品成人A区在线观看_国产日韩精品欧美一区_国产亚洲精品自在久久蜜TV_久草热久草热线频97精品_久久久噜噜噜久久中文福利_久久婷婷五月综合色国产免费观看_日日狠狠久久偷偷色综合0,九一桃色在线观看,久久97精品久久久久久久不卡,国产成人精品亚洲精品

c語言程序問題,!急急急急?。,。,。,?!

訪客2024-11-25 22:52:461

請(qǐng)大佬幫忙看一下!,!

7-2 愿天下有情人都是失散多年的兄妹(25 分)

呵呵,。大家都知道五服以內(nèi)不得通婚,即兩個(gè)人最近的共同祖先如果在五代以內(nèi)(即本人,、父母,、祖父母、曾祖父母,、高祖父母)則不可通婚,。本題就請(qǐng)你幫助一對(duì)有情人判斷一下,他們究竟是否可以成婚,?輸入格式:輸入第一行給出一個(gè)正整數(shù)N(2 ≤N≤104),,隨后N行,每行按以下格式給出一個(gè)人的信息:本人ID 性別 父親ID 母親ID其中ID是5位數(shù)字,,每人不同,;性別M代表男性、F代表女性,。如果某人的父親或母親已經(jīng)不可考,,則相應(yīng)的ID位置上標(biāo)記為-1。接下來給出一個(gè)正整數(shù)K,,隨后K行,,每行給出一對(duì)有情人的ID,,其間以空格分隔。注意:題目保證兩個(gè)人是同輩,,每人只有一個(gè)性別,,并且血緣關(guān)系網(wǎng)中沒有亂倫或隔輩成婚的情況。輸出格式:對(duì)每一對(duì)有情人,,判斷他們的關(guān)系是否可以通婚:如果兩人是同性,,輸出Never Mind;如果是異性并且關(guān)系出了五服,,輸出Yes,;如果異性關(guān)系未出五服,輸出No,。

#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 10000#define TRUE 1#define FALSE 0typedef struct CSNode{ int id; char sex; int data; struct CSNode *father; struct CSNode *mother;}CSNode,CSTree[SIZE];typedef struct SonTree{ int id1; int id2;}S,Son[SIZE];CSTree* createCSTree(int n){ CSTree cs; int i; for (i = 0; i < n; i++) {scanf_s("%d %c %d %d", &cs[i].id, &cs[i].sex, &cs[i].father->id, &cs[i].mother->id);} return cs;}int FindParent(CSNode s1,CSNode s2){ if (s1.father != s2.father&&s1.mother != s2.mother) {return TRUE; } else {return FALSE; }}int match(CSTree parent, Son son, int n,int k){ int match = TRUE; int i; for (i = 0; i < n; i++) {if (son[i].id1==parent[i].id){ for (int j = i + 1; j < n; j++) {if (son[j].id2 == parent[j].id){ if (parent[i].sex == parent[j].sex) {printf("Never Mind"); } else {if (FindParent(parent[i],parent[j])){ match = TRUE; if (FindParent(parent[i], parent[j])) {match = TRUE;if (FindParent(parent[i], parent[j])){ match = TRUE; if (FindParent(parent[i], parent[j])) {match = TRUE;if (FindParent(parent[i], parent[j])){ match = TRUE; printf("Yes");

}else{ match = FALSE;}

} else {match = FALSE; }

}else{ match = FALSE;}

} else {match = FALSE; }}else{ match = FALSE; printf("No"); break;} }} }} }}int main(){ CSTree *x; int N; scanf_s("%d", &N); x=createCSTree(N); int K; scanf_s("%d", &K); Son son; int i; for (i = 0; i < K; i++) {scanf_s("%d %d", &son[i].id1, &son[i].id2); } match(x, son, N, K); system("pause"); return 0;}

程序有N多問題

一般OJ用的是gcc編譯器,你的scanf_s不一定支持,且你的參數(shù)是錯(cuò)的

scanf_s參數(shù)與標(biāo)準(zhǔn)的scanf不一樣的

還有,你的循環(huán)中定義變量,這個(gè)是C99才支持的

你的return cs;也有兩個(gè)問題,一是類型不對(duì),二是返回了局部變量

最大的問題是

你的

scanf_s("%d %c %d %d", &cs[i].id, &cs[i].sex, &cs[i].father->id, &cs[i].mother->id);}

中,你的

cs[i].father

cs[i].mother

沒有申請(qǐng)內(nèi)存,是野指針

也就是說,你數(shù)據(jù)結(jié)構(gòu)是有問題的

不知道怎么下手改了

給你找了個(gè)網(wǎng)上的參考(c++的)

c語言程序問題,!急急急急!?。,。?!

應(yīng)該是不容易寫的,,這個(gè)題目有點(diǎn)太大了啊。,。,。

文章評(píng)論