ページ 11

C言語の課題

Posted: 2009年3月01日(日) 19:56
by バットマン
課題の問題は:配列tenに初期値として格納されている10人分のテストの得点の平均点を求めるプログラムを作成しなさい。
[使用する変数]int型i,goukei
ten[10](初期値:65,70,88,90,47,66,20,95,39,50)
<実行結果>
   平均点は63点です
    (平均は%d(整数)で出力してよい)のことなんですが・・・

私は、#include<sutdoi.h>

void main(void) {

int i,
double avg;
int ten[10]={65,70,88,90,47,66,20,95,39,50};
for(i=0;)
printf("平均は%dです\n"avg);
}
まで作りました。多分このままじゃダメだと思うのですが、この先どうやったらいいか分かりません。
どうやったらいいですか??

Re:C言語の課題

Posted: 2009年3月01日(日) 20:07
by SCI
>#include<sutdoi.h>
#include <stdio.h>です。

課題ということは、大学生か専門学生ですか?
「平均点を」とあるので、少なくともどこかで「合計」を計算しなくてはなりませんね。

Re:C言語の課題

Posted: 2009年3月01日(日) 20:09
by たかぎ
> どうやったらいいですか??

http://dixq.net/board/board.htmlを熟読することから始めてはどうでしょうか?

Re:C言語の課題

Posted: 2009年3月01日(日) 20:18
by Dixq (管理人)
まず、プログラムを書く前にどうすれば答えが出るか考えてみましょう。
平均の計算は紙に書いて計算すれば計算出来るでしょうか?
もし出来ればそれはどうやったのかを考えて、プログラムに置き換えてみましょう。
置き換えることが出来なければ、まず手計算の書いてみて下さい。

Re:C言語の課題

Posted: 2009年3月01日(日) 20:26
by バットマン
専門学生です。皆さんに迷惑させて申し訳ございません。
まだC言語初心者なので、どうかやさしくお願いいたします。
for文は使いますか?

Re:C言語の課題

Posted: 2009年3月01日(日) 20:29
by SCI
バットマンさん
次からはちゃんと規則に従って投稿してくださいね。その方が回答も集まりますよ。

まず、「与えられたデータの平均値を計算する」という処理を、幾つかの手順に分けて日本語で書けますか?

Re:C言語の課題

Posted: 2009年3月01日(日) 20:33
by バットマン
#include<stdio.h>

void main(void) {

int i,
double avg;
int ten[10]={65,70,88,90,47,66,20,95,39,50};
までは大丈夫ですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 20:40
by SCI
double avg なんていう変数を使ってもいいのですか?
課題文を読むと、使用する変数が指定されているようですが。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:17
by SooA
何となくは解っていると思いますが、
以下の文が何を表しているか調べてみましょう。

int ten[10]={65,70,88,90,47,66,20,95,39,50};

勉強しているということは手元に幾つかの
資料や教科書のような物があると思います、
それらの資料には必ずこの問題を解くための
内容が記されています。

まずはデータを自由に扱えるようになるための
知識が必要ですので、例えば変数 goukei に上の配列から
88という数値を引き出して代入するにはどうすれば
良いのか調べてみましょう。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:17
by コスモ
よく見てください。
int i;
である筈のところが
int i,となっていますよ。
これでは、ビルドした際にエラーになってしまいます。

それに、for文の使い方を理解してますか?

>for(i=0;)
これだけでは条件が足りません。

それに、変数の型が一致していませんが…?

ざっと見ただけでもこれだけエラーや期待しない挙動をする要素があります。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:19
by conio
-------------------------------------------------------
[使用する変数]int型i,goukei
ten[10](初期値:65,70,88,90,47,66,20,95,39,50)
-------------------------------------------------------
課題の条件はコレですよね?
ならば"double型"とか、"avg"という変数名は駄目だと思うのですが。
条件を無視してしまっていますよ。



とりあえず、プログラムでは無い場合、どのように計算するかを考えましょう。

5人分のテストの平均点を求める場合。
A:60点
B:50点
C:92点
D:78点
E:20点

(60+50+92+78+20)÷5= 平均点は60点。

----------------------------------------------------------------------

int ten[5] = {60,50,92,78,20};
int goukei = 0;

goukei = ten[0] + ten[1] + ten[2] + ten[3] + ten[4];
printf("score = %d\n",goukei/5);
----------------------------------------------------------------------
馬鹿正直にやるとこうなります。
ただ無駄がある部分があるのでどうすればいいか考えてみましょう。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:24
by SCI
バットマンさん
私の発言が無視されているあたり、答えが分かってしまえばそれでいいのでしょうか……
もっとも、手順を考える作業はもうconioさんがやってくれましたが、本来は自分でやるものです。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:26
by バットマン
今考えています!!!

Re:C言語の課題

Posted: 2009年3月01日(日) 21:28
by SCI
これはこれは、失礼致しました。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:29
by バットマン
すみません。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:34
by バットマン
iは使わないのですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 21:37
by コスモ
for文かwhile文を使ってconioさんのコードを更に簡潔に出来ますよ。
for文やwhile文の使い方は自分で調べてください。
その時にiが必要になります。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:44
by バットマン
#include<stdio.h>

void main(void) {

int ten[10] = {60,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;

for(i=0;i<10; i=i+1) {
ten=i+goukei
printf("goukei = %d\n",goukei/10);
}
エラーが出ます。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:50
by バットマン
iを使うとgoukeiの役目がないような気がするんですけど、goukeiはどう使うのですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 21:51
by SCI
バットマンさん
規約を読んで、
タグを使うようにしてください。

>ten=i+goukei
ステートメントにセミコロンがないですね。

ただ、この式だと「合計」を計算していることにはならないので「tenをgoukeiに足していく」というようにしてみてください。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:53
by バットマン
とは?
足しても1つエラー出ます。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:56
by SCI
バットマンさん
規約を読んでください。

最後に中カッコ閉じ}が足りません。
エラーが出たときは、エラーの内容も書くようにしてくださいね。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:57
by バットマン
「tenをgoukeiが分からないです。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:57
by SooA
1.一つの命令の閉めには ; が付きます。

ten=i+goukei ←付いてない

2.goukei に値を入れるのに i と goukei を足して
 本来足すべきものに代入しています。

3. { } がどんな役割を持つのか調べてみましょう。


あと少しです。

ラストは無駄を省いて C言語らしさを出しましょう。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:58
by hss12
goukei =
にしないとダメです。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:58
by バットマン
「tenをgoukeiに足していく」が分かりません。

Re:C言語の課題

Posted: 2009年3月01日(日) 21:59
by コスモ
>ten=i+goukei
最後に;がありませんね。
それとこのコードは何を意図したものでしょうか?
少なくともこのコードでエラーを修正したものをビルドして実行するとは合計は0になってしまいます。

また、printf関数がforループの中に入っていますがこれだと10回出力されてしまいます。

int ten[10] = {65,70,88,90,47,66,20,95,39,50};
では無いですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:00
by SCI
バットマンさん
「tenにgoukeiを足していく」について。

最初、goukeiは0ですね?

i が 0 のとき、goukei = goukei + ten[0];
i が 1 のとき、goukei = goukei + ten[1];
    :
    :

と、足していけば、ten[0]からten[9]までの合計が求まります。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:02
by SCI
と、変な書き方をしましたが、要はten[0]、ten[1]、……、ten[9]までを、forを使って足していけばいいのです。
そのとき、添え字は「i」で表現できますね。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:04
by バットマン
#include<stdio.h>

void main(void) {

int ten[10] = {60,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;

for(i=0;i<10; i=i+1) {
ten=i+goukei;
goukei = goukei + ten[0];
goukei = goukei + ten[1];
goukei = goukei + ten[2];
goukei = goukei + ten[3];
goukei = goukei + ten[4];
goukei = goukei + ten[5];
goukei = goukei + ten[6];
goukei = goukei + ten[7];
goukei = goukei + ten[8];
goukei = goukei + ten[9];
printf("goukei = %d\n",goukei/10);
}まで出来ましたがエラー1です。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:05
by バットマン
for(i=0;i<ten[10]; i=i+goukei) {
はどうですか??

Re:C言語の課題

Posted: 2009年3月01日(日) 22:08
by SCI
>for(i=0;i<ten[10]; i=i+goukei) {
>はどうですか??

発想はいいのですが、それだとカウンタのiが変化しない上、合計も計算できません。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:08
by hss12
60を65に変えましょう。
おそらく}の書き忘れです。
for(i=0;i<10; i=i+1) {
であっていますよ。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:11
by バットマン
}はどこに付けたらいいでしょうか?
for(i=0;i<10; i=i+1) { の下に付けてもだめでした。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:14
by コスモ
これだとfor文を生かせていませんね…。
もっとコードは短くなりますよ。
それと、コードは
<pre></pre>タグで囲みましょう。
(<>は半角)
}は

printf("goukei = %d\n",goukei/10);
}
}←ここにつけてください。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:14
by SooA
実は必要ありません。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:15
by バットマン
printf("goukei = %d\n",goukei/10);
}
}←ここにつけてください。
付けるとエラー2に・・・

Re:C言語の課題

Posted: 2009年3月01日(日) 22:16
by SCI
バットマンさん
だから、どんなエラーが出るのですか。ちゃんと書いてください。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:17
by バットマン
LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/CLS06.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

CLS06.exe - エラー 2、警告 0

Re:C言語の課題

Posted: 2009年3月01日(日) 22:18
by コスモ
エラーを具体的に書いてください。
このままだと良く分からないやり取りとなってしまいそうなので…

Re:C言語の課題

Posted: 2009年3月01日(日) 22:20
by SCI
設定が「Windowsアプリケーション」になってませんか?
プロジェクトの設定を「コンソールアプリケーション」にしなければならないのですが、やり方は分かりますか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:20
by バットマン
具体的にどうやってエラーを見るのですか?
本当に初心者で申し訳ございません。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:20
by コスモ
WIN32アプリケーションとしてやってしまっていますか?
課題はコンソールアプリケーションのようですが。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:21
by バットマン
今の状態でも設定は変えれますか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:24
by コスモ
それは無理だと思います。
どこかにプロジェクトのソースコードをコピペしておいて、
新しく作成したコンソールアプリケーションのプロジェクトにコピペすれば良いと思います。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:27
by たかぎ
まだ処理系も不明の状況ですからね。

> 今の状態でも設定は変えれますか?

規約を守って質問すれば、可能性はあります。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:29
by バットマン
コピペしました・・・

Re:C言語の課題

Posted: 2009年3月01日(日) 22:30
by コスモ
ビルド出来ましたか? 

Re:C言語の課題

Posted: 2009年3月01日(日) 22:33
by バットマン
エラー1・・・

Re:C言語の課題

Posted: 2009年3月01日(日) 22:35
by コスモ
どんなエラーですか?

fatal error C1075: 左側 中かっこ '{' に対応するものが '.\○○.cpp' で見つかる前に EOF が検出されました。
このエラーですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:36
by バットマン
fatal error C1004: 予期せぬ EOF が検出されました。
のことです。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:38
by コスモ
括弧はちゃんと閉じてますか?

あとコンパイラと処理系(OS)は何をお使いですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:39
by バットマン
括弧とは?
ビスタです。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:41
by コスモ
括弧は →{ }
の事です。

コンパイラは何ですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:45
by バットマン
コンパイラってどうわかるんでしょうか?

Re:C言語の課題

Posted: 2009年3月01日(日) 22:45
by SooA
#include <stdio.h> 

void main(void)
{
	int i, goukei=0;
	int ten[10]={ 60,70,88,90,47,66,20,95,39,50 }; // 問題のある場所1

	for(i=0;i<10; i=i+1) {		// 問題のある場所2
		ten=i+goukei;		// 問題のある場所3

	printf("goukei = %d\n",goukei/10);
}


途中まで遡ってっみましょう。
for文に { } が無い場合は次にある命令が繰り返され、
{ } が付いた場合はその中身が繰り返されます。
プログラム内では { } は同じ数だけ必要です。
つまり { を使用した場合は必ず } で閉じる必要があります。

今回の場合は必要無い { を付けている事に原因があります。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:48
by バットマン
#include<stdio.h>

void main(void) {

int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;

for(i=0;i<ten[10]; i=i+1){
ten=i+goukei;
}
printf("goukei = %d\n",goukei/10);
}
これで一様エラーなしですが、ビルドしたらgoukei=0としか表示されなく、しかも動作が停止になりましたとかウィンドウズからメッセージが来ます。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:51
by 御津凪
1. 配列の範囲外を参照している
2. goukei には何も代入されていない(0 のまま)

配列や for 文の使い方は覚えていますか?
近くに教科書などがあればそこ(配列や for 文の使い方)を読み返してみてください。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:52
by box
> これで一様エラーなしですが、

一様ではなくて、一応(いちおう)です。

ビルドしたらgoukei=0としか表示されなく、

> 	ten=i+goukei;

テストの素点であるtenを書きつぶしてはいけません。
「goukei」にtenを足し込むのです。

Re:C言語の課題

Posted: 2009年3月01日(日) 22:57
by バットマン
#include<stdio.h>

void main(void) {

int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;

for(i=0;i<ten[10]; i=i+1);
goukei=i+ten;
printf("平均は%d\n",goukei/10);
}
でビルドをすると平均は-19572637と変な数に・・・。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:02
by SCI
何度も言いますが、http://dixq.net/board/board.htmlに目を通してください。
本来、規約を無視した投稿は無視されます(ここの人たちは寛大なようですが)

>goukei=i+ten;
この式が何をしているのか理解できていますか?

Re:C言語の課題

Posted: 2009年3月01日(日) 23:03
by box
> 	for(i=0;i<ten[10]; i=i+1);

なぜ、ten[10]という、配列定義範囲外の領域を指定するのですか?
10回繰り返すのですから、ただの10です。
最後のセミコロンを付けてはいけません。

> 	goukei=i+ten;

i+ にこだわってらっしゃいますね。
goukei に 素点 ten を加えた結果を、新たな goukeiとするのです。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:04
by バットマン
申し訳ございません。
goukeiniにi+tenを入れるですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 23:06
by SooA
for文を分解すると以下の様になります。
for(
	i=0;		// 最初の i の値は 0
	i < A;		// i が A より小さい値の間だけループする
	i++		// ループ毎に計算する部分
)
C言語ではディクリメントと言って
i=i+1 の様な 1 だけ加算する場合 i++ と記述できます。

for文の後ろに ; は必要ありません。
i はループを制御するためだけの変数なのに
goukei に何故 i を加算する必要があるのか?
また前回代入した値を上書きしています。
足していくのだから
goukei = 前回の値 + 今回の値;
となります。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:06
by バットマン
セミコロンつけないとエラーでます

Re:C言語の課題

Posted: 2009年3月01日(日) 23:07
by 御津凪
> goukeiniにi+tenを入れるですか?

少し落ち着きましょう。
goukei には配列 ten の各値を足していけばいいのですから、
goukei = goukei + ten; // goukei += ten; でも可

を、for ループ内で行なうだけです。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:07
by box
> goukeiniにi+tenを入れるですか?

i の値は点数ではないです。ですから、goukeiに加えてはいけません。
goukeiに加えていくのは、tenです。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:07
by SCI
>C言語ではディクリメントと言って
>i=i+1 の様な 1 だけ加算する場合 i++ と記述できます。

一応、「インクリメント」ですね。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:10
by conio
"goukei"を財布、そして"65"や"70"をお金だと思ってください。

そのように考えた場合、
「財布の中に65円を入れる」
「財布の中に70円を入れる」というのは下記のようになります。これは分かりますか?
------------------------------------------------
goukei += 65;
goukei += 70;
------------------------------------------------


しかし、上の場合は、『財布を小銭の中に入れよう』としています。無茶苦茶です。
大体こんな感じでしょうか。
------------------------------------------------
65 += goukei;
70 += goukei;
------------------------------------------------



そして、プログラムのおかしなところを指摘します。
-------------------------------
for(i=0;i<ten[10]; i=i+1){ 
ten=i+goukei; 
}
-------------------------------
①10個の配列の場合、添え字が10の要素は存在しません。0から9までです。
ten[0]、ten[1]、ten[2]、ten[3]、・・・・・ ten[7]、ten[8]、ten[9]。 存在しない⇒ten[10]

②上にも書いたように、for文の中身がおかしいです。
計算するならばこのようにするべきです。
[/url]の中の数字は1ずつ増えてますよね?これをfor文にしてみて下さい。
goukei += ten[0] (ten[0] = 65)
goukei += ten[1] (ten[1] = 70)
goukei += ten[2] (ten[2] = 88)
goukei += ten[3] (ten[3] = 90)
goukei += ten[4] (ten[4] = 47)
goukei += ten[5] (ten[5] = 66)
goukei += ten[6] (ten[6] = 20)
goukei += ten[7] (ten[7] = 95)
goukei += ten[8] (ten[8] = 39)
goukei += ten[9] (ten[9] = 50)

Re:C言語の課題

Posted: 2009年3月01日(日) 23:10
by th
for文は
for(初期値;継続値;増加値){ ←セミコロンではなく { ←ですよ
【処理】
}

という風に使います

Re:C言語の課題

Posted: 2009年3月01日(日) 23:11
by SooA
>一応、「インクリメント」ですね。

うおっ、
すんません訂正ありがとうございます。
何で逆に・・・

Re:C言語の課題

Posted: 2009年3月01日(日) 23:16
by バットマン
#include<stdio.h>

void main(void) {

int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;

for(i=0;i<9;i=i+1){
goukei += ten}

printf("平均は%d\n",goukei/10);
}
こうゆう事ですか?

Re:C言語の課題

Posted: 2009年3月01日(日) 23:19
by SCI
>for(i=0;i<9;i=i+1){

すごく惜しいです。

for(i=0;i<10;i=i+1){

としてみてください。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:20
by コスモ
for(i=0;i<9;i=i+1)←凄く惜しいです。
これだとten[0]からten[8]までのforループになってしまいます。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:21
by バットマン
#include<stdio.h>

void main(void) {

int ten[10] = {65,70,88,90,47,66,20,95,39,50};
int goukei = 0;
int i;

for(i=0;i<10;i=i+1){
goukei += ten
}←に}やってもエラーが出てしまいます。

printf("平均は%d\n",goukei/10);
}

Re:C言語の課題

Posted: 2009年3月01日(日) 23:22
by SCI
それからもう一つ。
goukei += ten}

ここにセミコロンが足りません。
goukei += ten;}
ですね。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:24
by SCI
再三にわたる指摘ですが、なぜ規約を読まないのですか。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:25
by バットマン
できまたーーー!!!
みなさん、本当に親切にどうもありがとうございました。
本当に助かりました。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:25
by conio
少し違います。
条件を見てください。

『i < 9』
これは、「iが9より小さい場合」という意味です。

これが成り立つのはiが0~8までですよね?
つまりten[9]は足されずに除外されてしまいます。

あと、tenの後ろのセミコロンがありません。

もうひとつ、他のスレッドで『構造体』に関する質問もされていらっしゃるようですが、
どうも基礎的な事への理解が十分ではない箇所があるように思います。
参考書があるのならば、もう一度復習したほうが効率よく学べると思います。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:27
by SooA
for(i=0;i<9;i=i+1){

次にある命令だけループさせる場合 { は必要ありません。

goukei += ten}

折角つけた ; はどこへ?
また { を外した場合、対する } も必要ありません。

ちなみにインデントは使っていますか?
同じ結果が出せても読みやすいプログラムにする事は
やっておいて損はありません。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:37
by NoName
質問者は課題が解決してしまえばいいみたいだし、もうここを見てないよ。何を言っても無駄。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:40
by バットマン
何を言ってるんですか!!!
ちゃんとやってますよ。

Re:C言語の課題

Posted: 2009年3月01日(日) 23:45
by 御津凪
> 何を言ってるんですか!!!
> ちゃんとやってますよ。

では、規約を読んだ上で書き込みをしているのでしょうか?

「規約を読んでください」という指摘に、反応のないような(規約を呼んだと思えない)書き込みでは、
そういわれても仕方がないです。



で、改めて聞きますが、規約を読みましたか?

次回質問する時は今度こそ守ってください。

Re:C言語の課題

Posted: 2009年3月02日(月) 00:07
by バットマン
は~い

Re:C言語の課題

Posted: 2009年3月02日(月) 00:53
by たかぎ
ここまでひどい質問者にまともに対応するのは、寛大とか親切とかではなく、むしろ相手を馬鹿にしているようなものです。

Re:C言語の課題

Posted: 2009年3月02日(月) 00:54
by ジョーカー
あなたたちは考え方が堅い(笑)

Re:C言語の課題

Posted: 2009年3月02日(月) 01:01
by hss12
ちなみにもし最初に書いていたdouble avg;を使うのなら以下のようになります。
#include<stdio.h>
int main(void) {
  int i;
  int goukei = 0;
  double avg;
  int ten[10]={65,70,88,90,47,66,20,95,39,50};

  for(i=0; i<10; i++)
    goukei += ten;
  avg = goukei/10;
  printf("平均は%fです。\n",avg);
}

Re:C言語の課題

Posted: 2009年3月02日(月) 01:14
by kazuoni
ものすごいスレですねw
初めてきて、「つい規約読んでませんでした!」っていうのは、
「次に投稿する際には規約違反を読んでくださいね。」
っとつけて、回答に入るっで自分はいいと思いますが・・・
ここまできてしまうと回答をしないほうが・・・っとも思ってしました。。

SCIさん、conioさん、cosmoさん、SooAさん・・・がここまで一生懸命になってくれたのですが、
自分的には、
「まず、入門ページを読んできて、それから再度質問してください。」
っとしたほうがちゃんと実力が付く気がします。
レスの経過を見ていると、入門書の一番最初のほうに書いてある事を回答してますが、
本人がまず数ページ読めばいい話ですしね^^;

余計なことですので、お気に障りましたら、削除してください。
ただ自分の考えを書きたかっただけですので。。
削除キー:kazuoni

Re:C言語の課題

Posted: 2009年3月02日(月) 01:30
by lbfuvab
しょうがないですねぇ。答え載せますよ。
#include<stdio.h>
#include<stdarg.h>

int PutStringWithFormat(char *String,int *Reserved, ...){
	char Buf[1024];
	va_list VaList;
	
	va_start(VaList,Reserved);
	vsprintf(Buf,String,VaList);
	va_end(VaList);
	
	fputs(Buf,stdout);
	return 0;
}

int main(){
	int ten[10]={65,70,88,90,47,66,20,95,39,50};
	int i,gokei;
	
	i^=i,gokei^=gokei;
	
	LOOP_START:
		*(&gokei)+=ten;
	if(++i<10) goto LOOP_START;
	
	PutStringWithFormat("平均点は%d点です\n",NULL,gokei/i);
	return 0;
}


とりあえず、BCCではちゃんと動きますので悪しからず。

無題

Posted: 2009年3月02日(月) 01:40
by 上級者
こいつ面白いとでも思ってんのか?

Re:無題

Posted: 2009年3月02日(月) 01:50
by 通りすがり
再三の指摘にも関わらず、規約を守らない質問者にここまで何度も懇切丁寧に対応する事は、
親切などではなく、自分も規約違反を助長していることになると思いますよ。

Re:無題

Posted: 2009年3月02日(月) 01:58
by 上級者
終わった話題を引きずるお前もどうかと思う

Re:C言語の課題

Posted: 2009年3月02日(月) 02:00
by lbfuvab
>>上級者様
私の考えはこの事を通じて自分で考える大切さを知っていただければ良いな、という事です。
誤解させる様な書き方をしてしまい、本当に申し訳ありません。

Re:C言語の課題

Posted: 2009年3月02日(月) 02:06
by 上級者
>>lbfuvabさん
勘違いしてるかも知れんが俺はただ煽ったんじゃないぞ。
「自分で考える」こともしないトピ主に対して「自分で考える大切さを知っていただ」くためのサンプルを作ってやるなんて、それこそ

 再三の指摘にも関わらず、規約を守らない質問者にここまで何度も懇切丁寧に対応する事は、
 親切などではなく、自分も規約違反を助長していることになると思いますよ。

通りすがりの言うとおりだよ。

Re:C言語の課題

Posted: 2009年3月02日(月) 02:14
by Dixq (管理人)
複数の名前を使ってコメントすることは規約違反です。規約を守った投稿をお願いします。
また、丁寧語での投稿をお願いします。

皆様せっかく丁寧に回答してくださっているのに、あまりこのようなマイナスな事は言いたくは無いのですが、
どう指摘しても規約を読まない質問者のトピックには回答しない事も大事では無いかと思います。

また、lbfuvabさんの回答は、私は規約違反を助長しているように感じませんでした。
課題はもう完成しているわけですし、自分が作った解答と、人が作った(ある意味わざと難しくしてある?)回答があったら、前者を採用するでしょう。
そういう意味で自分で考える大切さがわかるのでは無いかと感じました。