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