- ベストアンサー
C言語で九九表を作る方法
- C言語で九九表を作る方法を解説します。
- 質問者は九九表の作成について困っており、正しく結果が表示されない様子です。
- 質問者は-748408832という結果が10個続くという問題に直面しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>printf("%4d\n") , i*j ; printf("%4d\n", i*j); の間違いじゃないですか? 先の書き方だと…… i*jの結果は捨てられ、printf()の戻り値は評価されません。 # まぁ、評価する必要もないでしょうが… 書式としては一応合っていますので…コンパイルエラーにはならないのでしょう。 # 環境によってはprintf()の引数が足りない。などの警告orエラーになる場合もありますが。 で、printf()が表示しようとする値は「たまたそこにあったもの」になります。 この場合だと…たぶんprintf()からのリターンアドレスでしょうか……。 "%4d\n"の文字列定数が置かれたアドレス…か??? # 環境依存なので断言はできませんけどね…
その他の回答 (3)
- asuncion
- ベストアンサー率33% (2127/6289)
>for( i=1 ; i<=10 ; i++){ >for( j = 1 ; j<=10 ; j++) { 九九に10の段はありません。
お礼
確かに!? へんなミスですね、ありがとうございます。
- tatsu99
- ベストアンサー率52% (391/751)
以下のようにしてください。 ----------------------------------------------- #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
お礼
ありがとうございます。 どこがどう違うとどう変わるのか、一目瞭然でたすかりました。
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
> printf("%4d\n") , i*j ; これを、目をこらして、よく確認しましょう。 間違っていますが(意図したとおりではないはずですが)エラーにはならないんですね、これが。 Cの文法としては正しいので。
お礼
ありがとうございます。 引数のくだりであらたな疑問ができたので、また別の質問としてやってみます。