合計 昨日 今日
インフォメーション: 当サイトは3/3~3/4に大規模なメンテを実施し大幅リニューアルします。そのため3/3~3/4に長時間の利用停止時間が発生します。ご了承ください。

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

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: けしごむ
[URL]
Date: 2018年2月13日(火) 09:30
No: 1
(OFFLINE)

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

前回は失礼しました。
この問題なんですが、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[i]);

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


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

case 'N':
num[i] = num[i] + 'N';
break;
}

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

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[i]);
}
else
return 0;

fclose(fp);
char ss[256];



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

}
return 0;
}

/code

Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[16人]