I*V = 3*V3 + 4*V4 + 5*V5 + 6*V6 + 7*V7 + 8*V8 + 9*V9 + 10*V10 + 11*V11 + 12*V12
以上公式
將V3~V12設為陣列並寫入類別
將設定好的數放入
例如
(1,2,3,4,5)
(1,2,3,4)
(1,2,3)
但是在輸出後沒用到的陣列就別輸出了
例如
(1,2,3,4,5)
==>3*V3 + 4*V4 + 5*V5 + 6*V6 + 7*V7 = 3*1+4*2+5*3+6*4+7*5
(1,2,3,4)
==>3*V3 + 4*V4 + 5*V5 + 6*V6 = 3*1+4*2+5*3+6*4
該怎麼寫?
另解:
以上公式
將V3~V12設為陣列並寫入類別
將設定好的數放入
例如
(1,2,3,4,5)
(1,2,3,4)
(1,2,3)
但是在輸出後沒用到的陣列就別輸出了
例如
(1,2,3,4,5)
==>3*V3 + 4*V4 + 5*V5 + 6*V6 + 7*V7 = 3*1+4*2+5*3+6*4+7*5
(1,2,3,4)
==>3*V3 + 4*V4 + 5*V5 + 6*V6 = 3*1+4*2+5*3+6*4
該怎麼寫?
另解:
#include <cstdlib> #include <iostream> #include <stdarg.h> using namespace std; int IV2(int *V3, ...) { int i, ans=0; int *num; va_list vl; va_start(vl, V3); ans = 3*(*V3); i=3; cout<<i<<"*"<<"V"<<i; do { i++; num = va_arg(vl, int*); if(num == NULL)goto end; ans = ans + i*(*num); cout<<" + "<<i<<"*"<<"V"<<i; }while(num != NULL); end: va_end(vl); cout<<" = "; cout<<ans<<endl; } int main() { int v[5] = {1,2,3,4,5}; IV2(&v[0], &v[1], &v[2], &v[3], NULL); IV2(&v[0], &v[1], &v[2], &v[3], &v[4], NULL); system("PAUSE"); return 0; }
沒有留言:
張貼留言