flippy3d Napisano Czerwiec 9, 2009 Zgłoś Share Napisano Czerwiec 9, 2009 mam problem z programem chce aby mi wymnozyl macierze wczytane z pliku kod wyglada tak , no po wymnozeniu nie wyhodzi mi to co ma wyjsc , problem z tym mnozeniem nie wiem jak poukladac petle for #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define n 300 void odczytpliku(char *naz,int **A,int **B,int *a,int *b) { int i,j; FILE *fp; fp=fopen(naz,"rw"); fscanf(fp,"%dx%d",a,b) ; for(i=0;i<*a;i++) for(j=0;j<*b;j++) { fscanf(fp,"%d",&A[i][j]); } for(i=0;i<*b;i++) for(j=0;j<*a;j++) { fscanf(fp,"%d",&B[i][j]); } } void wypisz_informacje(int **A,int **B,int **C,int *a,int *b) { int i,j; for (i=0;i<*a;i++) {printf("\n"); for(j=0;j<*b;j++){ printf("%d ",A[i][j]); }} printf("\n"); for (i=0;i<*b;i++) {printf("\n"); for(j=0;j<*a;j++){ printf("%d ",B[i][j]); }} printf("\n"); for (i=0;i<*b;i++) {printf("\n"); for(j=0;j<*b;j++){ printf("%4d",C[i][j]); }} } void mnozenie(int **A,int **B,int **C,int *a,int *b){ int i,j,k; for(i=0; i<5; i++) { for(j=0; j<5; j++) { C[i][j]=0; for(k=0; k<5; k++) { C[i][j] += A[i][k] * B[k][j]; } } } } main() {char naz[20]; int **A; int **B; int **C; int i,a,b; printf("nazwa pliku\n"); gets(naz); A=malloc(n*sizeof(int)); for(i=0;i<n;i++){ A[i]=malloc(n*sizeof(int)); } B=malloc(n*sizeof(int)); for(i=0;i<n;i++){ B[i]=malloc(n*sizeof(int)); } C=malloc(n*sizeof(int)); for(i=0;i<n;i++){ C[i]=malloc(n*sizeof(int)); } odczytpliku(naz,A,B,&a,&b); mnozenie(A,B,C,&a,&b); wypisz_informacje(A,B,C,&a,&b); getchar(); //wczytaj_dane(td,&ile2,naz); return 0; } w pliku jest cos takiego 3x4 2 4 6 7 5 7 4 8 5 6 5 9 7 5 3 9 6 4 3 2 5 1 0 9 Link do komentarza Udostępnij na innych stronach More sharing options...
krajew4 Napisano Czerwiec 10, 2009 Zgłoś Share Napisano Czerwiec 10, 2009 Dajesz 4 petle bo: - kazdego nowego elementu... (2 petle, wiersze, kolumny) -...obliczasz wartość (2 petli, lecisz po wierszach i kolumnach) Jak nie obczajasz to poszukaj na google na pewno bedzie My life for Aiur! Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Czerwiec 12, 2009 Zgłoś Share Napisano Czerwiec 12, 2009 Mnożenie macierzy to 3 pętle. Dwie aby chodzić po komórkach wyniku, a trzecia do iteracji po wierszu z macierzy A i kolumnie z macierzy B Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.