• 締切済み

正の整数を1つ読み込み、それを倍々しながら1000を超える直前まで書き出すプログラム

int main(void) {int a, n = 10; printf("aを入力 > "); scanf("%d", &a); while (n--) { printf("%d ", a); a *= 2;  }return 0; これが、正負に関わらない整数を読み込み、10回書き出すもので、他は同じです。1000を越える直前のa<1000をどこに入れたらいいですか? aが変化しているので、a *= 2;のあとに入れてもエラーがでてしまいます。

みんなの回答

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.4

>ききたいのは「1000を超える直前まで書き出す」の部分です。 それは結局、自分でどうやって 10個書き出しているかわかっていないということですね。 参考書などで while ループの動作を確認しましょう。

jlnh
質問者

お礼

もう一度調べてみたいと思います。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>でエラーがでてしまいます。 してそのエラーメッセージの内容は? a < 1000; はまったく無意味なステートメントですが、エラーにはならないと思いますが。(最後の } が足りないのを除いて)

jlnh
質問者

補足

すみません int main(void) {int a, n = 10; printf("aを入力 > "); scanf("%d", &a); while (n--) { printf("%d ", a); a *= 2;  a<1000; }return 0; で実行できたのですが、「整数を1つ読み込み、それを倍々しながら10個書き出すプログラム」になってしまします。(5を入力したら2560まで表示しました。)ききたいのは「1000を超える直前まで書き出す」の部分です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

どのように修正したのかが全くわかりません. この際, 修正したあとのソースを全部出して.

jlnh
質問者

補足

int main(void) { int a, n = 10; printf("aを入力 > "); scanf("%d", &a); while (n--) { printf("%d ", a); a *= 2;  a<1000; }return 0; でエラーがでてしまいます。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>a *= 2;のあとに入れてもエラーがでてしまいます。 どんな風にソースを変更して、どんなエラーが出たのか補足欄にどうぞ。

jlnh
質問者

補足

質問のプログラムのa*=2のあとにa<1000を入れました。 エラーは複数でますがa<1000を入れないとうまくいくので、それが原因ではないかと。

関連するQ&A