rendered paste body#include <cstdlib>#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;int main(int argc, char *argv[]){ int xsize; int ysize; char filename[20]="./macierz.txt"; FILE*plik=fopen(filename,"r"); fscanf(plik,"%d %d\n",&xsize,&ysize); xsize++; ysize++; int macierz[xsize][ysize]; char wiersz[100],*pch,*p=new char[2]; int x ,y=0, val, zmiana = 1, k, min_k, nr=1; printf("Rozmiar tablicy: %d x %d \n", xsize-1, ysize-1); // Czytamy z pliku i uzupelniamy macierz while(fgets(wiersz, 100, plik)!=NULL){ x=0; pch = strtok (wiersz," "); while (pch != NULL){ p=strncpy(p,pch,1); p[1]='\0'; val = atoi(pch); macierz[x][y]=val; pch = strtok (NULL, " "); x++; } y++; } fclose(plik); printf("\nmacierz poczatkowa\n"); for(int y_=0; y_<ysize;y_++){ for(int x_=0; x_<xsize; x_++ ){ if (x_ == xsize-1) printf ("|"); printf("%5d ",macierz[x_][y_]); } printf("\n"); } for (y=0; y<ysize-1; y++){// Szukamy minimum w rzedzie int min_x=0; int min_val=macierz[0][y]; for (x=0; x< xsize-1 ; x++) if ( macierz[x][y] < min_val ) { min_val = macierz[x][y]; min_x = x; } for (x=0; x< xsize-1 ; x++) macierz[x][y] = macierz[x][y] - min_val; } for (x=0; x<xsize-1; x++){// Szukamy minimum w kolumnie int min_y=0; int min_val=macierz[x][0]; for (y=0; y< ysize-1 ; y++) if ( macierz[x][y] < min_val ) { min_val = macierz[x][y]; min_y = y; } for (y=0; y< ysize-1 ; y++) macierz[x][y] = macierz[x][y] - min_val; } printf("\nmacierz po normalizacji \n"); for(int y_=0; y_<ysize;y_++){ for(int x_=0; x_<xsize; x_++ ){ if (x_ == xsize-1) printf ("|"); printf("%5d ",macierz[x_][y_]); } printf("\n"); }// Proces rozkładu zapotrzebowania transportowego for (y=0; y<ysize-1; y++){ int jest, ile; do{ for (x=0; x<xsize-1; x++){ if (macierz[x][y]==0){ jest=x; for (y=0; y<ysize-1; y++){ if (macierz[x][y]==0){ jest=x; cout<<x; } } } if (macierz[x][y]==0){ int Ai = macierz[xsize-1][y]; int Bi = macierz[x][ysize-1]; int Mini=Ai; if (Bi<Ai) Mini=Bi; macierz[x][y] = Mini; macierz[xsize-1][y] -= Mini; macierz[x][ysize-1] -= Mini; } else macierz[x][y] = -200; } } while(jest=0); } macierz[3][3] = 0; printf("\nmacierz po optymallizacji \n"); for(int y_=0; y_<ysize;y_++){ for(int x_=0; x_<xsize; x_++ ){ if (x_ == xsize-1) printf ("|"); printf("%5d ",macierz[x_][y_]); } printf("\n"); } system("PAUSE"); return EXIT_SUCCESS;}