前提・実現したいこと
C言語始めたてなので質問が変だったらごめんなさい。
以下のプログラムのstruct node *node_read_multiple()とis_prime()を組み合わせてstruct node *node_read_multiple()にある線形リストにis_prime()で求めた素数を保存するということをしたいです。どのようにいじれば解決するのか簡単にアドバイスだけでもいただけると幸いです。
C
1 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 struct node *p=malloc(sizeof *p); 14 if(p){ 15 if(scanf("%d",&p->val)==1){ 16 p->next=node_read_multiple(); 17 } 18 else{ 19 free(p); 20 return NULL; 21 } 22 } 23 else 24 return NULL; 25} 26 27 28 29void node_free_multiple(struct node*p) 30{ 31 while(p){ 32 struct node *const next =p->next; 33 free(p); 34 p=next; 35 } 36} 37 38void node_print_multiple(const struct node *p) 39{ 40 for(;p;p=p->next)printf("%d",p->val); 41} 42 43 44 45int main() 46{ 47 struct node *first=node_read_multiple(); 48 node_print_multiple(first); 49 node_free_multiple(first); 50}
is_prime
C
1#include <stdio.h> 2 3int main() 4{ 5 int i,k; 6 int a; 7 int n = 100; 8 9 for (i = 2; i < n; i++) 10 { 11 a = 0; 12 for (k = 2; k < i; k++) 13 { 14 if (i % k == 0) 15 a = a + 1; 16 } 17 18 if (a == 0) printf("%d ", k); 19 } 20 21 printf("\n"); 22 23 return 0; 24} 25
回答1件
あなたの回答
tips
プレビュー