c言語です。課題を解いていたのですがうまく作動しません。

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

c言語です。課題を解いていたのですがうまく作動しません。

#1

投稿記事 by ともやん » 13年前

c言語です。課題を解いていたのですがうまく作動しません。

「レポートの得点が記録されたテキストファイルがある。これからデータを読み
取り、平均、標準偏差、最大値、最小値を求めるプログラムを作りなさい」
という課題が出ていて友人にヒントを得て

コード:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void){
	char *fnm="Book1.txt";
	FILE *dat;
	char *p,chs[100];
	int ten;
	int n=0;
	int min;
	int max;
	double avr;
	double sdv;

	dat = fopen(fnm,"r");
	sdv = avr = 0;
	while(fgets(chs,100,dat)!=NULL){
		ten = strtol(chs,&p,10);
		if(n==0){
			min = max = ten;
		}
		min = (min>ten)? ten:min;
		max = (max<ten)? ten:max;
		avr = avr+ten;
		sdv = sdv+ten*ten;
		n++;
	}
	avr = avr/n;
	sdv = sqrt(sdv/n-avr*avr);
	printf("最大 = %d\n",max);
	printf("最小 = %d\n",min);
	printf("平均 = %f\n",avr);
	printf("偏差 = %f\n",sdv);
	fclose(dat);
	return 0;
}
とプログラミングしたんですが結果がうまく行きません。
どこがどう間違っているか指摘していただきたいです

よろしくお願いします

(管理人がソースコードの表示を変更しました)

box
記事: 2002
登録日時: 13年前

Re: c言語です。課題を解いていたのですがうまく作動しません。

#2

投稿記事 by box » 13年前

>プログラミングしたんですが結果がうまく行きません。

こういう質問がいちばん困るんですよね。
どううまくいかないのか全く書いてないので、回答のしようがありません。

今回の場合ですと、
 ・どういう入力データを使ったか
 ・想定結果と、どんな風に異なったか
ぐらいは書いていただきませんと、ね。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

ともやん

Re: c言語です。課題を解いていたのですがうまく作動しません。

#3

投稿記事 by ともやん » 13年前

返信ありがとうございます

テキストファイルに適当に数字をいれてそれを読み込ませて最大値、最小値、平均、偏差値を計算させたかったんですが
どんな値をいれても
最大 = 100
最小 = 0
平均 = 46.920000
偏差 = 29.586375
が結果に出てきます

(この時入れたのは





という値をテキストファイルに入れた)

正しく計算結果をだすにはどうしたらよろしいのでしょうか?

box
記事: 2002
登録日時: 13年前

Re: c言語です。課題を解いていたのですがうまく作動しません。

#4

投稿記事 by box » 13年前

おかしいですね。
こちらでは、

1
2
3
4
5

という入力データを使って

最大 = 5
最小 = 1
平均 = 3.000000
偏差 = 1.414214

という、正しそうな結果を得ました。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

box
記事: 2002
登録日時: 13年前

Re: c言語です。課題を解いていたのですがうまく作動しません。

#5

投稿記事 by box » 13年前

>平均、標準偏差、最大値、最小値を求めるプログラムを作りなさい

>最大値、最小値、平均、偏差値を計算させたかった

2つの投稿で、「標準偏差」と「偏差値」という、別々の値について言及されています。
本当に求めたいのはどちらですか?
ソースコードの中身からすると標準偏差のようですが…。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

ともやん

Re: c言語です。課題を解いていたのですがうまく作動しません。

#6

投稿記事 by ともやん » 13年前

ごめんなさい

打ち間違えました
標準偏差を出したいです

テキストファイルの作り方がおかしいのでしょうか?


ともやん

Re: c言語です。課題を解いていたのですがうまく作動しません。

#8

投稿記事 by ともやん » 13年前

boxさん
Dixqさん
ありがとうございました

友人に見てもらったところ指定先のフォルダ
の名前が間違っていたから値が正しくでなかったらしいです


ありがとうございました

閉鎖

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