双方向リスト構造によって 5 個の整数入力をし、入力順と逆順を出力するプログラム作成したいが、5つの整数を入力できるが、出力が4つの整数となってしまう。
#include <stdio.h> #include <stdlib.h> struct number{ int num; struct number *next, *prev; }; int main() { struct number* p = NULL, * start = NULL; printf("input 5 number:\n"); int i = 0; for (i = 0; i < 4; i++) { p = (struct number *)malloc(sizeof(struct number)); if (i == 0) { start = p; p->prev = p; p->next = p; } else { p->prev = start->prev; p->next = start; start->prev = p; p->prev->next = p; } int result = scanf("%d\n", &p->num); } p = start; printf("number list:"); do { printf("%d%s", p->num, (p->next != start ? ", " : "")); p = p->next; } while (p != start); printf("\n"); struct number* last = start->prev; p = last; printf("number list:"); do { printf("%d%s", p->num, (p->prev != last ? ", " : "")); p = p->prev; } while (p != last); printf("\n"); return 0; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/11 13:18
2021/11/11 14:40
2021/11/12 12:26