
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C++で指定文字列のカウント方法...
-
char型2つを結合し、short型に...
-
C言語でファイルから複素数の値...
-
C言語プログラムで、ループがう...
-
[C言語 Windows] Visual Cでの...
-
printf による16進表示について
-
#defineが使用するメモリ領域に...
-
VC++でSQLへSELECT文を送ったの...
-
C言語のtime_tに関して
-
[C]セグメンテーションエラー:...
-
複数桁10進数の*桁目だけを抽出...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
long型の定数の末尾にLを付ける...
-
main.c:7:43: warning: implici...
-
プログラムでの数字につく”f”の...
-
2÷3などの余りについて
-
DWORDの実際の型は何でしょうか
-
構造体の勉強中です 合計点の高...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
【C言語】全角文字の配列を、全...
-
#defineが使用するメモリ領域に...
-
エラーについて質問です。
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
プログラミングの授業の課題です
-
csvファイルの読み取り
-
Cプログラムについて
-
strtok
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
ポインタと配列
-
構造体メンバの初期化
-
言語Cについて教えていただけま...
-
C++で指定文字列のカウント方法...
-
小数の指数表示
-
VC++でSQLへSELECT文を送ったの...
-
reallocでエラー
-
ファイル
おすすめ情報