ページ 1 / 1
データの読み込み
Posted: 2019年2月26日(火) 17:19
by jtptmjtk
sドライブのjmpフォルダにあるファイル(s.c)の最初にその後のデータの個数nを表す整数値がテキストとして記録されており、データは浮動小数点値でn個記録されている。また全てのデータの間にスペース文字が入っている。n個全てのデータを配列に格納して分散y^2を求め、表示しなさい。というプログラムの書き方がわからないのですがどう書いたらよいのでしょうか、、
Re: データの読み込み
Posted: 2019年2月26日(火) 17:53
by Math
ほぼ見当はつくけれども、これだけでは他人には正確には伝わらないと思うの
ここ
rulesをよく読んで
頑張って他人に理解できる形にしてみてください。
例えば下記のように
----------------------------------------------------------------------------------------------
どう質問していいか解らない時は、以下のテンプレをコピペして、
各項目に対して答える形で記載して下さい。
[1] 質問文
[1.1] 自分が今行いたい事は何か
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
[1.4] 今何がわからないのか、知りたいのか
[2] 環境
[2.1] OS : Windows, Linux等々
[2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
[3] その他
・どの程度C言語を理解しているか
・ライブラリを使っている場合は何を使っているか
----------------------------------------------------------------------------------------------
Re: データの読み込み
Posted: 2019年2月26日(火) 19:45
by jtptmjtk
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
Int
main()
{
FILE *fp;
char buf[48];
double l,m,n;
int i;
if((fp=fopen(“s.c”,”r”))==NULL){
perror(“read open file”);
exit(1);
}
l=0;
m=0;
n=0;
while(fgets(buf,48,fp)!=NULL){
sscanf(buf,”%lf”,&x);
l+=n
m+=n*n;
i++;
}
l/=i;
m/=i;
m-=l*l;
printf(“%f\n”,m);
fclose(fp);
return 0;
}
というとこまでできているのですがあっているのかの自信がありません
Re: データの読み込み
Posted: 2019年2月26日(火) 21:58
by Math
この
#include <stdlib.h>
Int
はなにですか?
OS : Windows, Linux等々
コンパイラ名
は何ですか?
C言語の経験は?
ファイル s.c は本当に拡張子が .c ?
そして内容の例は?
そして学校の課題から?
rules落ち着いてよく読んでください。
Re: データの読み込み
Posted: 2019年2月26日(火) 22:02
by Math
それからプログラムにはなにをしようとしているのコメント文を主要な行に書いてください。
Re: データの読み込み
Posted: 2019年2月26日(火) 22:10
by Math
Re: データの読み込み
Posted: 2019年2月28日(木) 08:48
by かずま
jtptmjtk さんが書きました: ↑5年前
というとこまでできているのですがあっているのかの自信がありません
できているのですか?
コンパイルしていないのですか?
どんなデータでテストしようとしていますか?
問題をちゃんと読んでいますか?
「sドライブのjmpフォルダにあるファイル(s.c)」ですから、
パス名は s:\jmp\s.c ですよね
C の文字列だと "s:\\jmp\\s.c" と書かなければなりませんが、
Windows はパス名の区切りに '/' も使えるので
fopen("s:/jmp/s.c", "r") と書いても OK です。
「最初にその後のデータの個数nを表す整数値がテキストとして記録されており、
データは浮動小数点値でn個記録されている。また全てのデータの間にスペース
文字が入っている。」
例えば, { 31.4, 15.9, 26.5, 35.8, 97.9 } の 5個のデータがあったとすれば、
ファイルの中身は、5 31.4 15.9 26.5 35.8 97.9 のはずです。
fgets と 1個の sscanf の組み合わせでは読み込めないでしょう。
fscanf を使うにしても、整数値を読み込む書式 "%d" と
浮動小数点値を読み込む書式 "%lf" の 2つの fscanf が必要でしょう。
「n個全てのデータを配列に格納して」
コード:
fscanf(fp, "%d", &n);
for (int i = 0; i < n; i++)
fscanf(fp, "%lf", &x[i]);
プログラムを書き直して、分からないところを質問してください。
プログラムの提示にはコードタグを使ってください。
Re: データの読み込み
Posted: 2019年3月01日(金) 08:35
by あたっしゅ
質問主は、
>この
>#include <stdlib.h>
>Int
>はなにですか?
Math さんの書き込みの意味が、わかっていますか ?
「C/C++ 言語では、"int" と "Int" すなわち、大文字小文字の違いで、別の意味になります」という趣旨です。