I try to find the maximum (higest) value from the input, but the value converted to other value. e.g when i put 3 for Mahasiswa.ipk it converted to 0, and Mahasiswa.nim converted to 6946913. How i can the real value shown in the ouput ?
using namespace std;
struct Mhs
{
    char nama[30];
    int nim[20];
    float ipk[2];
};
int BacaDataMhs(int N);
int TampilIpkMaxMin(int N);
int TampilIpkDua(int N); /// edited : I can use this function 
int main(int argc, char ** argv)
{
    int N;
    cout << "Input Value : "; cin >> N;
    TampilIpkMaxMin(N);
    int BacaDataMhs(int N);
}
int BacaDataMhs(int N)
{
    struct Mhs Mahasiswa[N];
    int i;
    for(i=0; i<N; i++)
    {
        cout << "NAMA : "; cin >> Mahasiswa[i].nama;
        cout << "NIM : "; cin >> Mahasiswa[i].nim[i];
        cout << "IPK : "; cin >> Mahasiswa[i].ipk[i];
        cout << endl;
    }
}
int TampilIpkMaxMin(int N)
{
    struct Mhs Mahasiswa[N];
    int i;
    int max=Mahasiswa[0].ipk[0];
    int min=Mahasiswa[0].ipk[0];
    int index_max=0;
    int index_min=0;
    for(i=0; i<N; i++)
    {
        if (max<Mahasiswa[i].ipk[i]) //calculate the higgest value
        {
            max=Mahasiswa[i].ipk[i];
            index_max=i;
        }
        if (min>Mahasiswa[i].ipk[i])
        {
            min=Mahasiswa[i].ipk[i];
            index_min=i;
        }
    }
    cout << "Nilai Tertinggi :" <<endl; //show the higgest value
    cout << "nama "<< Mahasiswa[index_max].nama << endl;
    cout << "nim "<< Mahasiswa[index_max].nim [index_max] << endl;
    cout << "ipk "<< Mahasiswa[index_max].ipk [index_max] << endl;
}
 int TampilIpkDua(int N) // i can use this function but not with int   TampilMhsMaxMin (int N )
{
 struct Mhs Mahasiswa[N];
int i;
    for(i=0; i<N; i++)
    {
        if (Mahasiswa[i].ipk[i]>2)
        {
            cout << "nama "<< Mahasiswa[i].nama << endl;
            cout << "nim "<< Mahasiswa[i].nim[i] << endl;
            cout << "ipk "<< Mahasiswa[i].ipk[i] << endl;
        }
    }
}
//edited
 
     
    