番号1,2,3,4を逆順に出力するプログラムを取得しようとしています。 しかし、私は奇妙な結果を得続けており、理由は不明です。 これは私がこれまで持っているものです。配列の逆順の出力要素
#include <stdio.h>
#define NO_OF_ELEMENTS 4
int main()
{
int numbers[NO_OF_ELEMENTS];
int i, j;
printf("Type a number and hit enter:\n");
/* Input each number */
for(i = 0; i < NO_OF_ELEMENTS; i++)
{
scanf("%d", &numbers[i]);
}
/* Print each number in reverse order */
for(j = NO_OF_ELEMENTS; j > 0; j--)
{
printf("%d\n", &numbers[j]);
}
return(0);
}
次のようにプログラムの出力はなります
私はそれが期待するようなコードが動作しない理由を説明するのに任意のヘルプ大変感謝します。
FIXEDあなたはそれを削除し、それが作品をだろう、&
を必要としませんprintf
について
/* Print each number in reverse order */
for(j = NO_OF_ELEMENTS; j > 0; j--)
{
printf("%d\n", numbers[j - 1]);
}
これは 'printf'の' numbers [j] 'です。 '&'はありません。そして、あなたのインデックスは1つ分だけ離れているので、 'numbers [j - 1]'です。 – melpomene
@melpomene私はそれがforループの 'scanf'だと思います。そのリンクに回答があります。それは間違っていますか?あなたの答えのコメントは正しいです。 – Elyasin
@Elyasinあなたがリンクしている質問は、一見して入力をスキップする 'scanf'です。 OPは4つの数字を期待どおりに入力することができました。 – melpomene