• 締切済み

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); }

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.6

#2です。 見落としていましたが、他の回答者さんが書かれているようにコンパイルエラーになりますね。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.5

それはそうとして、サイトリニューアルの結果、 ソースコードのインデントが活きているではないか! これはちょっとうれしい。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

>統べてた為合わせたものです。 すべて足し合わせたものです。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

質問者さんのコードではコンパイルが通らないので、 勝手に下記のとおりに解釈して実行したところ、 -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)
回答No.2

質問に書かれているコードだと セグメンテーションエラー等で異常終了するので変数pに代入されることはない。 ってことになるかと。

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.1

1.コンパイルエラー 2.実行時エラー

関連するQ&A