ページ 1 / 1
質問
Posted: 2022年2月18日(金) 23:26
by Yuhiwa
この問題をコンパイルしたら、0としか出てこないので、すべてを合計したいのですが、どうしたらいいでしょうか?
23:40までに回答をお願いしてもいいでしょうか>
コード:
#include<stdio.h>
#define LEN 5
void array_sumof(int *vc,int no,int *psum);
int main(void){
int ary[LEN];
int i, sum=0;
printf("整数を%d回入力してください。\n",LEN);
for(i=0;i<LEN;i++){
printf("[%d]> ",i); scanf("%d",&ary[i]);
}
array_sumof(&ary[i],LEN,&sum);
printf("合計 : %d\n",sum);
return 0;
}
void array_sumof(int *vc,int no, int *psum){
int i;
for(i=0;i<no;i++){
psum+=*vc;
}
}
Re: 質問
Posted: 2022年2月18日(金) 23:35
by Yuhiwa
出来れば返信を多くお願いします。
※今日中の課題の為
Re: 質問
Posted: 2022年2月18日(金) 23:47
by Yuhiwa
見てくれた人でコンパイルして、0にならない方法がわかる方い教えていただけると助かります。
Re: 質問
Posted: 2022年2月19日(土) 00:02
by みけCAT
0にならないようにするには、psum ではなく、psum「が指している変数」を書き換えるようにするといいと思います。
コード:
void array_sumof(int *vc,int no, int *psum){
int i;
for(i=0;i<no;i++){
// psumを書き換える
// psum+=*vc;
// psumが指している変数を書き換える
*psum+=*vc;
}
}
また、配列の先頭要素 *vc を no 回足すのではなく、配列の各要素 vc[i-no] を足すようにしたほうがよさそうですね。
オフトピック
「今日中」に間に合わないようにするために待ったのではなく、単に質問を見たタイミングが遅かっただけです。
Re: 質問
Posted: 2022年2月19日(土) 00:11
by Yuhiwa
ありがとうございます。でもまだ0になります。
みけCAT さんが書きました: ↑2年前
0にならないようにするには、psum ではなく、psum「が指している変数」を書き換えるようにするといいと思います。
コード:
void array_sumof(int *vc,int no, int *psum){
int i;
for(i=0;i<no;i++){
// psumを書き換える
// psum+=*vc;
// psumが指している変数を書き換える
*psum+=*vc;
}
}
また、配列の先頭要素 *vc を no 回足すのではなく、配列の各要素 vc[i-no] を足すようにしたほうがよさそうですね。
オフトピック
「今日中」に間に合わないようにするために待ったのではなく、単に質問を見たタイミングが遅かっただけです。
Re: 質問
Posted: 2022年2月19日(土) 00:40
by box
コード:
#include <stdio.h>
#define LEN (5)
void array_sumof(int *vc, int no, int *psum);
int main(void)
{
int ary[LEN], i, sum=0;
printf("整数を%d回入力してください。\n", LEN);
for (i = 0; i < LEN; i++) {
printf("[%d]> ", i); scanf("%d", &ary[i]);
}
array_sumof(ary, LEN, &sum);
printf("合計 : %d\n", sum);
return 0;
}
void array_sumof(int *vc, int no, int *psum)
{
int i;
for (i = 0; i < no; i++) {
*psum += vc[i];
}
}
Re: 質問
Posted: 2022年2月19日(土) 07:23
by みけCAT
Yuhiwa さんが書きました: ↑2年前
ありがとうございます。でもまだ0になります。
合計が0になるような入力を与えると、0になりますね。
https://wandbox.org/permlink/D9vuxLtdErngiuIM
オフトピック
訳:検証して正しい合計が出ることを確認しているので、「0になる」とだけ言われても原因はわかりかねます。
Re: 質問
Posted: 2022年2月19日(土) 07:32
by Yuhiwa
皆さんありがとうございます!
解決しました。