検索結果 21 件

by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 値がないときの処理
返信数: 1
閲覧数: 5587

値がないときの処理

プログラム初心者です 二つの座礁データから距離が10未満のものだけを抜き出しmeanを記録することを3つのデータで行うプログラムを書こうとしましたが 距離が10未満のものがない場合にmeanを255にするという手段がわかりません。 最終的なテキストとしては 180 120 150 255 140 130 255 160 255... といった感じです おそらく!="\0"の部分違うと思うのですがどのように書き換えればよいかわかりません。 環境はlinuxです #include <stdio.h> // fopen, fclose, fgets, sscanf, printf #define M...
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

Re: 数値の二次元配列の格納

動かしてみたところ上手くいった感じの結果が出ました!
ありがとうございます!
line0,line1,line2はそれぞれ1200行程度です。

僕の書いたコードに関してですがmallocを使わないほうが良いということでしょうか?
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

Re: 数値の二次元配列の格納

返信が遅くなってしまいました。 自分なりに色々調べて最終的には以下のようなコードを書いたのですがsegmentation fault 11というのが出てしまい結果が出力されません。 解決方法を教えていただきたいです。 csvの中身は ,area, mean,min,max,x,y 1,0,10,10,10,4,5 2,0,10,14,14,6,8 ... となっています (19,20,21全てほぼ同じ内容) osはlinuxを使っています #include <stdio.h> // fopen, fclose, feof, fgetc, fscanf, printf #include <mat...
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

Re: 数値の二次元配列の格納

すみません
csvの中身に関してですが、txtファイルではなくexcelファイルで読み取ったものをそのまま書いていました...
ですので、txtファイルの形で書くと数値と数値の間に,が入ることになります
おそらく,の処理ができていないため正確に表記されなかったのかと思われます...
説明不足で申し訳ございませんでした。
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

Re: 数値の二次元配列の格納

まずfor文ないの値を5にした理由としてはResults.csvの中身が実際は175行ありその全てを書くことが困難なため最初の5行を上に書いたためです。 次の打ち込んだに関してですが表現の仕方が悪く申し訳ございません。 コードは全てコピペしました。 現在コンパイルしているソースは以下のような形です #include <stdio.h> // fopen, fclose, feof, fgetc, fscanf, printf #include <math.h> // sqrt int main(void) { char *fname = "Results.csv"; int arr[1000]...
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

Re: 数値の二次元配列の格納

lineの値を確認するためにfor文の前にprintfを入れてみると0になっていました。
それだけではなくfor文内のlineを5に入れ替えたところ配列の全ての値が0になっていて格納もできていないことがわかりました。
どのようにすればよいでしょうか?
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

Re: 数値の二次元配列の格納

かずまさん

上記のコードを打ち込んだところコンパイルはできましたが動かしても何も出てきませんでした。

また、距離の計算に関してですが点と原点の距離ではなく点同士の距離の計算を行いたいと考えております。
説明不足で申し訳ございませんでした。
by べけん
4年前
フォーラム: C言語何でも質問掲示板
トピック: 数値の二次元配列の格納
返信数: 22
閲覧数: 10960

数値の二次元配列の格納

