現在あるデータから数値を引用し計算する処理を行っていますが計算結果を2種類の配列に入力したいです。
簡単にいいますとまずある関数をつくりそこでデータから引用した数値を計算します。ここで計算結果が2つ出てくるんですがこれらの値を2種類の配列に入力したいです。
関数を使わずに計算処理を長く書けばうまくいくんですが長文のため関数を使って短くしたいです。
いい方法や訂正があればお願いいたします。
----------------------------------------------
double Radius(int z,int LOOP)
{
for(i=0;i<3;i++)
{
A[i]=txx[i+z+LOOP];
B[i]=txy[i+z+LOOP];
}
…
~計算処理~
…
R[z]=sqrtl((A[2]-AX)*(A[2]-AX)+(B[2]-AY)*(B[2]-AY));
E=sqrtl(A12*A12+B12*B12);
if(E==0 || R[z]==0)
{
O[z]=0;
}
else
{
O[z]=E/R[z];
}
}
return(R[z],O[z]);
}
のようにデータから数値をA[i]、B[i]に入力しこれらを計算処理します。そしてR[z],O[z]を求めてこれらを下のように配列に入力したいです。
R[0]=Radius(0,loop);
…
R[2]=Radius(2,loop);
O[0]=Radius(0,loop);
…
O[2]=Radius(2,loop);
ちなみにこのプログラムでは関数内で計算はできているんですがその後配列にうまく数値が入りませんでした。
No.1ベストアンサー
- 回答日時:
関数Radiusを
double Radius(int, int)型から
void Radius(int, int, double* pdr, double* pdo)
型とし、
return(R[z],O[z])を
*pdr = R[z];
*pdo = O[z];
return;
に変更。
呼び出すところでは
Radius(0,loop,&(R[0]),&(O[0]))
と変えてみるのはどうでしょう。
ポインタを使った解決法です。
No.3
- 回答日時:
関数は基本的にひとつの値しか返せないので、複数の帰り値を持ちたいときに考えられる簡単な方法は……
1.引数で返す
#1の方が言っている方法です。
2.帰り値を構造体にする。
たとえば、二つのintを返したいのなら
typedef struct ret{
int ret1,ret2;
}ret_t;
とでもして、この構造体を帰り値に使う。
という方法が思いつきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vb6.0で三角関数が使えない
-
変化させるセルが変化しない
-
やってみてもわからないので教...
-
C# 計算処理中に実行中ウィン...
-
MATLABの積分について
-
C言語で、漸化式を使ってパスカ...
-
スライムがつぶれていく様子を...
-
絶対ち
-
VBAの再計算が反映されない件に...
-
JavaScriptでSQLiteの値を使いたい
-
Excel VBAの残業時間の合計計算...
-
VBでReplace
-
Java 電卓の連続計算
-
あのコンピュータアーキテクチ...
-
60進数の四則計算
-
バッチファイルでウインドウを...
-
スパイダソリティアの問題
-
MathematicaのNDSolveで連立常...
-
65536は2の何乗なのでしょうか?
-
素数を自動的に作る
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
C言語の課題で、1年の秒数を計...
-
バッチファイルでウインドウを...
-
骨折リスク評価のFRAXについて...
-
変化させるセルが変化しない
-
CとFORTRANの計算速度はどちら...
-
なぜオーバーフローになるので...
-
数値計算の高速化 (cos, sin, exp)
-
モジュラス103の計算とは何でし...
-
C# 計算処理中に実行中ウィン...
-
モジュロ
-
引き放し法による除算アルゴリ...
-
60進数の四則計算
-
C言語についてです。 再帰を使...
-
Perlで時間の計算
-
CRC8を教えてください
-
傾いた四角形内の範囲の条件式
おすすめ情報