简体   繁体   中英

How do I input more than one dynamic array integer?

How would I modify this code so that I can enter in more than just one coefficient?

I am suppose to be able to enter in something like "3 2 1" and the spaces shouldn't affect my user input but I'm not sure how to do this.

This is the code I have so far:

#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;
}

It outputs this:

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

I want it to output it like this:

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

you need to take the inputs in a loop. here is how you can do it.

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;

Here is the output image 在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM