アプリ版:「スタンプのみでお礼する」機能のリリースについて

できるだけ簡単なプログラムを作っていただけませんか?

名前3600名分を読み込み,名前とその文字数,文字数が偶数の人についての人数と平均文字数,文字数が奇数の人についての人数と平均文字数をresult.txtに書き込むプログラムを作りなさい.ただし,以下を守ること.

1 文字数は2ケタ,名前は指定なし,人数は4ケタ,平均文字数は小数点以下3ケタとすること。
2 以下のような実行例にすること。


(例)
[12][IchiroSuzuki]
[ 9][MikeAdmas]
[11][JamesAdduci]
[15][MichaelAffronti]




[14][AkinoriIwamura]
[16][DaisukeMatsuzaka]
guusuu[1809,11.460]
kisuu[1791,11.553]



for文を多用すれば良いのかなと個人的には思うのですがよくわかりません。

A 回答 (3件)

以下のURLにダウンロードしました、バグが有るのですが修正してみてください。


http://ideone.com/9KiRc C (gcc-4.3.4)

/*
fscanf - 戻り値が 0 の場合は、フィールドの代入が行われていません。
エラーが発生するか、最初の変換の前にファイル ストリームの終端を検出すると、EOF を返します。
fgets - エラーが発生するか、ファイルの終端に達すると NULL を返します。
while(fgets(namae, sizeof(namae), ifp) != 0)
*/
while(fscanf(ifp, "%s%*c", namae) != EOF)

参考URL:http://ideone.com/9KiRc
    • good
    • 0

>文字数は2ケタ,名前は指定なし


とありますが、名前が100文字以上のときは、どうします?
    • good
    • 0

どこから読み込むのか不明ですが…forループは1つで充分でしょう。



名前の長さが偶数の場合と奇数の場合での「総文字数」「総数」をカウントする変数を用意。
名前が1行に1つ書かれた入力ファイルがあるならば…
入力ファイルと出力ファイルをオープンして、fgets()で入力ファイルから読み込み。
改行文字を削除した上で文字数をstrlen()で取得。
「総文字数」「総数」の変数に反映した後でfprintf()で出力ファイルに出力。
3600行分処理したら、「総文字数」「総数」から平均を算出するだけです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
やり方が理解できました。

お礼日時:2010/05/30 02:29

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