C++ help with student array problem

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Jun 2005
Posts: 92
Reputation: djbsabkcb is an unknown quantity at this point 
Solved Threads: 0
djbsabkcb's Avatar
djbsabkcb djbsabkcb is offline Offline
Junior Poster in Training

C++ help with student array problem

 
0
  #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;
}
Reply With Quote Quick reply to this message  
Join Date: Feb 2005
Posts: 466
Reputation: winbatch is on a distinguished road 
Solved Threads: 18
winbatch's Avatar
winbatch winbatch is offline Offline
Posting Pro in Training

Re: C++ help with student array problem

 
0
  #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.

  1. #include <iostream>
  2. #include <cmath>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6. int main()
  7. {
  8. double grade= 0;
  9. double sum = 0;
  10. int count = 0;
  11. double avg_score = 0;
  12. cout << " Enter the number of students who took test : " ;
  13. double num_students = 0;
  14. cin >> num_students;
  15. while (num_students < 0 )
  16. {
  17. cout << " Invalid Value! ";
  18. cout << " Enter the number of students who took test: ";
  19. cin >> num_students;
  20. cout << endl;
  21. }
  22. double* p = new double[num_students];
  23.  
  24. for (double i = 1; i <= num_students; i++)
  25. {
  26. cout << " Enter grade for Student " << i << ":" ;
  27. cin >> grade;
  28.  
  29. p[i] = grade;
  30. cout << p[i]<< endl;
  31. sum += grade;
  32. ++count;
  33. } // end of for loop
  34. delete []p;
  35. avg_score = sum / count;
  36.  
  37. cout << " The average of the test scores is " << avg_score << endl;
  38. cout << " The sum of the test scores is " << sum << endl;
  39. return 0;
  40. }
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC