検索結果 21 件
- 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...
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数値の二次元配列の格納
- 返信数: 22
- 閲覧数: 10960
Re: 数値の二次元配列の格納
動かしてみたところ上手くいった感じの結果が出ました!
ありがとうございます!
line0,line1,line2はそれぞれ1200行程度です。
僕の書いたコードに関してですがmallocを使わないほうが良いということでしょうか?
ありがとうございます!
line0,line1,line2はそれぞれ1200行程度です。
僕の書いたコードに関してですがmallocを使わないほうが良いということでしょうか?
- 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...
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数値の二次元配列の格納
- 返信数: 22
- 閲覧数: 10960
Re: 数値の二次元配列の格納
すみません
csvの中身に関してですが、txtファイルではなくexcelファイルで読み取ったものをそのまま書いていました...
ですので、txtファイルの形で書くと数値と数値の間に,が入ることになります
おそらく,の処理ができていないため正確に表記されなかったのかと思われます...
説明不足で申し訳ございませんでした。
csvの中身に関してですが、txtファイルではなくexcelファイルで読み取ったものをそのまま書いていました...
ですので、txtファイルの形で書くと数値と数値の間に,が入ることになります
おそらく,の処理ができていないため正確に表記されなかったのかと思われます...
説明不足で申し訳ございませんでした。
- 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]...
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数値の二次元配列の格納
- 返信数: 22
- 閲覧数: 10960
Re: 数値の二次元配列の格納
lineの値を確認するためにfor文の前にprintfを入れてみると0になっていました。
それだけではなくfor文内のlineを5に入れ替えたところ配列の全ての値が0になっていて格納もできていないことがわかりました。
どのようにすればよいでしょうか?
それだけではなくfor文内のlineを5に入れ替えたところ配列の全ての値が0になっていて格納もできていないことがわかりました。
どのようにすればよいでしょうか?
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数値の二次元配列の格納
- 返信数: 22
- 閲覧数: 10960
Re: 数値の二次元配列の格納
かずまさん
上記のコードを打ち込んだところコンパイルはできましたが動かしても何も出てきませんでした。
また、距離の計算に関してですが点と原点の距離ではなく点同士の距離の計算を行いたいと考えております。
説明不足で申し訳ございませんでした。
上記のコードを打ち込んだところコンパイルはできましたが動かしても何も出てきませんでした。
また、距離の計算に関してですが点と原点の距離ではなく点同士の距離の計算を行いたいと考えております。
説明不足で申し訳ございませんでした。
- 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...
- 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...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数ファイルの平均値
- 返信数: 9
- 閲覧数: 4298
Re: 複数ファイルの平均値
うまくいきました!
ありがとうございます。
コードのミスとしてはaverage(a,n)の定義の仕方がよくないというところですか?
ありがとうございます。
コードのミスとしてはaverage(a,n)の定義の仕方がよくないというところですか?
- 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:ファイルポインタの宣言(...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数ファイルの平均値
- 返信数: 9
- 閲覧数: 4298
Re: 複数ファイルの平均値
最初に一回オープンすればよいと考えました。
なので結果出力を最初に書いて以降をfor文でまとめましたが結果が出力されませんでした。
なので結果出力を最初に書いて以降をfor文でまとめましたが結果が出力されませんでした。
- 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...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 列での演算
- 返信数: 5
- 閲覧数: 3211
Re: 列での演算
1,4は上記の通り
2,3はプログラムを組んでいない
5は初心者です
2,3はプログラムを組んでいない
5は初心者です
- 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
となってほしい
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
となってほしい
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数のテキストファイルの扱い方
- 返信数: 13
- 閲覧数: 6384
Re: 複数のテキストファイルの扱い方
static char arrにすることで無事解決しました!
ありがとうございます!
ありがとうございます!
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数のテキストファイルの扱い方
- 返信数: 13
- 閲覧数: 6384
Re: 複数のテキストファイルの扱い方
printfをputsに置き換えずプログラムを動かしたところ、 自分の環境ではload errorが出ずに処理を行うことができました。 全角の数字や空白文字が混ざっているなど、処理対象のファイル名が間違っている可能性が考えられます。 3.txt以降の処理がうまくいかなかった原因についてですがおそらく一つ一つのファイルの分量が大きくchar arr[]の範囲が足らなかったのが影響していたようでした。しかし、テキストファイルは30近くあるのですがchar arr[]の[]内を100000といったかなり大きな値に変更したところ処理がされませんでした。おそらくchar arr[]の上限値に達したから...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数のテキストファイルの扱い方
- 返信数: 13
- 閲覧数: 6384
Re: 複数のテキストファイルの扱い方
みけCATさん
ご丁寧にご指摘ありがとうございます!
一度プログラムのほう動かしてみます!
ご丁寧にご指摘ありがとうございます!
一度プログラムのほう動かしてみます!
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数のテキストファイルの扱い方
- 返信数: 13
- 閲覧数: 6384
Re: 複数のテキストファイルの扱い方
ご返信ありがとうございます。
ご指摘していただいた通りprintfをputsに置き換えてプログラムを動かしたところ2.txtまでは処理がうまくいったのですが3.txt以降の処理が行われていませんでした。
この原因はプログラム側のほうにあったりしますでしょうか?
ご指摘していただいた通りprintfをputsに置き換えてプログラムを動かしたところ2.txtまでは処理がうまくいったのですが3.txt以降の処理が行われていませんでした。
この原因はプログラム側のほうにあったりしますでしょうか?
- 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...