-1

次のように3つのノードがあります。

最初のノード (sNodes) の内容: a、b、c、d 2 番目のノード (rNodes) の内容: c、d、e、f 3 番目のノード (ノード) の内容: a、b、c、d

3 番目のノードにない 2 番目のノードからノードを追加したいと考えています。私は初心者なので、Cでそれを行うのに苦労しています。for ループで strcmp メソッドを使用しようとしましたが、その方法で解決できませんでした。どんな助けでも本当に感謝しています。

typedef struct {
char emails[(LENGTH*2)+1];
}Node;
Node nodes[GRAPH_SIZE + 1], sNodes[(GRAPH_SIZE + 1) / 2], rNodes[(GRAPH_SIZE + 1)/2];

void addNode(){
int j =0,k = 0, compare, total;
char item[] = {0};

for(j = 0; j <= GRAPH_SIZE/2; j++){
    total = 0;
    for(k = 0; k <= GRAPH_SIZE/2; k++){
        if(strcmp(rNodes[j].emails, nodes[k].emails) != 0){
            total = 1;
        }else {
            total = 0;
        }

    }
    if(total == 1){
        strcpy(nodes[i].emails, rNodes[j].emails);
    }
}
}
4

1 に答える 1

0

あなたが提供したコードスニペットは完成していないか、バグがあり
(未使用のsNode、アイテム、比較...そしてiがどこにあるのかわかりません)
、あなたがしたいことも私には不明です。

しかし、比較を行い、一致しない場合はコピーを行いたいとします。
次に、不一致ノードが見つかったときに for strcmp ループを中断する必要があります。
これにより、フラグを設定するだけでなく、ターゲット ノードをコピーできます。

于 2013-10-15T03:03:09.723 に答える