0
これは私の教授が提供するサンプルプログラムです。その機能は、ツリーのリンクされたリストを検索し、天気の結果を返すかどうか、それはユーザーが入力したツリーを見つけられません。しかし、私が何を入力しても、常にfalseを返します。どうしたの?リンクリストと構造体を含むサンプルプログラムは動作しません
#include <stdio.h>
#include <string.h>
#define NL 20
typedef struct tree
{
char tree_name [NL];
struct tree* next;
}tree;
int
checktree (tree *p, char name[])
{
int found = 0;
while (p != NULL)
{
if (strcmp(p -> tree_name, name) == 0)
found = 1;
p = p -> next;
}
return (found);
}
int
main (void)
{
/* declaring variables to hold tree nodes */
tree tree1, tree2, tree3, tree4;
/* declaring the starting and traveling pointers */
tree *p, *start;
char treename[NL];
/* putting tree names into each node */
strcpy (tree1.tree_name, "Maple");
strcpy (tree2.tree_name, "Fir");
strcpy (tree3.tree_name, "Pine");
strcpy (tree4.tree_name, "Oak");
/* setting the start of the list at tree1 */
start = &tree1;
/* linking the other trees together */
tree1.next = &tree2;
tree2.next = &tree3;
tree3.next = &tree4;
/* sets tree4 as the last node of the list */
tree4.next = NULL;
/* checking if a tree is in the list */
printf ("Enter tree name to search: ");
fgets (treename,sizeof(treename),stdin);
if (checktree(start, treename))
printf ("%s was found in our list of trees.\n", treename);
else
printf ("%s was not found in our list of trees.\n", treename);
return (0);
}
これはデバッグサービスではありません。 [ask]を読んでください。 – Olaf
これはデバッグのためのもう1つの優れたリソースです:http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –