C言語初心者です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ぽぽ

C言語初心者です

#1

投稿記事 by ぽぽ » 15年前

今取り組んでいる課題で分からないのがあります。 初心者なのでどう調べていいかもわからずここにこさせていただきました。できたら教えてください。

問題
あるクラスの試験の点数を整数で繰り返し入力し、点数の合計と平均点を出力するプログラムを作成しなさい。
点数は、0点以上100点以下とし、この範囲外の点(0点未満または100点より大きい点)が入力されたときは、入力を終了し、点数の合計と平均点を出力する(最後に入力された範囲外の点は集計の対象としない)。 また、平均は小数点以下2桁まで出力する。
繰り返しの命令は、何を使ってもよい。


よろしくお願いします。

ookami

Re:C言語初心者です

#2

投稿記事 by ookami » 15年前

おはようございます。

とりあえず↓でsoftyaさんが紹介されているC言語の入門サイトをコピーさせていただきます。
http://www.play21.jp/board/formz.cgi?ac ... &rln=51943

「苦しんで覚えるC言語(苦C)」
http://homepage3.nifty.com/mmgames/c_guide/
「猫でもわかるC言語プログラミングのサイト」
http://homepage2.nifty.com/c_lang/
「C言語入門」
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
「C言語編」
http://www.geocities.jp/ky_webid/c/index.html
「C言語で始めるプログラミングの基礎」
http://itpro.nikkeibp.co.jp/article/COL ... 20/328713/
「アルゴリズム入門」
http://www5c.biglobe.ne.jp/~ecb/algorit ... thm00.html

それから、規約も参考にされるとよいでしょう。
http://dixq.net/board/board.html

また、ぽぽさんのご自宅や学校(?)などに、C言語のコンパイル環境はありますか?少しコードを書いてはコンパイルして確認する繰り返しが必要と思いますので。

ぽぽ

Re:C言語初心者です

#3

投稿記事 by ぽぽ » 15年前

早速ありがとうございました。サイト参考にさせていただきます。コンパイル環境はありますが失敗ばかりです。

はじめてきたサイトだったので、投稿してから規約を読んでしまいました。申し訳ありません。

マナー違反ですが、お許しください。

それで問題の続きがあったのでもしお許しいただけるなら教えてください。

問題
あるクラスの試験の点数を整数で繰り返し入力し、点数の合計と平均点を出力するプログラムを作成しなさい。
点数は、0点以上100点以下とし、この範囲外の点(0点未満または100点より大きい点)が入力されたときは、入力を終了し、点数の合計と平均点を出力する(最後に入力された範囲外の点は集計の対象としない)。 また、平均は小数点以下2桁まで出力する。
繰り返しの命令は、何を使ってもよい

実行例
点数:10
点数:100
点数:20
点数:35
点数:120

合計:165点
平均: 41.25点

たかぎ

Re:C言語初心者です

#4

投稿記事 by たかぎ » 15年前

規約を読まれたとのことですが...

環境や言語、自分はどこまでやったかなど、必要な情報を補足してください。

ぽぽ

Re:C言語初心者です

#5

投稿記事 by ぽぽ » 15年前

 
 C言語です。

 僕がやっていたのは、
 
 int nin,tenk,goukei,heikin;
goukei=0;
nin=0;
while(1){
printf("Enter ten=>");
scanf("%d", &ten);
if(ten<0) break;
goukei+=ten;
nin++;
}
printf("goukei:%d ten\n",goukei);
heikin=goukei/nin;
printf("\nheikin:%dten\n",heikin);

以上なんです。まったく話にならないプログラムかもしれませんが、コンパイルはエラーになります。

なんどもすみません。

たかぎ

Re:C言語初心者です

#6

投稿記事 by たかぎ » 15年前

何か一冊入門書を読むことをお勧めします。
一見遠回りのようでも、結局はその方が近道です。

ぽぽ

Re:C言語初心者です

#7

投稿記事 by ぽぽ » 15年前

そうですよね。

課題の提出期限が今日までだったので、とりあえずで出そうと思ったんですけど。

やっぱり地道にやらないとだめですよね。

胡椒

Re:C言語初心者です

#8

投稿記事 by 胡椒 » 15年前

コードは最初から最後まで全てを貼ったほうがいいですよ。
エラーも、どんなエラーが出たのかを書いてもらわないと答えにくいですし。

まず、平均点はintでは出ませんよね。宣言もtenがtenkになってますし。
また、0点未満が入力されたとき、while文から抜け出しているので、後は100点より大きい点が入力されたときもwhile文から抜け出せばよいわけです。
printf("\nheikin:%dten\n",heikin); の最初の\nは何か意図があるのでしょうか?

たかぎ

Re:C言語初心者です

#9

投稿記事 by たかぎ » 15年前

ぽぽさんに限らず誰にでも通じることですので、やや説教じみたことをあえて書きます。

> 課題の提出期限が今日までだったので、

よほどの緊急事態ならともかく、出題から提出期限までが1日かそこらしかないということはないと思います。
与えられた課題を期限までに仕上げて提出するためには、次のことを徹底しなければなりません。

1. 最初の段階で何をすべきなのかを明確にする。
 明確にならなければ、明確になるまで出題者に確認を行うこと。

2. 十分な余裕を持って、技術的な問題点を洗い出し、その解決策を見つける。
 問題点を洗い出すには、この程度の課題なら実際に作ってみるのが一番

3. 期限に間にあいそうにないと判断した場合は、巻き返し可能な段階で対策を講じる。
 出題者に相談するなど

4. 可能であれば期限前に提出するなどし、それで問題ないかを確認する。

ここまでしなくてもできる自信があるのなら問題ありませんが、できないならできないなりの対応をすべきです。
それができることが「やる気がある」ということです。

Dixq (管理人)

Re:C言語初心者です

#10

投稿記事 by Dixq (管理人) » 15年前

あぁ・・一足遅かったですか・・。
もうちょっと早めに投稿されると色々アドバイスが受けられると思いますよ。

ところで、提出後もまだ勉強されるでしょうか?
投稿されたコードは結構おしいところまで出来ていますね。
次のヒントを元にコードを改良してみて下さい。

・0未満が入力されたらループを抜ける事が出来るが、100超過だと現在はそのままになっている
・1回目に0~100以外が入力されたらnin=0になっており、「0で割る」というしてはいけないことをするコードになっている
・小数点が表せる実数はint型ではなくdouble型(or float型)
・double型の変数の中身をprintfで表示させるには%fを使う
・int型とint型の計算結果はint型になるので、平均計算の際は整数同士の計算にならないように気を付ける。

この辺を踏まえて修正すると解けると思いますよ。

ぽぽ

Re:C言語初心者です

#11

投稿記事 by ぽぽ » 15年前

> コードは最初から最後まで全てを貼ったほうがいいですよ。
> エラーも、どんなエラーが出たのかを書いてもらわないと答えにくいですし。
>
> まず、平均点はintでは出ませんよね。宣言もtenがtenkになってますし。
> また、0点未満が入力されたとき、while文から抜け出しているので、後は100点より大きい点が入力されたときもwhile文から抜け出せばよいわけです。
> printf("\nheikin:%dten\n",heikin); の最初の\nは何か意図があるのでしょうか?
>
>

ありがとうございます。
改行の文字を入れたんですが/になってしまいました。

ぽぽ

Re:C言語初心者です

#12

投稿記事 by ぽぽ » 15年前

> ぽぽさんに限らず誰にでも通じることですので、やや説教じみたことをあえて書きます。
>
> > 課題の提出期限が今日までだったので、
>
> よほどの緊急事態ならともかく、出題から提出期限までが1日かそこらしかないということはないと思います。
> 与えられた課題を期限までに仕上げて提出するためには、次のことを徹底しなければなりません。
>
> 1. 最初の段階で何をすべきなのかを明確にする。
>  明確にならなければ、明確になるまで出題者に確認を行うこと。
>
> 2. 十分な余裕を持って、技術的な問題点を洗い出し、その解決策を見つける。
>  問題点を洗い出すには、この程度の課題なら実際に作ってみるのが一番
>
> 3. 期限に間にあいそうにないと判断した場合は、巻き返し可能な段階で対策を講じる。
>  出題者に相談するなど
>
> 4. 可能であれば期限前に提出するなどし、それで問題ないかを確認する。
>
> ここまでしなくてもできる自信があるのなら問題ありませんが、できないならできないなりの対応をすべきです。
> それができることが「やる気がある」ということです。
>
 

次回から気をつけさせていただきます。ありがとうございます。

ぽぽ

Re:C言語初心者です

#13

投稿記事 by ぽぽ » 15年前

> あぁ・・一足遅かったですか・・。
> もうちょっと早めに投稿されると色々アドバイスが受けられると思いますよ。
>
> ところで、提出後もまだ勉強されるでしょうか?
> 投稿されたコードは結構おしいところまで出来ていますね。
> 次のヒントを元にコードを改良してみて下さい。
>
> ・0未満が入力されたらループを抜ける事が出来るが、100超過だと現在はそのままになっている
> ・1回目に0~100以外が入力されたらnin=0になっており、「0で割る」というしてはいけないことをするコードになっている
> ・小数点が表せる実数はint型ではなくdouble型(or float型)
> ・double型の変数の中身をprintfで表示させるには%fを使う
> ・int型とint型の計算結果はint型になるので、平均計算の際は整数同士の計算にならないように気を付ける。
>
> この辺を踏まえて修正すると解けると思いますよ。

管理人さんへ
ありがとうございます。一度これで再提出をさせていただきます。
みなさんいろいろと丁寧に教えていただいてありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る