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も見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
空白を含んだ文字列がうまく格...
-
#defineが使用するメモリ領域に...
-
C言語のプログラムで、途中で止...
-
Ç言語でファイルサイズを変更す...
-
csvファイルの読み取り
-
プログラミングの授業の課題です
-
Linuxで入力待ちなしkeyread関...
-
「指定されたキャストは有効で...
-
intとlongは同じ?
-
マイナスからプラスへ転じた時...
-
プログラムでの数字につく”f”の...
-
c言語のmまたはnが13以上となる...
-
str系関数を使わずに二つの文字...
-
DWORDの実際の型は何でしょうか
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
10個出力で改行したいのですが...
-
2進数の1の数を数える問題
-
break文でループを一気に抜ける...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
#defineが使用するメモリ領域に...
-
C言語のプログラムで、途中で止...
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
プログラミングの授業の課題です
-
【C言語】全角文字の配列を、全...
-
構造体メンバの初期化
-
Cでファイルの行数をカウントす...
-
char型2つを結合し、short型に...
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
終了条件Ctrl+zについて,結果表...
-
Ç言語でファイルサイズを変更す...
-
エラーについて質問です。
-
C言語でのCSVファイルの読み出...
-
C++で指定文字列のカウント方法...
-
VC++でSQLへSELECT文を送ったの...
-
fscanfの使い方
-
ファイル操作で全角空白を消す
おすすめ情報