///プログラム課題内容///
整数xを入力すると,√xをA√B の形に変形するプログラムを作成せよ.ただし,xが負の場合 A√B i と虚数を表示すること.
また,B=1のとき(A√1のとき)はAのみ表示し,A=1のときは√B(または√B i)だけ表示すること.
重要なのはエラー処理です。
想定していない値や文字、記号などを入力された場合
どうなるのかということですね。
そのとき、おかしな結果や システム的なエラーが出てとまってしまったらまずいです。
まず、普通に突っ込まれそうなところ。
問題が要求するレベルによるけれど、仕事だと必ず突っ込まれるケース。
採点者の好みとか、授業で教えた内容によると思うけど、書き方として気になるところ。
後は、適切な空白の挿入かな(好みと言ってしまえば、好みの範疇ではあったりする)。
for(i=2;i<=x;++i){ if(x%(i*i)==0){ a=i; b=x/(i*i); } }
と、
for (i = 2 ; i <= x ; ++i) { if (x % (i * i) == 0) { a = i; b = x / (i * i); } }
の、どっちが読みやすいでしょうね、という話。
計算ロジックは置いておいてプログラムの書き方を見ると、
printf("整数を入力してください。:");
では改行コードを出力していないので、scanf()する前にfflush()しないと出力されないと思います。
それから、scanf()のエラー処理が必要です。
厳密に言うとprintf()やputchar()のエラー処理も必要です。
また、オーバーフローのチェックも必要です。
int mainしか対応していない処理系で勝手にvoid mainと定義すると、復帰値が不定ということ以前に、正常に呼び出すことすらできない可能性があります。
2012/10/13 09:53:15質問立てた。
2012/10/13 12:31:57