Guest User

Untitled

a guest
May 20th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.22 KB | None | 0 0
  1. /*
  2. 1. Napišite program koji učitava broj N koji ne smije biti manji od 3 niti veći do 20
  3. Zatim kreirajte tekstualnu datoteku, pripremite za pisanje i upišite u nju broj N
  4. formatirano.
  5.  
  6. N puta računajte slijedeće:
  7. - Generirajte slučajni cijeli broj M iz intervala [5, 15].
  8. - Generirajte M cijelih brojeva iz intervala [32,127] i uvrstite ih u dinamički alocirano
  9. polje od M elemenata.
  10. - Upišite u datoteku broj M i polje od M elemenata formatirano u jedan redak (zapis).
  11. - Sve to isto ispisujte na zaslonu monitora.
  12. - Oslobodite memoriju za prethodno alocirano polje.
  13.  
  14. Nakon toga zatvorite datoteku.
  15.  
  16. Na kraju izvršenja programa (na primjer, za N = 3) datoteka treba izgledati kao na
  17. primjeru:
  18.  
  19.  3
  20.  7  55  53 125  80  68  45  48
  21.  8  59  63  90  73  41 113  50  53
  22.  5  94  58  78  46 103
  23.  
  24. 2. Napišite funkciju koja će otvoriti datoteku iz prvog zadatka. Nakon toga treba učitati
  25. sve podatke iz datoteke, na isti način kako su prethodno u njoj zapisani.  
  26. Ispisivati na zaslon sve zapise, a nakon učitavanja svih zapisa ispisati redni broj
  27. zapisa s najvećim zbrojem vrijednosti polja. Na kraju u funkciji zatvoriti datoteku i
  28. vratiti najveći pronađeni zbroj.  Funkciju dodati u program iz prvog zadatka, pozvati
  29. na kraju glavne funkcije i ispisati najveći zbroj.
  30.  
  31. */
  32.  
  33.  
  34.  
  35.  
  36.  
  37. #include <stdio.h>
  38. #include <stdlib.h>
  39. #include <time.h>
  40.  
  41.  
  42. void fileOpen() {
  43.  
  44.     int procitano = 0, i = 0, j=0, loopCounter = 0, totalCounter = 0, suma = 0, maxRedak = 0, maxSuma = 0;
  45.     char c[500];
  46.  
  47.     FILE *read = fopen("newDatoteka.txt", "r");
  48.  
  49.     //citanje prvog broja
  50.     fscanf (read, "%d", &totalCounter);
  51.     printf("\n%d", totalCounter);
  52.  
  53.  
  54.     //petlja se vrti N puta (prvi broj iz fajla)
  55.     for (j=0; j<totalCounter; j++) {
  56.  
  57.  
  58.         //broj brojeva u redu
  59.         fscanf (read, "%d", &loopCounter);
  60.         printf("\n%d ", loopCounter);
  61.  
  62.  
  63.         //petlja se vrti M puta (broj brojeva u redu)
  64.         for (i=0; i<loopCounter; i++) {
  65.  
  66.             fscanf (read, "%d", &procitano);
  67.             printf("%d ", procitano);
  68.  
  69.             //zbrajanje cijelog reda
  70.             suma+=procitano;
  71.  
  72.  
  73.         }
  74.  
  75.  
  76.             //postavljanje najvece sume
  77.             if (suma > maxSuma) {
  78.  
  79.                 maxSuma = suma;
  80.                 maxRedak = j+1;
  81.             }
  82.                 // resetiranje sume
  83.                 suma = 0;
  84.  
  85. }
  86.  
  87.     printf ("\n\n\nNajveca suma je %d i nalazi se u %d. redu", maxSuma, maxRedak);
  88.  
  89.  
  90.     fclose (read);
  91.  
  92.  
  93. }
  94.  
  95.  
  96.  
  97.  
  98. int main(){
  99.  
  100. int N, M, i=0, j=0, interval2;
  101. int *polje;
  102.  
  103. FILE *dat = fopen("newDatoteka.txt", "w");
  104. srand((unsigned int)time(NULL));
  105.  
  106. printf("\nUpisite broj koji nije manji od 3 niti veci od 20: ");
  107.  
  108.     do  {
  109.  
  110.             scanf("%d", &N);
  111.  
  112.                 if (N<3 || N>20)    printf ("\nPonovi unos: ");
  113.     }
  114. while(N<=3||N>=20);
  115.  
  116.     fprintf(dat, "%d\n", N);
  117.  
  118. for(i=0; i<N; i++){
  119.  
  120.     M=rand()%(15-5)+5;
  121.  
  122.     fprintf(dat, "%d ", M);
  123.     polje = malloc(M * sizeof(int));
  124.  
  125.         for (j=0; j<M; j++) {
  126.  
  127.             polje[j] = rand()%(127-32)+32;
  128.             fprintf(dat, "%d ", polje[j]);
  129.  
  130.  
  131.         }
  132.  
  133.  
  134.      fprintf(dat, "\n");
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142. }
  143.  
  144. fclose(dat);
  145. free(polje);
  146. fileOpen();
  147.  
  148. return 0;
  149. }
Add Comment
Please, Sign In to add comment