Start New Discussion within our Software Development Community

anyone know what is this error , how to fix it ???


#define MAX 6
#define size 10

using namespace std;

struct student {
string name;
int id;
string prog;
double cgpa;

class stinfo {
        student data[size];
        int last;
        void selectionSort(int A[]);
        void add(string name, int id, string prog, double cgpa);
        void printAll(int count);


stinfo :: stinfo()
    last = 0 ;

void stinfo::add(string name, int id,string prog, double cgpa)
    if (last == size) {
    return ;
data[last].name = name;
data[last].id = id;
data[last].prog = prog;
data[last].cgpa = cgpa;

void stinfo::printAll(int count)
    if (last == size){
        return ;

        for (int i =0; i<count; i++)

void stinfo::selectionSort(int A[]) 
    int i,j, temp;
     for (i=0; i<MAX; i++)
         j = min(A,i);
            temp = A[j];
            A[j] = A[i];
            A[i] = temp;

int min(int A[],int pos)
    int min = 9999;

    for (int i=pos+1; i<MAX; i++)
        if (A[min] >A[i])
            min = i;
    return min;

int main()
    int a[]={ 33, 87, 2, 45,20, 77};
    char ans;
    string name1,prog1;
    int id1;
    double cgpa1;
    int count = 0;

    stinfo st;

    cout <<">>>>>  STUDENT INFOMATION RECORDING SYSTEM  <<<<< "<<endl;

    cout <<"A.) Insert NEW Student Record."<<endl
         <<"B.) print all Student Record."<<endl;
         <<"C.) Sorting."<<endl;

    cout <<"Please Choice ONE Option : ";
    cin >>ans;

    switch ( ans )
    case 'a':
    case 'A':
        cout <<endl;
        cout <<">>>>> INSERT NEW STUDENT INFORMATION <<<<<"<<endl;

        cout <<"NAME : ";
        cin >>name1;

        cout <<"ID: ";
        cin >>id1;

        cout <<"PROGRAMME : ";
        cin >>prog1;

        cout <<"CGPA: ";
        cin >>cgpa1;

        st.add ( name1,id1,prog1,cgpa1 );

        cout <<endl
             <<"INSERT COMPLETE... "<<endl
        count ++;

    case 'b':
                                // sort at here

    case 'c':

    for (int i=0; i<MAX; i++)


        default :
        cout <<"Please Try Again..."<<endl

    }while ( toupper(ans) !='F' ) ;

        cout <<"EXIT The Program..."<<endl

    return 0;



Because *everyone* knows what C2780 and C2782 represent. :rolleyes:

I considered forcing you to post the actual error message rather than the error code because most people haven't memorized all of the codes for Visual C++. But if you prototype your min() function, you'll fix those two and be left with the rogue semicolon in one of your output statements.

j = min(A,i);
At this point, the compiler is not aware of any function named min that takes an int-pointer and an int.

cout <<"A.) Insert NEW Student Record."<<endl
<<"B.) print all Student Record."<<endl;
<<"C.) Sorting."<<endl;

Take a good look at the end of that second line.

I believe your problem(s) have already been pointed out, but ..

anyone know what is this error

Microsoft has documented their compiler/linker error/warning codes, so, you can always look those up on MSDN, for example Compiler Error C2780.

You either need to forward declare you min function or just move it to be above the class. C++ uses a single pass compiler unlike java that uses a dual pass.

Of course the way the function min is written it is very likely not to work, cause a segfault even because it accesses the 1000th element of an array of size 6.

This question has already been answered. Start a new discussion instead.