- 締切済み
正の整数を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;のあとに入れてもエラーがでてしまいます。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- koko_u_
- ベストアンサー率18% (459/2509)
>ききたいのは「1000を超える直前まで書き出す」の部分です。 それは結局、自分でどうやって 10個書き出しているかわかっていないということですね。 参考書などで while ループの動作を確認しましょう。
- koko_u_
- ベストアンサー率18% (459/2509)
>でエラーがでてしまいます。 してそのエラーメッセージの内容は? a < 1000; はまったく無意味なステートメントですが、エラーにはならないと思いますが。(最後の } が足りないのを除いて)
補足
すみません 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)
どのように修正したのかが全くわかりません. この際, 修正したあとのソースを全部出して.
補足
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)
>a *= 2;のあとに入れてもエラーがでてしまいます。 どんな風にソースを変更して、どんなエラーが出たのか補足欄にどうぞ。
補足
質問のプログラムのa*=2のあとにa<1000を入れました。 エラーは複数でますがa<1000を入れないとうまくいくので、それが原因ではないかと。
お礼
もう一度調べてみたいと思います。