質問編集履歴

2

n=0に対応できるよう変更

2023/02/22 14:00

投稿

KotatsuNeko
KotatsuNeko

スコア2

test CHANGED
File without changes
test CHANGED
@@ -109,10 +109,9 @@
109
109
  else if(n < 0){
110
110
  target_node->right = addData(target_node->right, add_node);
111
111
  }
112
- else if(n = 0){
112
+ else if(n = 0)
113
113
  printf("同姓同名の人が居ます。\n");
114
114
  return target_node;
115
- }
116
115
  }
117
116
 
118
117
 

1

n=0の場合に対応できるようにしました。挿入したノードの名前を表示するようにしました。

2023/02/22 13:43

投稿

KotatsuNeko
KotatsuNeko

スコア2

test CHANGED
File without changes
test CHANGED
@@ -76,6 +76,70 @@
76
76
  }
77
77
 
78
78
  ```
79
+ ###修正版ソースコード
80
+ ```c言語
81
+
82
+ #include <stdio.h>
83
+ #include <string.h>
84
+ #include <stdlib.h>
85
+ #define NUMBER 10000
86
+
87
+ typedef struct node{
88
+ char name[NUMBER];
89
+ char cellnumb[NUMBER];
90
+ struct node *left;
91
+ struct node *right;
92
+ }Node;
93
+
94
+ Node *addData(Node *target_node, Node *add_node)
95
+ {
96
+ int n;
97
+ n = strcmp(target_node->name, add_node->name);
98
+ if(target_node == NULL){
99
+ Node *target_node = malloc(sizeof(Node));
100
+ strcpy(target_node->name, add_node->name);
101
+ strcpy(target_node->cellnumb, add_node->cellnumb);
102
+ target_node->left = NULL;
103
+ target_node->right = NULL;
104
+ printf("%s", target_node->name);
105
+ }
106
+ else if(n > 0){
107
+ target_node->left = addData(target_node->left, add_node);
108
+ }
109
+ else if(n < 0){
110
+ target_node->right = addData(target_node->right, add_node);
111
+ }
112
+ else if(n = 0){
113
+ printf("同姓同名の人が居ます。\n");
114
+ return target_node;
115
+ }
116
+ }
117
+
118
+
119
+ int main(void)
120
+ {
121
+ int answer;
122
+ Node *root;
123
+ Node *p;
124
+
125
+ root = NULL;
126
+ do{
127
+ int answer;
128
+ printf("ノードを追加しますか?\n[Yes] ==> 1 [No] ==> 0\n"); scanf("%d",&answer);
129
+ if(answer == 1){
130
+ printf("名前を入力してください。\n"); scanf("%s", p->name);
131
+ printf("電話番号を入力してください。\n"); scanf("%s", p->cellnumb);
132
+ p->left = NULL;
133
+ p->right = NULL;
134
+ root = addData(root, p);
135
+ }
136
+ }while(answer == 1);
137
+
138
+ return 0;
139
+ }
140
+
141
+ ```
142
+
79
143
 
80
144
  ### 試したこと
81
145