参照渡しについて
void cross_product(double *a,double *b,double *c) でCのijk成分(c[0]がi,c[1]がj,c[2]がk成分)を計算してprintf("C = %lfi+%lfj+%lfk\n",C[0],C[1],C[2]); で表示させたいのですが、以下のようなエラーが出て実行できません。どこが悪いのでしょうか。
ここからエラー内容
error C2440: '関数': 'double' から 'double *' に変換できません。
warning C4024: 'cross_product': の型が 3 の仮引数および実引数と異なります。
error C2109: 配列または、ポインターでない変数に添字が使われました。
warning C4473: 'printf': 書式文字列として渡された引数が不足しています
プレースホルダーとそのパラメーターには 3 の可変個引数が必要ですが、0 が指定されています。
不足している可変個引数 1 が書式文字列 '%lf' に必要です。
ここまでエラー内容。
理想としてはC=3i+4j+5k のように表示させたいです。
#include<stdio.h> void cross_product(double *,double *,double *); double A[3],B[3],C[3]; int main(vod) { int i,n; double C; n= 3; for(i = 0; i<n; i++){ printf("A[%d]を入力してください:",i); scanf("%lf", &A[i]); } for(i = 0; i<n; i++){ printf("B[%d]を入力してください:",i); scanf("%lf", &B[i]); } cross_product(A,B,C); printf("C = %lfi+%lfj+%lfk\n",C[0],C[1],C[2]); return 0; } void cross_product(double *a,double *b,double *c) { c[0] = (a[1]*b[2]-a[2]*b[1]); c[1] = (a[2]*b[0]-a[0]*b[2]); c[2] = (a[0]*b[1]-a[1]*b[0]); }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/26 15:51