今C言語でプログラミングを書いてるのですが、関数を自作した時に、行列を引数として参照する方法が分からないのでご教授していただきたいです。
main文内でdouble x[NUM][3]と、xx[NUM][3]という変数を定義して、
xx[NUM][3]を計算した後に、それぞれの計算結果をx[NUM][3]に入れるという作業をしています。
そこで、新しくtestという関数を作って、その中でそれぞれ計算したxx[NUM][3]をx[NUM][3]に入れるという作業を行いたいのですが、行列式を引数として参照する方法が分かりません。
ちなみに、NUMはdefineで100と定義しており、xx[NUM][3]はmain文内でforを100回まわして計算しています。
No.3ベストアンサー
- 回答日時:
void test(double x[][3],double xx[][3])
{
int i;
for (i=0;i<NUM;i++)
{
x[i][0] = xx[i][0];
x[i][1] = xx[i][1];
x[i][2] = xx[i][2];
}
}
void main(void)
{
double x[NUM][3];
double xx[NUM][3];
/*処理内容略*/
test(x,xx); /*呼び出し*/
/*処理内容略*/
}
No.5
- 回答日時:
ANo.2の
>仮引数の
>int i[][3]
>は
>int *i[3]
>でもかまいません。
は誤りです。
「int i[][3]」と「int *i[3]」では意味が全然違います。下手に「int *i[3]」に書き替えると、アプリケーションが例外を発生させて強制終了します。
回答者のcyacya2000さんは「配列とポインタ」の理解が足りないようです。
No.4
- 回答日時:
>仮引数の
>int i[][3]
>は
>int *i[3]
>でもかまいません。
本当ですか?
iは要素数3の配列へのポインタですので、
int (*i)[3]
でないとまずいのでは?
カッコがないと、iは要素数3のポインタの配列となり、
本来やりたいことができないと思います。
No.2
- 回答日時:
2次元配列(ここでいう行列)を引数で受け取るときには、列の大きさを教えてあげる必要があります。
以下に簡単なサンプルを示します。ここでは、列の大きさの3を指定しています。こんなので参考になりますか?
#include <stdio.h>
void sub(int i[][3]){
int x,y;
//表示してみる
for(x=0;x<2;x++){
for(y=0;y<3;y++){
printf("i[%d][%d]=%d\n",x,y,i[x][y]);
}
}
//変更してみる
for(x=0;x<2;x++){
for(y=0;y<3;y++){
i[x][y]=100;
}
}
}
int main(){
int i[2][3]={1,2,3,4,5,6};
int x,y;
sub(i);
//変更結果を表示してみる
for(x=0;x<2;x++){
for(y=0;y<3;y++){
printf("i[%d][%d]=%d\n",x,y,i[x][y]);
}
}
return 0;
}
仮引数の
int i[][3]
は
int *i[3]
でもかまいません。
No.1
- 回答日時:
たとえば
void test(double x[NUM][3], double xx[NUM][3])
{
/* xx から x にコピー */
}
でいいのでは. 呼び出すときは
test(x, xx);
みたいな感じ.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP カラーミーショップのSmartyでの文字列抜き出し 2 2022/05/06 11:51
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
整数データの配列から同じ値の...
-
C言語での引数の省略方法
-
次のプログラムを教えてくださ...
-
C言語での奇数の和
-
複数桁10進数の*桁目だけを抽出...
-
ゴールドバッハの予想のプログラム
-
c言語の配列を使ってサイコロを...
-
C言語 エラーの原因がわからな...
-
VB6でAddressOfを使った良いサ...
-
実数の整数部,小数部の取得
-
gccで64ビット整数
-
acceptをalarmでタイムアウトさ...
-
【C++】関数ポインタの使い方
-
シグマ公式・・・C言語
-
「{ } で囲むだけ」は正しい?
-
(int *)の意味
-
へんな現象
-
アスタリスクで正方形
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報