Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 10
void wyswietlanie(int **macierz,int a,int b,int wysokosc,int szerokosc)
{
for(a=0;a<wysokosc;a++)
{
for(b=0;b<szerokosc;b++)
{
printf("%d ",macierz[a][b]);
}
printf("
");
}
printf("
");
}
int main(int argc, char ** argv)
{
if(argc<3)
{
printf("PODAJ WSZYSTKIE ARGUMENTY WEJSCIOWE");
}
if(argc>=3)
{
int a,b,szerokosc1,wysokosc1,szerokosc2,wysokosc2,**mac,**mact,i;
srand(time(NULL));
wysokosc1=atoi(argv[1]);
szerokosc1=atoi(argv[2]);
wysokosc2=szerokosc1;
szerokosc2=wysokosc1;
mac = (int **) malloc(wysokosc1*sizeof(int));
for(a=0;a<wysokosc1;a++)
{
mac[a] = (int *) malloc(szerokosc1*sizeof(int));
}
mact = (int **) malloc(wysokosc2*sizeof(int));
for(a=0;a<wysokosc2;a++)
{
mact[a] = (int *) malloc(szerokosc2*sizeof(int));
}
for(a=0;a<wysokosc1;a++)
for(b=0;b<szerokosc1;b++)
mac[a][b]=rand() %M;
//transponowanie macierzy
for(a=0;a<szerokosc1;a++)
{
for(b=0;b<wysokosc1;b++)
mact[a][b]=mac[b][a];
}
//WYSWIETLANIE
printf("MACIERZ WYGENEROWANA
");
wyswietlanie(mac,a,b,wysokosc1,szerokosc1);
printf("MACIERZ TRANSPONOWANA
");
wyswietlanie(mact,a,b,wysokosc2,szerokosc2);
for(i = 0; i < wysokosc1; i++)
free(mac[i]);
free(mac);
for(i = 0; i < wysokosc2; i++)
free(mact[i]);
free(mact);
getchar();
}
return 0;
}