- 締切済み
C言語のポインタの問題です。 解答お願いします。
関数main()の3行目にある代入文 p = func1(q); で変数pに代入される値を求めなさい。 double func1 (double *p){ double s; for( s=0 : *p=-1: p++){ s += *p; } return(s); } int main(){ double p,q[]={-9,-7,-5,-3,-1} p=func1(q); }
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- wormhole
- ベストアンサー率28% (1626/5665)
#2です。 見落としていましたが、他の回答者さんが書かれているようにコンパイルエラーになりますね。
- asuncion
- ベストアンサー率33% (2127/6289)
それはそうとして、サイトリニューアルの結果、 ソースコードのインデントが活きているではないか! これはちょっとうれしい。
- asuncion
- ベストアンサー率33% (2127/6289)
>統べてた為合わせたものです。 すべて足し合わせたものです。
- asuncion
- ベストアンサー率33% (2127/6289)
質問者さんのコードではコンパイルが通らないので、 勝手に下記のとおりに解釈して実行したところ、 -24.000000 という結果を得ました。 これは、main関数で定義しているdouble型の配列の要素のうち、 最後の-1以外を統べてた為合わせたものです。 #if 0 関数main()の3行目にある代入文 p = func1(q); で変数pに代入される値を求めなさい。 #endif #include <stdio.h> double func1(double *p) { double s; for (s = 0; *p != -1; p++) { s += *p; } return s; } int main(void) { double p, q[] = { -9, -7, -5, -3, -1 }; p = func1(q); printf("p=%lf\n", p); return 0; }
- wormhole
- ベストアンサー率28% (1626/5665)
質問に書かれているコードだと セグメンテーションエラー等で異常終了するので変数pに代入されることはない。 ってことになるかと。
- maiko04
- ベストアンサー率17% (345/1956)
1.コンパイルエラー 2.実行時エラー