Yeah so I'm Using Some Arrays, and Functions and Such, the only problem is that my output is getting scrambled up, my commission array is the only fine one I believe. I do not know what is wrong, because each time I print the data, I'm guessing I'm getting some kind of infinite loop, that is trying compute some undefine arrays. I just don't know right now, I'm lost could you help? If any of you could run it and find the problem, that would be swell, ya know. I'm looking for positive input, oh my agent ID, it was weird defined as a integer, it goes through a function validation loop, and then the function requests for a cin, once again , i believed I pass the array, but for some reason the output retains the original bad data. My agent id should be 5 digits long

Code:
//Put in Those SetW's
/**************************************************
**	  Daniel Lopez	  |		November 3rd, 2006   **
**  -------------------------------------------  **
**|||||||||||||| estate_comm.cpp ||||||||||||||  **
***************************************************
** Input: choice, agent_id, yesno, prop_sell     **
***************************************************
** Output: num_prop1 ,num_prop2 ,num_prop3,      **
** prop_price_r, prop_price_c, prop_price_m      **
** prop_price									 **
***************************************************
** Program Purpose:								 **
**		The program's purpose is to implement	 **
** several functions that perform such duties	 **
** such as: printing a dashline, or the total of **
** of a commission, also functions are used to	 **
** validate data.								 **
**************************************************/

#include <iostream>
#include <iomanip>
		using namespace std;
//Function Prototypes Declaration
/*-------------------------------------------------------------------------------*/
		
		void DashLine(void);									//Print Dashed Line
		double CompComm(double, double);						//Compute Commission
		void PrintComm(double, double, double);					//Print Maximum,Mininum,Average
		int ValAgentId(int);									//Validation Function: Agent ID
		char ValPropType(char);									//Validation Function: Property Type
		double ValComm(double);									//Validation Function: Commission = +
		char ValYesNo(char);									//Validation Function: Compute Another Commission?

/*-------------------------------------------------------------------------------*/
//CONSTANT DEFINE (PROPERTY_TYPE),
#define PROP_R 0.1					//10%
#define PROP_C 0.2					//20%
#define PROP_M 0.15					//15%
#define COMP_NAME "Pleasantville Estates"
#define DYWEEK "Friday"
#define NAME "Daniel Lopez Commission Computer"
#define AGENTLO 10000				//Lower Bounds
#define AGENTHI 100000				//Upper Bounds
#define NOTHING 0					//Nada
#define SIZE 50						//Array Size

//Program Body
int main ()
//Compute Commission Definition Function

	

