fork download
  1. #include<stdio.h>
  2. struct mahasiswa{
  3. char nama[20];
  4. int soal;
  5. int waktu;
  6. int penalty;
  7. };
  8. struct mahasiswa siswa[30],temp;
  9. int main(){
  10. int n,i,banyak,x,y;
  11.  
  12. scanf("%d",&banyak);
  13. for(i=0;i<banyak;i++){
  14. scanf("%s",&siswa[i].nama);
  15. scanf("%d",&siswa[i].soal);
  16. scanf("%d",&siswa[i].waktu);
  17. scanf("%d",&siswa[i].penalty);
  18. }
  19. printf("Data sebelum diurutkan :\n");
  20. for (i=0;i<banyak;i++){
  21. printf("%s\t%d\t%d\t%d\n",siswa[i].nama,siswa[i].soal,siswa[i].waktu,siswa[i].penalty);
  22. }
  23. printf("\n");
  24. for(n=1;n<=3;n++){
  25. for (x=0;x<banyak;x++){
  26. for (y=0;y<banyak-1;y++){
  27. if(n==1){
  28. if(siswa[y].soal<siswa[y+1].soal){
  29. temp=siswa[y];
  30. siswa[y]=siswa[y+1];
  31. siswa[y+1]=temp;
  32. }
  33. }
  34. else if(n==2){
  35. if (siswa[y].soal==siswa[y+1].soal){
  36. if(siswa[y].waktu>siswa[y+1].waktu){
  37. temp=siswa[y];
  38. siswa[y]=siswa[y+1];
  39. siswa[y+1]=temp;
  40. }
  41. }
  42. }
  43. else if(n==3){
  44. if (siswa[y].soal==siswa[y+1].soal){
  45. if(siswa[y].waktu==siswa[y+1].waktu){
  46. if(siswa[y].penalty>siswa[y+1].penalty){
  47. temp=siswa[y];
  48. siswa[y]=siswa[y+1];
  49. siswa[y+1]=temp;
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }
  56.  
  57. printf("Data setelah diurutkan :\n");
  58. for (i=0;i<banyak;i++){
  59. printf("%s\t%d\t%d\t%d\n",siswa[i].nama,siswa[i].soal,siswa[i].waktu,siswa[i].penalty);
  60. }
  61. printf("\n");
  62. }
  63. for (i=0;i<banyak;i++){
  64. printf("%s\n",siswa[i].nama);
  65. }
  66. }
Success #stdin #stdout 0s 4528KB
stdin
6
palingjago 4 100 20
jagobanget 4 90 25
agakjago 4 90 20
biasaaja 3 100 0
acsemua 3 100 10
semogaac 0 0 0
stdout
Data sebelum diurutkan :
palingjago	4	100	20
jagobanget	4	90	25
agakjago	4	90	20
biasaaja	3	100	0
acsemua	3	100	10
semogaac	0	0	0

Data setelah diurutkan :
palingjago	4	100	20
jagobanget	4	90	25
agakjago	4	90	20
biasaaja	3	100	0
acsemua	3	100	10
semogaac	0	0	0

Data setelah diurutkan :
jagobanget	4	90	25
agakjago	4	90	20
palingjago	4	100	20
biasaaja	3	100	0
acsemua	3	100	10
semogaac	0	0	0

Data setelah diurutkan :
agakjago	4	90	20
jagobanget	4	90	25
palingjago	4	100	20
biasaaja	3	100	0
acsemua	3	100	10
semogaac	0	0	0

agakjago
jagobanget
palingjago
biasaaja
acsemua
semogaac