2015-12-02 50 views
1

我將如何修改此代碼,以便我可以輸入不止一個係數?如何輸入多個動態數組整數?

我想能夠輸入類似「3 2 1」的東西,並且空格不應該影響我的用戶輸入,但我不知道如何執行此操作。

這是我的代碼至今:

#include <iostream> 
using namespace std; 

int *foil(int A[], int B[], int co, int coo) 
{ 
    int *product = new int[co+coo-1]; 

    for (int i = 0; i<co+coo-1; i++) 
    product[i] = 0; 

    for (int i=0; i<coo; i++) 
    { 
    for (int j=0; j<co; j++) 
     product[i+j] += A[i]*B[j]; 
    } 

    return product; 
} 

void printPoly(int poly[], int co) 
{ 
    for (int i=0; i<co; i++) 
    { 
     cout << poly[i]; 
     if (i != 0) 
     cout << "x^" << i ; 
     if (i != co-1) 
     cout << " + "; 
    } 
} 


int main() 
{ 
    int co, coo; 

    int *A; 
    A=new int[co]; 

    int *B; 
    B=new int[coo]; 



    cout << "How many coefficients are in the first poly?: "; 
    cin >> co; 

    cout << "What are the coefficients? (Lowest power first): "; 
    cin >> *A; 

    cout << "How many coefficients are in the second poly?: "; 
    cin >>coo; 

    cout << "What are the coefficients? (Lowest power first): "; 
    cin >>*B; 

    printPoly(A, coo); 
    cout << "\n"; 
    cout << "times" << endl; 
    printPoly(B, co); 
    cout << "\n"; 
    cout << "-----" << endl; 
    int *product = foil(A, B, co, coo); 
    printPoly(product, co+coo-1); 

    return 0; 
} 

它輸出這樣的:

How many coefficients are in the first poly?: 3 
What are the coefficients? (Lowest power first): 3 2 1 
How many coefficients are in the second poly?: What are the coefficients? (Lowest power first): 3 + 0x^1 
times 
1 + 0x1 + 0x^2 
----- 
3 + 0x^1 + 0x^2 + 0x^3 

我希望它輸出這樣的:

How many coefficients are in the first poly?: 3 
What are the coefficients? (Lowest power first): 3 2 1 
How many coefficients are in the second poly? 3 
What are the coefficients? (Lowest power first): 1 2 1 
3 + 2x^1 + 1x^2  
times  
1 + 2x^1 + 1x^2  
-----­­­­­  
3 + 8x^1 + 8x^2 + 4x^3 + 1x^4 

回答

1

你需要以循環方式輸入輸入。 這裏是你如何做到這一點。

cout << "How many coefficients are in the first poly?: "; 
    cin >> co; 

    cout << "What are the coefficients? (Lowest power first): "; 
    for(int i=0;i<co;i++) 
    cin >> *(A+i); 

    cout << "How many coefficients are in the second poly?: "; 

    cin >>coo; 

    cout << "What are the coefficients? (Lowest power first): "; 
    for(int i=0;i<coo;i++) 
    cin >>*(B+i); 

    printPoly(A, coo); 
    cout << "\n"; 
    cout << "times" << endl; 
    printPoly(B, co); 
    cout << "\n"; 
    cout << "-----" << endl; 
    int *product = foil(A, B, co, coo); 
    printPoly(product, co+coo-1); 

    getch(); 
    return 0; 

這裏是輸出圖像enter image description here

+0

謝謝!它現在有效! – epichicken07