c
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5typedef struct Book_data{ 6 char title[50]; 7 int price ; 8 struct Book_data *next; 9}Book_data; 10 11Book_data *allocNode(char *title, int price, Book_data *next){ 12 Book_data *Node = (Book_data*)malloc(sizeof(Book_data)); 13 memcpy(Node->title,title,sizeof(Node->title)); 14 Node->price = price; 15 Node->next = next; 16 return Node; 17} 18 19int main(){ 20 Book_data *top = NULL; 21 char title[50]; 22 int price; 23 char c; 24 while(1){ 25 printf("本のタイトル 値段 y/N :"); 26 if(scanf("%s %d %c",title, &price, &c) != 3) 27 puts("Erorr"); 28 29 top = allocNode(title, price, top); 30 if(c == 'N') 31 break; 32 } 33 Book_data *node = top; 34 for(; node; node = node->next){ 35 printf("%s", node->title); 36 printf(" %d円\n", node->price); 37 } 38 return 0; 39}
前回の質問でscanf()を知ったのでscanf、リストを使いプログラムを書きました。
前回の解答者で
scanfの戻り値を!=n(n = 1,2...)このようにしていたので自分も書いたのですが
!=3を書く意味を教えてください。
また、ソースコードの問題点等あればご指摘お願いします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/10 03:33
2020/11/11 02:20
2020/11/26 12:52