#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); }