All pastes #897816 Raw Edit

takie

public text v1 · immutable
·published 2008-02-09 21:26 UTC
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;
}