こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2020-08-02 15:13:47

QNo.9780456

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

#2です。

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

投稿日時 - 2020-08-02 19:42:44

ANo.5

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

投稿日時 - 2020-08-02 18:05:45

ANo.4

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

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

投稿日時 - 2020-08-02 18:03:42

ANo.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;
}

投稿日時 - 2020-08-02 18:02:40

ANo.2

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

投稿日時 - 2020-08-02 16:20:43

ANo.1

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

投稿日時 - 2020-08-02 16:18:58

あなたにオススメの質問