Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. ///////////////
  2. 2/
  3. //////////////
  4. #include <stdio.h>
  5. #include <stdlib.h> /* Zbog funkcije exit() */
  6.  
  7. struct Student {
  8. char prezime[20];
  9. char ime[15];
  10. int broj_bodova1;
  11. int broj_bodova2;
  12. };
  13.  
  14. int main() {
  15. struct Student studenti[300], tmp;
  16. FILE *ulaz, *izlaz;
  17. int i=0, j=0, k=0,ukupno1=0,ukupno2=0;
  18. printf("Tutorijal 13, Zadatak 2\n");
  19. /* Otvaranje datoteka */
  20. if ((ulaz = fopen("ispit.txt","r")) == NULL) {
  21. printf("Greska pri otvaranju datoteke ispit.txt");
  22. exit(1);
  23. }
  24.  
  25. if ((izlaz = fopen("usmeni.txt","w")) == NULL) {
  26. fclose(ulaz);
  27. printf("Greska pri otvaranju datoteke usmeni.txt");
  28. exit(1);
  29. }
  30.  
  31. /* Ucitavanje datoteke u niz studenti */
  32. i=0;
  33. while (fscanf(ulaz,"%20s%15s%2d%2d\n", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova1,&studenti[i].broj_bodova2) == 4 && i<300)
  34. i++;
  35. /* Sortiranje niza po broju bodova
  36. Varijabla i je sada velicina niza */
  37.  
  38.  
  39. for (j=0; j<i-1; j++){
  40. for (k=j+1; k<i; k++){
  41.  
  42. ukupno1 = studenti[k].broj_bodova1 + studenti[k].broj_bodova2;
  43. ukupno2 = studenti[j].broj_bodova1 + studenti[j].broj_bodova2;
  44.  
  45. if (ukupno1 > ukupno2) {
  46.  
  47. tmp = studenti[j];
  48. studenti[j] = studenti[k];
  49. studenti[k] = tmp;
  50. }
  51. }
  52. }
  53. // Upis niza u datoteku
  54. for (j=0; j<i; j++){
  55. if(studenti[j].broj_bodova1>=10 && studenti[j].broj_bodova2>=10){
  56.  
  57. fprintf(izlaz,"%-20s%-15s%2d\n", studenti[j].prezime, studenti[j].ime, studenti[j].broj_bodova1+studenti[j].broj_bodova2);
  58. }
  59. }
  60. printf ("Izlazna datoteka usmeni.txt je kreirana");
  61. fclose(ulaz);
  62. fclose(izlaz);
  63. return 0;
  64. }
  65. ///////////////
  66. 3
  67. ///////////
  68. #include <stdio.h>
  69. #include <stdlib.h> /* Zbog funkcije exit() */
  70.  
  71. struct Student {
  72. char prezime[20];
  73. char ime[15];
  74. int broj_bodova1;
  75. int broj_bodova2;
  76. };
  77.  
  78. int main() {
  79. struct Student studenti[300], tmp;
  80. FILE *ulaz;
  81. int i=0, j=0, k=0,ukupno1=0,ukupno2=0;
  82. printf("Tutorijal 13, Zadatak 3\n");
  83. /* Otvaranje datoteka */
  84. if ((ulaz = fopen("ispit.txt","r+")) == NULL) {
  85. printf("Greska pri otvaranju datoteke ispit.txt");
  86. exit(1);
  87. }
  88.  
  89.  
  90.  
  91. /* Ucitavanje datoteke u niz studenti */
  92. i=0;
  93. while (fscanf(ulaz,"%20s%15s%2d%2d\n", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova1,&studenti[i].broj_bodova2) == 4 && i<300)
  94. i++;
  95. /* Sortiranje niza po broju bodova
  96. Varijabla i je sada velicina niza */
  97. printf("Unesite podatke o studentu %i. u formatu Prezime Ime bodovi1 bodovi2\n",i);
  98. scanf("%s %s %d %d", &studenti[i].prezime, &studenti[i].ime, &studenti[i].broj_bodova1, &studenti[i].broj_bodova2);
  99. i++;
  100.  
  101. for (j=0; j<i-1; j++){
  102. for (k=j+1; k<i; k++){
  103.  
  104. ukupno1 = studenti[k].broj_bodova1 + studenti[k].broj_bodova2;
  105. ukupno2 = studenti[j].broj_bodova1 + studenti[j].broj_bodova2;
  106.  
  107. if (ukupno1 > ukupno2) {
  108.  
  109. tmp = studenti[j];
  110. studenti[j] = studenti[k];
  111. studenti[k] = tmp;
  112. }
  113. }
  114. }
  115. ulaz = fopen("ispit.txt","w");
  116. // Upis niza u datoteku
  117. for (j=0; j<i; j++)
  118. fprintf(ulaz,"%-20s%-15s %2d %2d\n", studenti[j].prezime, studenti[j].ime, studenti[j].broj_bodova1, studenti[j].broj_bodova2);
  119.  
  120. fclose(ulaz);
  121. return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement