![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
C言語でファイルから複素数の値を読み込んで表示させるプログラムを作っています。
扱う値が実数のみの場合に関しては問題ないのですが、
複素数を読み込む時には、実数のみの場合や、虚数のみの場合もあり、
どう読み込んでいいか分からず、アドバイスを戴きたいと考えております。
それ以外のデータの取り扱い自体は問題ないと思います。
下は実数の値を読み込むプログラムとデータセット、
それを拡張した複素数の値を読み込むプログラムとデータセットになっております。
アドバイス、よろしくお願いいたします。
--------------------------------------------------------------------------------
/*データセット sample.dat*/
4 3.5 -2 9
12 37.8 65.4 0.4
79.5 3 23.4 5.3
--------------------------------------------------------------------------------
/*プログラム本体 read.c*/
#include <stdio.h>
#include <stdlib.h>
#define LOW 3
#define COLUMN 4
int main(void){
int i,j;
double x[LOW][COLUMN];
if((fp = fopen("sample.dat","r"))==NULL){
printf("The file is not found. : sample.dat \n");
exit(1);
}
for(i=0;i<LOW;i++){
for(j=0;j<COLUMN;j++){
fscanf(fp,"%lf",&x[i][j]);
}
}
for(i=0;i<LOW;i++){
for(j=0;j<COLUMN;j++){
printf("%lf\n",x[i][j]);
}
}
return 0;
}
--------------------------------------------------------------------------------
/*データセット sample_C.dat*/
4+i i -2 9+i
12 37.8-i 65.4i 0.4+i
79.5 3+i 23.4 5.3
--------------------------------------------------------------------------------
/*プログラム本体 read_C.c*/
#include <stdio.h>
#include <stdlib.h>
#define LOW 3
#define COLUMN 4
typedef struct{
double re;
double im;
}C_double;
int main(void){
int i,j;
C_double x[LOW][COLUMN];
if((fp = fopen("sample_C.dat","r"))==NULL){
printf("The file is not found. : sample_C.dat \n");
exit(1);
}
/*改良したい読み込み部分*/
for(i=0;i<LOW;i++){
for(j=0;j<COLUMN;j++){
fscanf(fp,"%lf",&x[i][j].re);
fscanf(fp,"%lf",&x[i][j].im);
}
}
for(i=0;i<LOW;i++){
for(j=0;j<COLUMN;j++){
if(x[i][j].re!=0){
if(x[i][j].im!=0){
printf("x[%d][%d]=%lf+%lfi\n",i,j,x[i][j].re,x[i][j].im);
}
else{
printf("x[%d][%d]=%lf\n",i,j,x[i][j].re);
}
}
else{
if(x[i][j].im!=0){
printf("x[%d][%d]=%lfi\n",i,j,x[i][j].im);
}
else{
printf("x[%d][%d]=0\n",i,j);
}
}
}
}
return 0;
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
念の為もう一度確認するけど, フォーマットは本当にそれでいい? 虚部が i の前にあったりしない? 実装上そっちの方が実は簡単なんだけど....
ま, いずれにしてもフォーマットが決まっていれば努力と根性だけど.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語でファイルから複素数の値...
-
受信データから必要な部分のみ...
-
2進数の表示
-
矢印キーを押下してコンソール...
-
文字列を分解して特定の項目を...
-
【C言語】全角文字の配列を、全...
-
プログラムの実行時に'<'でリダ...
-
信頼区間の1.96や1.65ってどこ...
-
複数桁10進数の*桁目だけを抽出...
-
数学 確率変数Xは、X=2またはX...
-
反転した数値を表示させるやり方
-
2÷3などの余りについて
-
中学生で数学です。 √84nが自然...
-
「Aに対するBの割合」と「Aに対...
-
ボール同士の衝突
-
std::set<int> で、ある値が何...
-
変数とパラメータとは違うもの...
-
漢字のソートについて
-
charでの計算?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語で複数列のデータを1列の...
-
printf による16進表示について
-
C言語のプログラムで、途中で止...
-
char型2つを結合し、short型に...
-
矢印キーを押下してコンソール...
-
#defineが使用するメモリ領域に...
-
【C言語】全角文字の配列を、全...
-
終了条件Ctrl+zについて,結果表...
-
空白を含んだ文字列がうまく格...
-
プログラミングの授業の課題です
-
リストの作成と出力(C言語)
-
c言語で文書を読み込み、単語の...
-
構造体メンバの初期化
-
エラーについて質問です。
-
reallocでエラー
-
C言語でのCSVファイルの読み出...
-
なぜ無限ループになるかが分か...
-
Cプログラムについて
-
C++で指定文字列のカウント方法...
おすすめ情報