{
	char   choice[SIZE],				/*Switch Case R,C,M*/
		   yesno,				/*Another Commission???*/
		   valid_choice;		/**/
	int	   agent_id[SIZE],			/* Five Digit ID */
		   num_prop1,			/*Quantity of Properties*/
		   num_prop2,
		   num_prop3;
	int	   whileyesno;
                   double val_sell_pricee,
		   prop_price_r,		/*Propety Selling Prices*/
		   prop_price_c,
		   prop_price_m,
   	          prop_sell[SIZE],			/*Propety Selling Price Total*/
		   comm_r,				/*Commission Property Sales*/
		   comm_c,
		   comm_m;
	//Update_1 Variables
	double commission[SIZE]={0} ,
		   maximum,				/*Commission Maximum, Mininum, Average*/
		   minimum,
		   average,
		   total,				/*Commission[j] Accumilative Total*/
		   counter;				/* double counter converted from int k*/
	int	   j=0,					/*For PreIncrement*/
		   k=0;					/*Commission Tally*/
	
	//Update_2 Variable - Sorting Arrays
	double temp;
	int	row,
		exm=1,
		last;
	//Initializing Variables
		
	  //  commission[k]={0} Initalizes Each Element of the Array as 'zero'
		num_prop1 = 0;
		num_prop2 = 0;
		num_prop3 = 0;
		comm_r = 0;
		comm_c = 0;
		comm_m = 0;
		total = 0.0;
	
	//CONSTANT/Variable Declaration/Initalization
	//Display Banner and Agent ID Request
	cout << "------------------------" << NAME << "------------------------\n\n" ;
	cout << COMP_NAME << "                                                 " << DYWEEK;
	cout << "\n"
		 << "\n--    Agent's Real Estate Sales Commission Report   --";
	cout << "\n----------------------------------------------------------";
	cout << "\n\nDo you have a commission to compute? ( 1 - Yes // 0 - No ) >> ";
	//Validate Yes Or No
	
	cin  >> yesno;
	while ((yesno != '0' && yesno != '1')){
	cout << "Yes or NO!						      ";
	cin  >> yesno;
	}//endwhile
	
	if (yesno == '1')
	{
	do
	{	
		cout << "\n\nEnter Your Five Digit Agent ID#(_____): ";	
	//Validate Agent's ID		
		int xx=0;
		cin >> agent_id[xx];
		int valid;
		valid =ValAgentId(agent_id[xx]);
		if (valid==1) 
			cout << valid;
		//endwhile
	/*
	---------------------------------------------------------------------
    */
	// Property Category Display
	cout << "\nProperty Types:"<<endl;
	cout << "---------------\n";
	cout << "\tR - Residential"<<endl
		 << "\tC - Commercial"<<endl
		 << "\tM - Multiunit Dwelling"<<endl;
	//endDisplay
	
	
	//Property Category Selection 
	cout << "\nChoice: ";
	int zz=0;
	cin >> choice[zz];
	valid_choice =ValPropType(choice[zz]);
	zz++;
	cout << "\n\nEnter Selling Price:\t\t\t\t$ ";
	//Validating Property Selling Price
	int yy=0;
	cin >> prop_sell[yy];
	val_sell_pricee =ValComm(prop_sell[yy]);
	prop_sell[yy]+= val_sell_pricee;
	yy++;
		
	//Request Selling Price, and Computing/Displaying Commission
	switch (valid_choice)
	{
		case 'R': 
		case 'r': 
				prop_price_r = CompComm(val_sell_pricee, PROP_R);			//Calculation
					comm_r+= prop_price_r;					//Residential Price Accumulator
						num_prop1++;						//Residential Number Accumulator
						cout << "\n"<<"Sales Agent ( " <<agent_id[xx]<<" )"
					    	 << "\n---------------------\n"
							 << "Commission Made:\t\t\t\t$ "<< fixed << setprecision(2) << prop_price_r;
								//Array Commission
								commission[k]+= prop_price_r;
									k++;
										xx++;
										break;
		case 'C': 
		case 'c': 
				prop_price_c = CompComm(val_sell_pricee, PROP_C);			//Calculation
					comm_c+= prop_price_c;					//Commercial Price Accumulator
						num_prop2++;						//Commercial Number Accumulator
						cout << "\n"<<"Sales Agent ( " <<agent_id[xx]<<" )"
							 << "\n---------------------\n"
							 << "Commission Made:\t\t\t\t$ "<< fixed << setprecision(2) << prop_price_c;
								//Array Commission
								commission[k]+= prop_price_c;
									k++;
										xx++;
										break;
		case 'M': 
		case 'm': 
				prop_price_m = CompComm(val_sell_pricee, PROP_M);			//Calculation
					comm_m+= prop_price_m;					//Mult Price Accumulator
						num_prop3++;						//Mult Number Accumulator
						cout << "\n"<<"Sales Agent ( " <<agent_id[xx]<<" )"
							 << "\n---------------------\n"
							 << "Commission Made:\t\t\t\t$ "<< fixed << setprecision(2) << prop_price_m;
								//Array Commission
								commission[k]+= prop_price_m;
									k++;
										xx++;
										break;
		}
	//end_switch
	cout << "\n\nDo you have another commission to compute? ( 1 - Yes // 0 - No ) >> ";
	cin  >> yesno;
	
	whileyesno =ValYesNo(yesno);		
			
	}
	while (whileyesno=='1');
	//End Big Ass While
	
			cout << "\n\n********************* End of Run Report *********************\n\n";
	//Display Running Report
	// Display Total Tally
cout << " Total Number of Residential Commissions Computed:      "<< setw(2)<<num_prop1<<endl;
		cout << " Total Number of Commercial Commissions Computed:       "<< setw(2)<<num_prop2<<endl;
		cout << " Total Number of Multiunit Commissions Computed:        "<< setw(2)<< num_prop3<<endl;
		cout << " Total Number of ALL Commissions Computed:              "<< setw(2)<<num_prop1 + num_prop2 + num_prop3<<endl;
	// 
DashLine();//DashLine Function
			
			//Display Total Amount
			cout << " Total Amount of Residential Commissions Computed:  $"<< setw(10)<<comm_r<<endl;
			cout << " Total Amount of Commercial Commissions Computed:   $"<< setw(10)<<comm_c<<endl;
			cout << " Total Amount of Multiunit Commissions Computed:    $"<< setw(10)<< comm_m<<endl;
			cout << " Total Amount of ALL Commissions Computed:          $"<< setw(10)<<comm_r + comm_c + comm_m<<endl;

//Calculating Commission's Maximum, Minimum, Average
	maximum = commission[0];
	minimum = commission[0];
	average = 0;
	counter = k;
	for (j=0 ; j < counter ; j++)
	{
		if (maximum  < commission[j])
			maximum = commission[j];//endif
		if (minimum > commission[j])
			minimum = commission[j];//endif
		
		total += commission[j];
	}//endfor
	if (counter > 0){ 
			average = total/counter;}
	else{//when count == 0;
		average = -1;}
		
	DashLine();
	PrintComm(maximum,minimum,average);
	
	DashLine();
	cout << " Commission Report" << endl;
	DashLine();
	
	do{
		exm =0;
		last= k-1;
		for (row =0; row < last; row++)
	{
			if ( commission[row] > commission[row+1] )
			{
				temp = commission[row];
				commission[row] = commission[row+1];
				commission[row+1] = temp;
				//Agent ID Sort
				int temp_ai;
				temp_ai = agent_id[row];
				agent_id[row] = agent_id[row+1];
				agent_id[row+1] = temp_ai;
				double temp_ps;
				temp_ps = prop_sell[row];
				prop_sell[row] = prop_sell[row+1];
				prop_sell[row+1] = temp_ps;
				char temp_ch;
				temp_ch = choice[row];
				choice[row] = choice[row+1];
				choice[row+1] = temp_ch;
				exm=1;
			}//endif
		}//endfor
		last--;
	}while (( last > 0 ) && (exm==1));//enddo

			for (j=0 ; j < counter ; j++){
			cout 
				<<"agent id:" << agent_id[j]<<endl
				<<"choice: "<< choice[j]<<endl
				<<"prop_sell:" << prop_sell[j]<<endl
					<<"commission: "<< commission[j]<<endl ;
			}//endfor
}


	return 0;
}
// Functions Definitions
/**********************************************************************************
** Function CallName: DashLine()
** Return Type: void, thus none.
** Input: None
** Output: "...----..."
** Purpose: To print a Dashed Line
**********************************************************************************/

