前提・実現したいこと
struct node *node_read_multiple()にて求めた素数を線形リストに保存するということをしたいです。ご指摘お願いします。
また
発生している問題・エラーメッセージ
以下のプログラムにて実行すると「値を入力してください」と表示され値を入力しエンターを押すとまた「値を入力下ください」となってしまいます。
該当のソースコード
C
1#define _CRT_SECURE_NO_WARNINGS 2 3#include<stdio.h> 4#include<stdlib.h> 5 6struct node{ 7 struct node *next; 8 int val; 9}; 10 11struct node *node_read_multiple() 12{ 13 int i,k; 14 int a; 15 int n ; 16 17 printf("値を入力してください"); 18 scanf("%d",&n); 19 20 struct node *p=malloc(sizeof *p); 21 22 for (i = 2; i < n; i++){ 23 a = 0; 24 for (k = 2; k < i; k++){ 25 if (i % k == 0) a = a + 1; 26 } 27 28 if (a == 0) { 29 p->val = i; 30 p->next=node_read_multiple(); 31 }; 32 } 33} 34 35void node_free_multiple(struct node*p) 36{ 37 while(p){ 38 struct node *const next =p->next; 39 free(p); 40 p=next; 41 } 42} 43 44void node_print_multiple(const struct node *p) 45{ 46 for(;p;p=p->next)printf("%d",p->val); 47} 48 49 50 51int main() 52{ 53 struct node *first=node_read_multiple(); 54 node_print_multiple(first); 55 node_free_multiple(first); 56}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/20 04:30