File Edit Options Buffers Tools C Help
/九九の表示をwhile文で表示*/
# include<stdio.h>
main ()
{
int a,b,c;
printf("九九の表示(while文)\n");
a=1;
b=1;
while(a<=9){
printf("%dの段\n",a);
while(b<=9){
c=a*b;
a++;
b++;
printf("%d\n",c);
}
}
return (0);
}
これで実行するとめちゃくちゃになるんですがどこを直せばいいでしょうか
a++;あたりの位置がおかしいと思うのですが
No.4ベストアンサー
- 回答日時:
巷では for() バージョンばかりなので、while() をやってみようということのようですが、a と b と c と printf() に手を加えると...縦と横が同じ出力結果となるこんな感じ。
http://karetta.jp/book-node/c-for-beginners/228245
結果としては、怪しげな c(?)をなくすと見通しが良くなりますよね。
# include<stdio.h>
int main(void)
{
int a,b;// ← cを削除
printf("九九の表示(while文)\n");
a=1;
while(a<=9){
printf("%dの段:",a);
b=1;// ←初期化のため、ここに移動
while(b<=9)
printf(" %2d",a*b++);// ← cを削除し、連続出力
printf("\n");// ←連続出力もここまで
a++;// ←内ループの後に加算のため、ここに移動
}
return 0;
}
No.3
- 回答日時:
「a++;」の位置もおかしいけど、aのループの中でbが初期化されていないのも問題です。
普通、こういうのはwhile文じゃなくfor文で作るものなのですが。for文で置き換えてみれば問題点は明らかになると思います。
(学校か何かの課題だったら、for文はまだやってないのかもしれませんが)
No.1
- 回答日時:
> a++;あたりの位置がおかしいと思うのですが
そうですね。
ヒントとしては、printfを移動して、
c=a*b;
printf("%d x %d = %d\n",a,b, c); /* ここに移動+変更 */
とすると、何が起っているか判ると思います。
期待する変化と実際の変化を見比べて、aが変化するべきときは何時か、を考えればわかると思います。
ありがとうございます
a++;をbの処理が終わった後実行したいのですが、bのwhile文終了 }のあとに置くと1の段で終了してしまいます^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語プログラムが理解できなくて…
-
for文の中にswitch文はいれられ...
-
プログラミングで二番目に大き...
-
直角三角形を表示するプログラム
-
C言語階乗の総和を求める
-
c言語で平均をだす
-
for文について
-
while文について、c言語...
-
File Edit Options Buffers Too...
-
配列を関数に渡す方法
-
構文エラー";"が型の前にあり...
-
C言語でのトランプシャッフルに...
-
プログラミングに関して
-
C言語で電卓を作成する。
-
プログラム
-
for文
-
階乗のプログラム!!
-
C言語のプログラミング (基礎...
-
Linuxで入力待ちなしkeyread関...
-
「指定されたキャストは有効で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
#if 1 #elseの意味について
-
プログラミングで二番目に大き...
-
getcの改行判定
-
C言語プログラムが理解できなくて…
-
C言語 数字以外を入力させない...
-
配列を関数に渡す方法
-
配列を使って魔方陣
-
初心者です。for文、if文を使っ...
-
c言語for文
-
c言語で平均をだす
-
while文について、c言語...
-
scanf関数を用いての加減乗除%...
-
行列をべき乗させるプログラム
-
c言語プログラミングで1から100...
-
C言語階乗の総和を求める
-
scanfが実行されません
-
C言語の二分法のプログラムにつ...
-
階乗のプログラム!!
おすすめ情報