fork download
  1. /* kadai062 */
  2. /* 入力された数列を逆順に表示 */
  3. /* 配列宣言以外すべてポインタでアクセスする */
  4. /* 2023.10.24 H.Soeda */
  5. #include <stdio.h>
  6. #define DATAMAX 10
  7.  
  8. int main(void) {
  9. int n; /* 入力されたデータの数 */
  10. int number; /* 入力されたデータ */
  11. int data[DATAMAX]; /* 入力されたデータを格納する配列 */
  12. int *p; /* ポインタを使用 */
  13.  
  14. printf("好きな正の整数をいくつか入力してください。\n ");
  15. printf("終了するときはゼロを入力してください。\n ");
  16. n = 0;
  17. scanf("%d", &number);
  18. p = data; /* ポインタに配列の先頭アドレスを代入 */
  19. while(number != 0) {
  20. *p=number;
  21. p++;
  22. n++;
  23. if (n==DATAMAX) {
  24. printf("データ数の上限%d を越えました。\n", DATAMAX);
  25. break;
  26. }
  27. scanf("%d", &number);
  28. }
  29. /* 逆順に表示 */
  30. for (p=data+n-1; p>=data; p--) {
  31. printf("%d ", *p);
  32. }
  33. printf("\n 終了します。\n");
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0.01s 5516KB
stdin
111 1111 112 233 3444 0 
stdout
好きな正の整数をいくつか入力してください。
 終了するときはゼロを入力してください。
 3444 233 112 1111 111 
 終了します。