/*NAMA : AL MUDATSTSIR */
/*nim : 1108001010059 */
/*program mencetak nama mahasiswa ipk tertinggi dan terendah */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int a,l,g=0;
char panjang[256];
typedef struct date{ //sebuah typedef yang didalam nya ada 2 member nama dan ipk
char nama_mahasiswa[100];
float IPK;
}Dota;
Dota Kata[256];
FILE *ifp; //pointer ke file
ifp = fopen("data.txt","r"); // membuka file.txt
while(fgets(panjang,200,(FILE*)ifp)!=NULL){ //perulangan untuk mengcopy tiap kata ke array
char *token;
token = strtok(panjang, "\t");
Kata[g].IPK = atof(token);
token = strtok(NULL,"\t\n");
strcpy(Kata[g].nama_mahasiswa,token);
g++;
}
for (a=(g);--a>=0;){ //mengurutkan data dari z ke a
for(l=0;l<a;l++){
if(Kata[l].IPK < Kata[l+1].IPK){
Kata[g+2] = Kata[l];
Kata[l] = Kata[l+1];
Kata[l+1] = Kata[g+2];
}
}
}
printf("NAMA MAHASISWA IPK YANG TERENDAH :9 orang \n\n"); //mencetak manual tulisan disamping
for(a=g-1;a>0;a--){ //perulangan untuk mencari maksimumnya
printf("%s\n", Kata[a].nama_mahasiswa);
if(Kata[a].IPK != Kata[a-1].IPK){
break;
}
}
printf("\nDATA MAHASISWA IPK TERBESAR :8 orang\n \n"); //perulangan untuk mencari minimumnya
for(a=0;a<g;a++){
printf("%s\n",Kata[a].nama_mahasiswa);
if(Kata[a].IPK!=Kata[a+1].IPK){
break;
}
}
return 1;
}
0 Response to "membaca ipk yang ada di file.txt"
Post a Comment