2016-07-08 16 views
1

私は異なるサイズのバッファを2つ持っています。私は、2つの合計に等しい3つ目のバッファを取得する必要があります。forループの2つのバッファの合計

私はそれをやっている方法です(私はそれが間違っている知っている)

for (i = 0; i < num; i += c){ 
    for (i2 = 0; i2 < num2; i2 += c2){ 

     printf("%d ",(buf[i]+buf2[i2])/2); 

     } 
} 

私は両方のループ作業のために聞かせたい、i2のループを終了し、次にiを1反復する必要はありません

`for (i = 0, i2=0; i < num, i2 < num2; i+=c, i2+=c)` 

私はそれがうまくいくとは思わない:私はそのようなのための単一を使用するので、もしからnum2> NUMので、同時に、私はそれを行うにはどのようには考えています。

私はのようなものを右の上に書いたコードを使用して追加することを考えていた:i = NUM​​ BUF [i]は事前に0

おかげと等しくなってみましょうするとき。

+0

。 –

答えて

0

あなたは小さな配列の終わりに到達するまで反復して、より大きな配列のために以降継続することができます。私はそれがあるはず知りませんでした申し訳ありません完了

int i; 
int lower = num > num2 ? num2 : num; 
int upper = num > num2 ? num : num2; 
int buf3[upper]; 

for (i = 0; i < lower; ++i) { 
    buf3[i] = buf[i] + buf2[i]; 
} 

for (i; i < upper; ++i) { 
    if (upper == num2) { 
     buf3[i] = buf2[i]; 
    } 
    else { 
     buf3[i] = buf[i]; 
    } 
} 
+0

それを考えなかった、私は気が気にしない。 多くの感謝! –

+0

もう1つ、私は問題を抱えていた。 buf3 [i] + = buf2 [i]; および buf3 [i] + = buf [i]; +を削除して機能しました。私は理由が分からない –

+0

あなたは正しいですか? 'buf3 [i] + = x'は' buf3 [i] 'に' x'を追加するだけです。 –