0

I'm still getting one error not sure why?

    Error 1 error C4700: uninitialized local variable 'arranged' used   74

Thanks.

#include <iostream>
#include <iomanip>
using namespace std;

//Function prototypes
void sortTestScores(int *TestScores, int size_Test);
double avgTestScore(int *TestScores, int size_Test);
void printTestScores(int *TestScores, int size_Test);
int main()
{
//Define variables
int *TestScores;
int size_Test, score;
double average;
//Get the number of test scores you want to average
cout << "How many test scores do you want to enter?";
cin >> size_Test;
//Dynamically allocate an array large enough to hold that many scores
TestScores = new int[size_Test];
//Get test scores
cout << "Enter " << size_Test << " positive test scores below:" << endl;
for (int i=0; i<size_Test; i++)
{
//Display score
cout << "Score " << i + 1 << ": "; 
cin >> score;
// Input validation. Only numbers between 0-100
while (score<0 || score>100)
{
cout << "You must enter a score that is positive" << endl;
cout << "Please enter again: ";
cin >> score;
}
TestScores[i]=score;
}
//Dsiplay the results
cout << "Test Scores: ";
printTestScores(TestScores, size_Test);
sortTestScores(TestScores, size_Test);
cout << "The test scores, sorted in ascending order, are: \n";
printTestScores(TestScores, size_Test);
average = avgTestScore(TestScores, size_Test);
cout << fixed << showpoint << setprecision(2);
cout << "The average of all the test scores is " << average << endl;
system ("pause");
return 0;
}
//Accepts a dynamic array of test scores and size of array, then sorts in ascending order
//Sort function implementation
void sortTestScores(int *TestScores, int size_Test)
{
int *last=TestScores+size_Test; //get last location of array
for (int *first = TestScores; first < last-1; first++)
{
    for(int *next=first+1; next<last; next++) 
    {
        if (*next<*first)
        {
        int temp=*first;
        *first=*next;
        *next=temp;
        }
    }
}
}
//calculates and returns average of test scores
double avgTestScores(double *TestScores, int size_Test)
{
int total = 0; 
double average;
int *arranged;
for (int i=0; i < size_Test; i++)
{
total+= *arranged;
arranged++;
}
average= double(total) / size_Test;
return average;
}
//Prints test scores stored in array
void printTestScores(int *TestScores, int size_Test)
{
int *arranged=TestScores;
for (int i=0; i < size_Test; i++)
{
cout << *arranged << " " << arranged << endl;
       arranged++; 
}
}
2
Contributors
5
Replies
23
Views
1 Year
Discussion Span
Last Post by DS9596
1

The error was clear, and in fact you did use it uninitialized. See line 71 up to 74? You shouldn't use this until you put something in there.

0

ok, I initialed it but I'm getting a different errors:

Error   2   error LNK1120: 1 unresolved externals       1
Error   1   error LNK2019: unresolved external symbol "double __cdecl avgTestScore(int *,int)" (?avgTestScore@@YANPAHH@Z) referenced in function _main  



#include <iostream>
#include <iomanip>
using namespace std;

//Function prototypes
void sortTestScores(int *TestScores, int size_Test);
double avgTestScore(int *TestScores, int size_Test);
void printTestScores(int *TestScores, int size_Test);

int main()
{
//Define variables
int *TestScores;
int size_Test, score;
double average;
//Get the number of test scores you want to average
cout << "How many test scores do you want to enter?";
cin >> size_Test;
//Dynamically allocate an array large enough to hold that many scores
TestScores = new int[size_Test];
//Get test scores
cout << "Enter " << size_Test << " positive test scores below:" << endl;
for (int i=0; i<size_Test; i++)
{
//Display score
cout << "Score " << i + 1 << ": "; 
cin >> score;
// Input validation. Only numbers between 0-100
while (score<0 || score>100)
{
cout << "You must enter a score that is positive" << endl;
cout << "Please enter again: ";
cin >> score;
}
TestScores[i]=score;
}
//Dsiplay the results
cout << "Test Scores: ";
printTestScores(TestScores, size_Test);
sortTestScores(TestScores, size_Test);
cout << "The test scores, sorted in ascending order, are: \n";
printTestScores(TestScores, size_Test);
average = avgTestScore(TestScores, size_Test);
cout << fixed << showpoint << setprecision(2);
cout << "The average of all the test scores is " << average << endl;
system ("pause");
return 0;
}
//Accepts a dynamic array of test scores and size of array, then sorts in ascending order
//Sort function implementation
void sortTestScores(int *TestScores, int size_Test)
{
int *last=TestScores+size_Test; //get last location of array
for (int *first = TestScores; first < last-1; first++)
{
    for(int *next=first+1; next<last; next++) 
    {
        if (*next<*first)
        {
        int temp=*first;
        *first=*next;
        *next=temp;
        }
    }
}
}
//calculates and returns average of test scores
double avgTestScores(int *TestScores, int size_Test)
{
int total = 0; 
double average;
int *arranged=TestScores;
for (int i=0; i < size_Test; i++)
{
total+= *arranged;
arranged++;
}
average= double(total) / size_Test;
return average;
}
//Prints test scores stored in array
void printTestScores(int *TestScores, int size_Test)
{
int *arranged=TestScores;
for (int i=0; i < size_Test; i++)
{
cout << *arranged << " " << arranged << endl;
       arranged++; 
}
}
0

I got it to output but I'm getting some random stuff after it prints out numbers:

Enter 6 positive test scores below:
Score 1: 89
Score 2: 94
Score 3: 100
Score 4: -78
You must enter a score that is positive
Please enter again: 78
Score 5: 84
Score 6: 65
Test Scores:
89 004BB260
94 004BB264
100 004BB268
78 004BB26C
84 004BB270
65 004BB274
The test scores, sorted in ascending order, are:
65 004BB260
78 004BB264
84 004BB268
89 004BB26C
94 004BB270
100 004BB274
The average of all the test scores is 85.00
Press any key to continue . . .
0

I didn't check for more of the same uninitialized variable use. You will check for that. Also, learn to print out variables so you can debug your code.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.