現在あるデータから数値を引用し計算する処理を行っていますが計算結果を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.2
- 回答日時:
> return(R[z],O[z]);
これだと、O[z]しか返さないですが。
もしかして、二つの値を同時に返したいと思ってるとか。
No.3
- 回答日時:
関数は基本的にひとつの値しか返せないので、複数の帰り値を持ちたいときに考えられる簡単な方法は……
1.引数で返す
#1の方が言っている方法です。
2.帰り値を構造体にする。
たとえば、二つのintを返したいのなら
typedef struct ret{
int ret1,ret2;
}ret_t;
とでもして、この構造体を帰り値に使う。
という方法が思いつきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
C++ でファイルを消す関数(??)
-
CとFORTRANの計算速度はどちら...
-
VBAの再計算が反映されない件に...
-
Javaでのある数の小数点乗に...
-
EXCELなどで「返す」という表現
-
変化させるセルが変化しない
-
コピーマクロを「値のみコピー...
-
再帰呼び出しを用いるnPk,nCk ...
-
計算式の文字列を解析して自分...
-
機械の扱える最も0に近い実数は?
-
OpenGLでの軸回転について
-
傾いた四角形内の範囲の条件式
-
Androidでのメトロノーム開発
-
排他的論理和 BCC(水平パリテ...
-
C言語で、べき乗の計算方法につ...
-
剰余の計算方法
-
c言語でsinx=0(0<x<5)をニュー...
-
C言語で、べき乗の計算をするプ...
-
Xwindowのプログラミング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報