至急解かねばならない問題があり質問させていただきます。
C言語初心者です。MVSを使用してⅭ言語の勉強をしております。
5回の入力後にファイルへデータ書き込んだら、画面上に「繰り返し入力しますか? Y/N」と表示する。
「Y」が選択(入力)された場合は、上記処理を繰り返し、ファイルへ追加して格納する。
「N」が選択された場合は終了する。
という問題の一部なのですが、ここの処理の仕方が分かりません。
発生している問題
・5回入力後にファイルにデータを書き込む方法
・Yを入力後に、処理をくりかえす方法とそれをファイルに追加する方法
を知りたいです。
該当のソースコード
#include "stdafx.h" #include <stdio.h> #include <string.h> #include<math.h> #include <stdlib.h> #define _AFX_SECURE_NO_WARNINGS #define KAISU 5 #pragma warning(disable:4996) int main(void) { int i = 0, j = 0; char houhou; float num[100]; float sum = 0, sum2 = 0, avg, dev; /* 入力した文字列を格納 */ char ch[100]; /* ファイルポインタ */ FILE *fp; printf("\n5回数値を入力してくださ \n"); for (i = 0; i < KAISU; i++) { printf("%d個目 = ", i + 1); scanf_s("%f", &num[i]); //計算 sum += num[i]; sum2 += num[i] * num[i]; avg = sum / KAISU; dev = sqrt(sum2 / KAISU - avg*avg); if (num[i] >= 1000) { printf("1000未満の値を入力してください\n"); } } printf("繰り返し入力しますか? Y/N"); scanf_s("%f", &num[i]); if (num[i] == 'Y') { printf("上記処理をくりかえします。\n"); /* ファイルを書き込みモードでオープン */ fp = fopen("statistics.csv", "w"); /* ファイルが適切に読み込まれているかを確認 */ if (fp == NULL) { perror("ファイルの読み込みに失敗!\n"); return 1; } /* 入力した文字列をファイルに書き込む */ fprintf(fp, "%s", num[i]); fclose(fp); return 0; } else if (num[i] == 'N') { printf("処理を終了します。\n"); } switch (houhou = 0) { case 'Y': num[i] = num[i] + 'Y'; break; case 'N': num[i] = num[i] + 'N'; break; default: printf("該当しません"); } printf("数値の合計 = %.2f\n", sum); printf("数値の平均値 = %.2f\n", avg); printf("数値の標準偏差 = %.2f\n", dev); return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/15 01:04
2018/02/15 02:27 編集
2018/02/15 04:00
2018/02/15 05:07