C++ Array Question

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zamaam0728
    New Member
    • Mar 2010
    • 13

    #1

    C++ Array Question

    I am trying to take the following instructions and make it a working code. The instructions were to use appropriate data types, and all dara types are represented as either numeric or string.

    start
    string name
    string address
    num item
    num quantity
    num price
    num SIZE = 6
    num VALID_ITEM [SIZE] = 106, 108, 307, 405, 457, 688
    num VALID_ITEM_PRIC E [SIZE] = 0.59, 0.99, 4.50, 15.99, 17.50, 39.00
    num sub
    string foundIt = “N”
    string MSG_YES = “Item available”
    string MSG_NO = “Item not found”
    get name, address, item, quantity
    sub = 0
    while sub < SIZE
    if item = VALID_ITEM [sub] then
    foundIt = “Y”
    price = VALID_ITEM_PRIC E [sub]
    endif
    sub = sub + 1
    endwhile
    if foundIt = “Y” then
    print MSG_YES
    print quantity, “ at “ , price, “ each”
    print “Total “, quantity * price
    else
    print MSG_NO
    endif
    stop

    My code...
    Code:
    #include <iostream>
    #include <string>
    
    using std::cout;
    using std::cin;
    using std::endl;
    using std::string;
    
    
    int main()
    {
    	//declare variables and arrays
    	string name = "";
    	string address = "";
    	int item = 0;
    	int quantity = 0;
    	double price = 0.00;
    	const int SIZE = 6;
    	int VALID_ITEM[SIZE] = {106, 108, 307, 405, 457, 688};
    	double VALID_ITEM_PRICE[SIZE] = {0.59, 0.99, 4.50, 15.99, 17.50, 39.00};
    	int sub;
    	string foundIt = "N";
    	string MSG_YES = "Item available";
    	string MSG_NO = "Item not found";
    	
    	getline (cin, name);
    	getline (cin, address);
    	
    
    	sub = 0;
    
    	while (sub < SIZE)
    	{
    		if (item = VALID_ITEM[sub])
    		{
    			foundIt = "Y";
    			price = VALID_ITEM_PRICE[sub];
    		}	//end if
    
    		sub = sub + 1;
    
    		// end while
    
    		if (foundIt = "Y")
    		{
    			cout << MSG_YES <<;
    			cout << quantity << "at " << price << " each"
    				 << "Total " << quantity * price;
    		}
    		else 
    			cout << MSG_NO << endl;
    	}	//end if
    
    }	//end main function
    I have two errors:

    references line 44 - error C2451: conditional expression of type 'std::basic_str ing<_Elem,_Trai ts,_Ax>' is illegal
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::ch ar_traits<char> ,
    1> _Ax=std::alloca tor<char>
    1> ]
    1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    references line 46 - error C2059: syntax error : ';'

    I'm sure it's something simple, but I can not see it. Any help would be appreciated.

    Thanks!
  • whodgson
    Contributor
    • Jan 2007
    • 542

    #2
    The while loop seems to be missing a closing brace

    Comment

    • akdemirc
      New Member
      • Sep 2008
      • 26

      #3
      you are using = instead of == in both if statements,
      if (item = VALID_ITEM[sub])
      if (foundIt = "Y")

      and the statement may also cause error because of the extra << operator at the end

      cout << MSG_YES <<;

      Comment

      Working...