void DashLine(void)	{
			cout << "\n\n   --------------------------------------------------------\n\n\n";
		}

/**********************************************************************************
** Function Call Name: CompComm()
** Return Type: double
** Input: double prop_sell, double PROP_RATE
** Output: Commission of Various Property Types
** Purpose: Multiply Selling Price * Constant of Propety Type
**********************************************************************************/
double CompComm(double price, double rate){
	return (price * rate);
}

/**********************************************************************************
** Function Call Name: PrintComm()
** Return Type: double
** Input: double
** Output: Maximum, Mininum, Average
** Purpose: To Print Maximum, Mininum, Average
**********************************************************************************/
void PrintComm(double maximum, double minimum, double average){
	cout << " Maximum Commission:                                $"<< fixed << setprecision(2) << setw(10) << maximum << endl;
	cout << " Minimum Commission:                                $"<< fixed << setprecision(2) << setw(10) << minimum << endl;
	cout << " Average Commission:                                $"<< fixed << setprecision(2) << setw(10) << average << endl;
}

/*********************************************************************************
** Function Call Name: ValAgentId()
** Return Type: int
** Input: none
** Output: Validation T/F
** Purpose: To validate AgentID Loop
*********************************************************************************/
int ValAgentId(int val_agent_id){
	
	while (!(val_agent_id >= AGENTLO && val_agent_id < AGENTHI)){
		cout << "Five Digits Please: ";
		cin  >> val_agent_id;		
		}
	return val_agent_id;
}
/*********************************************************************************
** Function Call Name: ValPropType()
** Return Type: int
** Input: char
** Output: Validation T/F
** Purpose: To validate Property Type Loop
*********************************************************************************/
char ValPropType(char val_choice){
	while (!( ((val_choice == 'R') || (val_choice == 'r')) || ((val_choice == 'C') || (val_choice == 'c')) || ((val_choice == 'M') || (val_choice == 'm')) ))
	{
		cout << "\nInvalid Property Type, Please Reenter: ";
		cin >> val_choice;
	}
	return val_choice;
}

/*********************************************************************************
** Function Call Name: ValComm()
** Return Type: int
** Input: double
** Output: Validation T/F
** Purpose: To validate Commission Loop
*********************************************************************************/
double ValComm(double val_prop_sell){
while (val_prop_sell <= NOTHING)
					{
						cout << "\nInvalid Data, Reenter Please:\t\t\t$ ";
						cin >> val_prop_sell;
					}
	return val_prop_sell;
}
/*********************************************************************************
** Function Call Name: ValYesNo()
** Return Type: int
** Input: char
** Output: Validation T/F
** Purpose: To validate YesNo Loop
*********************************************************************************/
char ValYesNo(char val_yesno){
while (!(( val_yesno == '1') || ( val_yesno == '0')))
			{
				cout << "Yes or NO!, Please Reenter: ";
				cin  >> val_yesno;
			}//endwhile
	return val_yesno;
}