RSS Forums RSS
Please support our C++ advertiser: Programming Forums
Views: 2238 | Replies: 1
Reply
Join Date: Jun 2005
Location: California
Posts: 92
Reputation: djbsabkcb is an unknown quantity at this point 
Rep Power: 4
Solved Threads: 0
djbsabkcb's Avatar
djbsabkcb djbsabkcb is offline Offline
Junior Poster in Training

Help C++ help with student array problem

  #1  
Jul 22nd, 2005
I must ask user number of students who took test, then create a dynamic array and then get the scores for each student. Then calculate the sum,average of the scores. My problem is that once it calculates it continues to ask user for student scores. I am confused with this while loop. Below is my source code. Any ideas?


#include <iostream>
#include <cmath>
#include <cstdlib>


using namespace std;

int main()
{

double grade= 0;
double sum = 0;
int count = 0;
double avg_score = 0;

cout << " Enter the number of students who took test : " ;
int num_students = 0;
cin >> num_students;
// cout << endl;

// double* p = new double[num_students];
while(true){
if (num_students== 0 || num_students == -1)
{

cout << " Enter a postive value please!" << endl;
cout << " Enter the number of students who took tests: ";
cin >> num_students;
cout << endl;
} // end of if statement


double* p = new double[num_students];




for (int i = 1; i <= num_students; i++)
{
cout << " Enter grade for Student " << i << ":" ;
cin >> grade;


p[i] = grade;
cout << p[i]<< endl;
sum += grade;
++count;
} // end of for loop
delete []p;

avg_score = sum / count;


cout << " The average of the test scores is " << avg_score << endl;
cout << " The sum of the test scores is " << sum << endl;
} // end of while loop
return 0;
}
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Feb 2005
Posts: 464
Reputation: winbatch is on a distinguished road 
Rep Power: 4
Solved Threads: 18
winbatch's Avatar
winbatch winbatch is offline Offline
Posting Pro in Training

Re: C++ help with student array problem

  #2  
Jul 22nd, 2005
You could just put a break; at the end of your while loop, or the better way would be to change the while loop to only ask for the information while num_students < 1. (Then you just do the for loop and exit). Also, be careful mixing your int's and double's for the same variable.

#include <iostream>
#include <cmath>
#include <cstdlib>
 
using namespace std;
int main()
{
double grade= 0;
double sum = 0;
int count = 0;
double avg_score = 0;
cout << " Enter the number of students who took test : " ;
double num_students = 0;
cin >> num_students;
while (num_students < 0 )
{
	   cout << " Invalid Value! ";
		cout << " Enter the number of students who took test: ";
		cin >> num_students;
		cout << endl;
} 
double* p = new double[num_students];
 
for (double i = 1; i <= num_students; i++)
{
		cout << " Enter grade for Student " << i << ":" ;
		cin >> grade;
 
		p[i] = grade;
		cout << p[i]<< endl;
		sum += grade;
		++count;
} // end of for loop
delete []p;
avg_score = sum / count;
 
cout << " The average of the test scores is " << avg_score << endl;
cout << " The sum of the test scores is " << sum << endl;
return 0;
}
 
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes
Forums | Blogs | Tutorials | Code Snippets | Whitepapers | RSS Feeds | Advertising
All times are GMT -4. The time now is 11:13 pm.
Newsletter Archive - Sitemap - Privacy Statement - Acceptable Use Policy - Contact Us
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC