brsjak

Zbir na redici na matrica - SP Lab 10

Nov 1st, 2016
719
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.28 KB | None | 0 0
  1. /*Збир на редици на матрица Problem 2 (2 / 2)
  2. Да се напише програма која ќе ги прочита елементите на една матрица сместени во текстуална датотека „matrica.txt“. Во првиот ред на датотеката се запишани бројот на редици и колони на матрицата, а потоа се запишани елементите на матрицата. Потребно е за секоја редица да го пресметате збирот на елементите и во текстуалната датотека „izlez.txt“ да се испечатат само оние збирови по редици коишто се поголеми од 10.
  3.  
  4. Забелешка: Да не се менуваат дадените функции writeToFile() printFile(). Тие служат за креирање и проверка на потребните датотеки.*/
  5.  
  6. #include <stdio.h>
  7. #define MAX 100
  8.  
  9. void writeToFile() {
  10.     FILE *f = fopen("matrica.txt", "w");
  11.     char c;
  12.     while((c = getchar()) != '#') {
  13.         fputc(c, f);
  14.     }
  15.     fclose(f);
  16. }
  17.  
  18. void printFile() {
  19.  
  20.     FILE *f=fopen("izlez.txt","r");
  21.     char line[100];
  22.     while(!feof(f)){
  23.         fgets(line,100,f);
  24.         if (feof(f))
  25.             break;
  26.         printf("%s",line);
  27.     }
  28.     fclose(f);
  29. }
  30.  
  31. int main()
  32. {
  33.     writeToFile();
  34.     //vasiot kod tuka
  35.     FILE *p1, *p2;
  36.     char n;
  37.     int h, b, m[MAX][MAX], red, kol, zbir = 0;//h-broj redici, b- broj koloni
  38.     if((p1 = fopen("matrica.txt", "r")) == NULL)//proverka za otvaranje na datoteka
  39.     {
  40.         printf("Datotekata ne se otvora.");
  41.         return -1;
  42.     }
  43.     fscanf(p1,"%d %d", &h, &b); //
  44.     for(red=0;red<h&&!feof(p1);red++)  
  45.     {
  46.         for(kol=0;kol<b&&!feof(p1);kol++)
  47.         {
  48.             fscanf(p1,"%d",&m[red][kol]);
  49.         }
  50.     }
  51.     fclose(p1);
  52.     p2 = fopen("izlez.txt", "w");
  53.     for(red=0;red<h;red++)
  54.     {
  55.         for(kol=0;kol<b;kol++)
  56.         {
  57.             zbir+=m[red][kol];
  58.         }
  59.         if(zbir>10)
  60.         {
  61.             printf("%d\n", zbir);
  62.         }
  63.         zbir = 0;
  64.     }
  65.     fclose(p2);
  66.     printFile();
  67.     return 0;
  68. }
Add Comment
Please, Sign In to add comment