• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語  九九表)

C言語で九九表を作る方法

このQ&Aのポイント
  • C言語で九九表を作る方法を解説します。
  • 質問者は九九表の作成について困っており、正しく結果が表示されない様子です。
  • 質問者は-748408832という結果が10個続くという問題に直面しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>printf("%4d\n") , i*j ; printf("%4d\n", i*j); の間違いじゃないですか? 先の書き方だと…… i*jの結果は捨てられ、printf()の戻り値は評価されません。 # まぁ、評価する必要もないでしょうが… 書式としては一応合っていますので…コンパイルエラーにはならないのでしょう。 # 環境によってはprintf()の引数が足りない。などの警告orエラーになる場合もありますが。 で、printf()が表示しようとする値は「たまたそこにあったもの」になります。 この場合だと…たぶんprintf()からのリターンアドレスでしょうか……。 "%4d\n"の文字列定数が置かれたアドレス…か??? # 環境依存なので断言はできませんけどね…

msnaruo
質問者

お礼

ありがとうございます。 引数のくだりであらたな疑問ができたので、また別の質問としてやってみます。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

>for( i=1 ; i<=10 ; i++){ >for( j = 1 ; j<=10 ; j++) { 九九に10の段はありません。

msnaruo
質問者

お礼

確かに!? へんなミスですね、ありがとうございます。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

以下のようにしてください。 ----------------------------------------------- #include<stdio.h> main() { int i ; int j ; for( i=1 ; i<=10 ; i++){ for( j = 1 ; j<=10 ; j++) { printf("%4d", i*j); } printf("\n") ; } } ------------------------------------------------------ 実行結果は以下の通り 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100

msnaruo
質問者

お礼

ありがとうございます。 どこがどう違うとどう変わるのか、一目瞭然でたすかりました。

回答No.2

> printf("%4d\n") , i*j ; これを、目をこらして、よく確認しましょう。 間違っていますが(意図したとおりではないはずですが)エラーにはならないんですね、これが。 Cの文法としては正しいので。

関連するQ&A

専門家に質問してみよう