ファイル操作に関する問題 

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

ファイル操作に関する問題 

#1

投稿記事 by けしごむ » 7ヶ月前

前回は失礼しました。
この問題なんですが、4日かけてもこんな状態です。
すみませんが、ご協力おねがいします。

キーボードから入力された5つの数値を受け取り、合計、平均、標準偏差を算出する。
得られたデータを入力値とともにファイルに格納する。
ファイル名は「st.csv」とする。格納位置は「c:\tra\」とする。
格納する際のフォーマットは以下の通りである。
 データ1, データ2, データ3, データ4, データ5, 合計, 平均, 標準偏差
各項目は「,(カンマ)」で区切ること。
また、各数値は小数第2位まで取扱い、上限値は1000未満とする。
なお、入力時に1000を超えている場合は「1000未満の値を入力して下さい」とメッセージを表示し、再入力してもらうこと。

5回の入力後にファイルへデータ書き込んだら、画面上に「繰り返し入力しますか? Y/N」と表示する。
「Y」が選択(入力)された場合は、上記処理を繰り返し、ファイルへ追加して格納する。
「N」が選択された場合は終了する。


得られたデータを入力値とともにファイルに格納する方法。
5回入力後、入力された場合は、上記処理を繰り返し、ファイルに追加して格納する。
がほんとわからないです。

初めて2週間ですが、こんなに難しいと思いませんでした。



code=C

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include<math.h>
#include <stdlib.h>
#define _AFX_SECURE_NO_WARNINGS
#define KAISU 5
#define DATA 4
#pragma warning(disable:4996)

int main(void)
{
FILE *fp;
if((fp=fopen("statistics.csv", "w")) == NULL){
printf("ファイルをオープンできません.\n");
exit(1);

}

int i, j, ch;
char houhou;

// 入力された5つの数値を受け取り
float num[100];
float sum = 0, sum2 = 0, avg, dev;




printf("\n5回数値を入力してくださ \n");


for (i = 0; i < KAISU; i++) {
printf("%d個目 = ", i + 1);
scanf_s("%f", &num);

while (num >= 1000) {
printf("1000未満の値を入力してください\n");
}


switch (houhou = 0) {
case 'Y':
num = num + 'Y';
break;

case 'N':
num = num + 'N';
break;
}

}
printf("数値の合計 = %.2f\n", sum);
sum += num;
sum2 += num * num;

avg = sum / KAISU;
printf("数値の平均値 = %.2f\n", avg);


dev = sqrt(sum2 / KAISU - avg*avg);
printf("数値の標準偏差 = %.2f\n", dev);


printf("繰り返しますか?Y/N");
scanf_s("%c", &houhou);
if (houhou == 'Y') {
fprintf(fp, "%f %f %f %f\n", sum, avg, dev, num);
}
else
return 0;

fclose(fp);
char ss[256];



while (fgets(ss, 256, fp) != NULL) {

}
return 0;
}

/code

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