1自分は今何がしたくて csvファイルに保存されている行数不明の数値を二次元配列に格納をし格納された数値同士の比較(具体的には座標表記されているもの同士の距離の算出)を行いたい。 ファイルの中身 番号 mean x y 1 100 5 10 2 93 7 7 3 120 13 4 4 30 8 6 といった中身 2どう取り組んで(作ったプログラムはどれで まずは二次元配列に格納を行うために以下のようなことを行った #include <stdio.h> int main(void){ FILE *fp; char *fname = "Results2.csv"; long i; int line...
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 個数のわからないものの平均値
返信数: 9
閲覧数: 4326

個数のわからないものの平均値

データの数がわからないものの平均をとるというプログラムを組もうとしました。 一つ目だと564個のときしか測れないプログラムですがこれをさらに拡張して二つ目のように数がいくつのときでも平均を出せるようなプログラムにしたつもりですが平均値が全てnanになってしまいます。 どなたか解決方法を教えていただきたいです。 #include<stdio.h> double average(double *a,int n) { int i; double sum=0; double heikin; for(i=0;i<n;i++){ sum=sum+a[i]; } heikin=sum/n; return h...
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 4298

Re: 複数ファイルの平均値

うまくいきました!
ありがとうございます。
コードのミスとしてはaverage(a,n)の定義の仕方がよくないというところですか?
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 4298

Re: 複数ファイルの平均値

書き直したのがこちらです. このように変えても2つ目以降の処理が行われませんでした。 #include<stdio.h> #include<stdlib.h> double average(double *a,int n) { int i; double sum=0; double heikin; for(i=0;i<n;i++){ sum=sum+a[i]; } heikin=sum/n; return heikin; } void main() { int i,j,k,n=0; double a[564]; /*配列を定義する*/ FILE *fp_in; /*0:ファイルポインタの宣言(...
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 4298

Re: 複数ファイルの平均値

最初に一回オープンすればよいと考えました。
なので結果出力を最初に書いて以降をfor文でまとめましたが結果が出力されませんでした。
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数ファイルの平均値
返信数: 9
閲覧数: 4298

複数ファイルの平均値

一つのファイルごとに564個の数値が出力されていてこの564個の平均を26ファイル全てで計算しファイルごとの平均値をテキストに出力するというプログラムを組みましたがうまくいきません。 どこが間違っているかご指摘願いたいと思います。 #include<stdio.h> double average(double *a,int n) { int i; double sum=0; double heikin; for(i=0;i<n;i++){ sum=sum+a[i]; } heikin=sum/n; return heikin; } void main() { int i,j,k,n=0; do...
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 列での演算
返信数: 5
閲覧数: 3211

Re: 列での演算

ありがとうございます。
一度動かしてみます。
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 列での演算
返信数: 5
閲覧数: 3211

Re: 列での演算

1,4は上記の通り
2,3はプログラムを組んでいない
5は初心者です
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 列での演算
返信数: 5
閲覧数: 3211

列での演算

テキストファイル内に
1 12
2 18
3 41
4 25
5 16
といったような値が書かれているとき3列目に1列目と2列目の積の値を出力して保存するというプログラムを組むことはできますでしょうか?

処理後のテキストファイルの状態としては
1 12 12
2 18 36
3 41 123
4 25 100
5 16 80
となってほしい
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 6384

Re: 複数のテキストファイルの扱い方

static char arrにすることで無事解決しました!
ありがとうございます!
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 6384

Re: 複数のテキストファイルの扱い方

printfをputsに置き換えずプログラムを動かしたところ、 自分の環境ではload errorが出ずに処理を行うことができました。 全角の数字や空白文字が混ざっているなど、処理対象のファイル名が間違っている可能性が考えられます。 3.txt以降の処理がうまくいかなかった原因についてですがおそらく一つ一つのファイルの分量が大きくchar arr[]の範囲が足らなかったのが影響していたようでした。しかし、テキストファイルは30近くあるのですがchar arr[]の[]内を100000といったかなり大きな値に変更したところ処理がされませんでした。おそらくchar arr[]の上限値に達したから...
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 6384

Re: 複数のテキストファイルの扱い方

みけCATさん
ご丁寧にご指摘ありがとうございます!
一度プログラムのほう動かしてみます!
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 6384

Re: 複数のテキストファイルの扱い方

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

ご指摘していただいた通りprintfをputsに置き換えてプログラムを動かしたところ2.txtまでは処理がうまくいったのですが3.txt以降の処理が行われていませんでした。

この原因はプログラム側のほうにあったりしますでしょうか?
by べけん
5年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のテキストファイルの扱い方
返信数: 13
閲覧数: 6384

複数のテキストファイルの扱い方

1.txt,2.txt,3.txt・・・のような連続したテキストファイルを上から18行削除するという処理を行おうとしたのですがload errorと出てしまいます。どこが間違っているかご指摘お願いしたいです。よろしくお願いします。 #include <stdio.h> int main(void) { int i,j,l; int line = 0; // 行数 char arr[3000][50], filepath[256]; FILE *f; for(l = 0; l < 17; l++ ) { sprintf(filepath,"%d.txt",l); f = fopen(filepa...

詳細検索ページへ移動する