忙しい現代人の腰&肩のお悩み対策!

下記に記述してあるプログラムを1~100までの2の倍数の和と積を求め、但し倍数の個数Nは、N=3に変えたいのですがどうすればいいのかわかりません。
どなたかご教授お願いします。

/* prog.c */
#include <stdio.h>
#define N 5
main()
{
static int a[N]={1,2,3,4,5};
int S[N],P[N];
int i;
a[0]=i;
S[0]=a[0];
P[0]=a[0];
for(i=1;i<=(N-1);i++){
a[i]=i+1;
S[i]=S[i-1]+a[i];
P[i]=P[i-1]*a[i];
}
for(i=0;i<=(N-1);i++){
printf("i=%d,a[%d]=%d,S[%d]=%d,P[%d]=%d\n",i,i,a[i],i,S[i],i,P[i]);
}
}

A 回答 (2件)

同じく、よくわかりませんが・・


次のような意味かな?
#include <stdio.h>
#define N 3
int main(void){
static int a[N];
int S[N],P[N];
int i;
P[0]=S[0]=a[0]=2;
for(i=1;i<N;i++){
a[i]=a[i-1]+2;
S[i]=S[i-1]+a[i];
P[i]=P[i-1]*a[i];
}
for(i=0;i<N;i++){
printf("i=%d,a[%d]=%d,S[%d]=%d,P[%d]=%d\n",i,i,a[i],i,S[i],i,P[i]);
}

return 0;
}
    • good
    • 0

質問の意図がつかめませぬ……。


このプログラムは……iが初期化されてないし^^;
i=1で初期化したと仮定すると、
Sには1+2+…が、
Pには1*2*…が入る、よね?
hm...あぁ、forでiを初期化してるのね。
a[0],S[0],P[0]が不定になってるよ。

で……
「1~100までの2の倍数の和と積を求め」これは…
1~100を2で割った余りが0なら2の倍数だ。
あるいは、2の倍数とはすなわち偶数だ。
和と積は、このプログラムで求めてるからわかるよね?

「但し倍数の個数Nは、N=3に変えたい」
ごめん、これが意味不明。
「倍数の個数」ってナニ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング