#include <stdio.h> #include<conio.h> #include<stdlib.h> int **Tworzenie( int wiersze, int kolumny); int zapisz(int **MacierzC, int wiersze, int kolumny); int main() { FILE *macierzA; macierzA = fopen("A.txt","r"); int z,temp; temp=0; int wiersze=0; while ((fscanf(macierzA,"%c",&z))!= EOF) { if (z == '\n') { wiersze++; } } rewind(macierzA); int e =0; int kolumny=0; while ((fscanf(macierzA,"%lf",&temp))!= EOF) { e++; } rewind(macierzA); kolumny=e/ wiersze; int **MacierzA; MacierzA = Tworzenie(wiersze, kolumny); printf("%d %d" ,wiersze,kolumny); getch(); int i, j; for (i=0;i<wiersze;i++) { for (j=0;j<kolumny;j++) { if ((fscanf(macierzA,"%lf",&temp))!= EOF) { MacierzA[i][j] = temp; } else { printf("\nBrak pliku. Program konczy dzialanie\n"); getch(); exit(1); } } printf("\n"); } fclose(macierzA); int wiersze1=0; FILE *macierzB; macierzB = fopen("B.txt","r"); int z1,temp1; temp1=0; while ((fscanf(macierzB,"%c",&z1))!= EOF) { if (z1 == '\n') { wiersze1++; } } rewind(macierzB); int e1 =0; int kolumny1=0; while ((fscanf(macierzB,"%lf",&temp1))!= EOF) { e1++; } rewind(macierzB); kolumny1=e1/ wiersze1; int **MacierzB; MacierzB = Tworzenie(wiersze1, kolumny1); int i1, j1; for (i1=0;i1<wiersze1;i1++) { for (j1=0;j1<kolumny1;j1++) { if ((fscanf(macierzB,"%lf",&temp1))!= EOF) { MacierzB[i1][j1] = temp1; } else { printf("\nBrak pliku. Program konczy dzialanie\n"); getch(); exit(1); } } printf("\n"); } fclose(macierzB); printf("%d %d",wiersze1,kolumny1); getch(); int **MacierzC; MacierzC = Tworzenie(wiersze1, kolumny1); for(i=0;i<wiersze;i++){ for(j=0;j<kolumny;j++){ MacierzC[i][j]=MacierzA[i][j]+MacierzB[i][j]; } } zapisz(MacierzC,wiersze,kolumny); } int **Tworzenie( int wiersze, int kolumny){ int **Macierz; int i, j; if((Macierz=(int**)malloc(wiersze*sizeof(int*)))==NULL){ printf("Nie przydzielono pamieci"); return (NULL); } for(i=0; i<wiersze; i++){ if((Macierz[i]=(int*)malloc(kolumny*sizeof(int)))==NULL){ printf("Nie przydzielono pamieci"); return (NULL); } } for(i=0; i<wiersze; i++){ for(j=0; j<kolumny; j++){ Macierz[i][j]=0; } } return (Macierz); } int zapisz(int **MacierzC, int wiersze, int kolumny) { FILE *macierzC; macierzC = fopen("C.txt","w"); int i,j; for (i=0;i<wiersze;i++) { for (j=0;j<kolumny;j++) { fprintf(macierzC,"%.2lf ",MacierzC[i][j]); } fprintf(macierzC,"\n"); } fclose(macierzC); }