Solved

Arrays Pointers and Functions II

Posted on 2004-10-19
4
203 Views
Last Modified: 2010-04-01
I am trying to learn about pointers and arrays. In this program I playing with several concepts, however, I dont have the funtion right (I only included 1 of several). What am I doing wrong? Thanks much, Annie
#include <iostream>
#include "inputarray.cpp"
           /*struct input{double numCostPerPart; int numPublished;
            //double numSalCost; int numSold; double numRoyalPercent;
           double numHolePrice;};*/
#include "outputarray.cpp"
          /*struct output
          {double numTotalCost; double numSalValue; double numGrossProfit;
           double numRoyalty; double numProfit;};*/

using namespace std;
const int SIZE =3;  
void makeCalculations(input ainput[], int nSize);

int main()
{
      int n;
      
      input ainput[SIZE];    //declare array input
      output aoutput[SIZE];  //decalre array output
      
      
      for(n=0; n<SIZE; n++)  //loops  array
      {
            cout<<endl;

            cout<<"Enter cost of parts: ";
            cin>>ainput[n].numCostPerPart;
            cout<<"Enter number of parts published: ";
            cin>>ainput[n].numPublished;
            cout<<"Enter salvation cost of parts: ";   //inputs
            cin>>ainput[n].numSalCost;
            cout<<"Enter number of parts sold: ";
            cin>>ainput[n].numSold;
            cout<<"Enter Royalty Percentage: ";
            cin>>ainput[n].numRoyalPercent;
            cout<<"Enter wholesale cost of parts: ";
            cin>>ainput[n].numHolePrice;
      }
      cout << endl;
      makeCalculations(ainput, 1);
      
      for( n=0; n<SIZE; n++)  //loops  output array
      
      {
      cout << "Total Cost"<<aoutput[n].numTotalCost<<endl;
      cout <<"Salvation Value" <<aoutput[n].numSalValue<<endl;   // outputs
      cout <<"Gross Profit" << aoutput[n].numGrossProfit<<endl;
      cout <<"Royalty" << aoutput[n].numRoyalty<<endl;
      cout <<"Profit" << aoutput[n].numProfit<<endl;
      }
      system("pause");
      return EXIT_SUCCESS;
}

 
  void makeCalculations(input ainput[], int nSize)
  {

      double totalCost = 0;
     
        for (int n = 0; n < nSize; ++n)
        {
          totalCost += ainput[n].numCostPerPart;
             
         }
            ainput[n].numCostPerPart* totalCost;
  }
0
Comment
Question by:bananaamy
  • 2
4 Comments
 
LVL 4

Expert Comment

by:pankajtiwary
Comment Utility
Hi bananaamy,

I found many errors in the code. It seems to be written in Dev-C++ (just a thought). In the function why is the line 'ainput[n].numCostPerPart* totalCost;' out of the for loop? I think it should be calculated as a part of the loop. The error comes because the 'n' used in the line is finishes as soon as the loop finished. So, I take it inside the loop.

Please explain the problem that you are facing. Are you getting wrong results??

Cheers!
0
 
LVL 17

Expert Comment

by:rstaveley
Comment Utility
Your makeCalculations doesn't store totalCost anywhere.

Try changing...

    ainput[n].numCostPerPart* totalCost

...to...

    ainput[n].numCostPerPart = totalCost;

Note also that you are passing size as 1 to this fnction in the calling code, which means that it will only operate on the first index of the array.
0
 

Author Comment

by:bananaamy
Comment Utility
I am trying to learn this languge and have been experimenting with it for about 4 weeks. What I am tring to do is to see how  several things work together(pointers,arrays and functions). . I want to enter in data into an "input array" a specific amount of times,  I then want to pass the value to a function, preform several calculations, and pass the value of the output of that function to the "output array". I want the output array to display the answers to my calculations. What  I cant figure out is  how to make my functions work with pointers.
0
 
LVL 17

Accepted Solution

by:
rstaveley earned 500 total points
Comment Utility
Start by passing your output array as a parameter to makeCalculations. When you pass an array as a parameter to a function, it is "passed by reference", which means that your function isn't passed a copy of the array, it is passed a reference to the array itself.
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now