プロが教えるわが家の防犯対策術!

九九計算の表を表示するプログラムを作成したいのですが、なかなかうまくいきません(;ω;`)
ちなみに実行結果は

  1  2 ……………………9
-----------------------------------------
1: 1  2 …
2: 2  4 …
3: 3  6 …
4: 4  8
5: 5  10
6: 6  12 
7: 7  14
8: 8  16
9: 9  18

とこんなかんじに
できたらな…と。
よろしくお願いします<(_ _)>

A 回答 (7件)

何処で詰っているのかがわからないので、


プログラムを組む上でのアドバイスをします。

まず、いきなりコーディングをはじめるのではなく、
処理の流れをしっかり考えましょう
(フローチャートを書く必要はありませんが
 せめて、処理を順番に箇条書きにする
 くらいはしましょう)

たとえば
開始
・1列目(タイトル行?1 2 ・・・・・)表示
・区切り線表示
・1の段の表示
 ・段数(1の段なら1、2の段なら2)×1を計算し表示
  以下
  段数×9まで繰り返す
 ・改行表示
・2の段表示(1の段の処理の段数だけ変えて繰り返し)
 以下
 9の段まで繰り返す
終了
と言った感じになります。

これを、どの部分をモジュール化するかなどを決めて、
Cに翻訳するようなイメージでコーディングを行えば
出来るはずです。

最初の処理イメージをしっかり作ってまとめておかないと
後で(プログラムの修正・拡張等)苦労します。

仕事でプログラミングする様になると特に・・・・
    • good
    • 0

とりあえず、うまくいかないプログラムを補足して下さい

この回答への補足

#include <stdio.h>
int main( void )
{
int m, x, y, z;
printf(" 1 2 3 4 5 6 7 8 9\n");
printf("--------------------------------------------------\n");
for(x=1; x<10; x++){
for(y=1; y<10; y++){
z=x*y;
printf("%5d",z);
}
printf("\n");
}
return 0;
}

こんなん感じです(´・ω・`)
「1:、2: …」のところ以外は
ちゃんと表示できてるんですけど
ココを表示させようとすると
なんか変になっちゃうもんで(;´Д`)

補足日時:2005/10/13 16:02
    • good
    • 0

>「1:、2: …」のところ以外はちゃんと表示できてるんですけどココを表示させようとするとなんか変になっちゃうもんで(;´Д`)



変になってしまうソースと結果がないと回答者も困りますよ(予測できますけど)

問題1:計算結果の表示間隔は %5d なのだから printf(" 1 2 3 4 5 6 7 8 9\n"); だと空白が足りない
★5文字間隔

問題2:行の先頭に2文字必要だから printf(" 1 2 3 4 5 6 7 8 9\n"); の先頭にも空白2文字が必要

こんなところでしょか?

この回答への補足

…???あれ???全部スペース
入れたつもりだったんですけど
表示されてないですね(汗

お手数かけさせてスミマセン↓

補足日時:2005/10/13 16:55
    • good
    • 0

ここの掲示板は連続したスペースは無視されるようですね


-の数から考えると質問者様もスペースはちゃんと開けてたのでしょう

for(x=1; x<10; x++){

for(y=1; y<10; y++){
の間に
printf("%d:", x);
を入れるだけですよね
どこか変でしょうか
    • good
    • 0
この回答へのお礼

申し訳ありません!!!!
一番早く回答していただいていたのに
私が気付かなかったばかりに
0 pointですみません(・ω・`)

全体をもう少ししっかり読んでから
ポイントをつけるようにこれから
気をつけます(;´Д`)

お返事ありがとうございました。

お礼日時:2005/10/13 20:36

No.3さんに追加して


問題3
xが縦、yが横の数値ですから、xをprintfしないと行先頭の1:、2:は出力されませんね。
    • good
    • 0

for(x=1; x<10; x++){


の後に
printf("%d:",x);
を入れてみて下さい。
後、その分ガイドの先頭の文字を削ります
    • good
    • 0
この回答へのお礼

ありがとうございました<(_ _)>
おかげさまでなかなかスマートに
出来上がりました♪

お礼日時:2005/10/13 20:22

No3です



ここ連続スペース無視でしたね ごめんなさい

ということで、皆様と同じで

for(x=1; x<10; x++){
print文(1: ~ 9:を表示)
for(y=1; y<10; y++){

となります

★この行があるのかないのか分からなかったのであえて書きませんでした。。。言い訳
    • good
    • 0
この回答へのお礼

何度もお返事ありがとうございました。
言われると成る程って感じです。笑

お礼日時:2005/10/13 20:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!