
24.12.2009, 19:30
|
|
Новичок
Регистрация: 30.05.2009
Сообщений: 12
Провел на форуме: 69608
Репутация:
0
|
|
Помогите исправить ошибки..Нужно инвертировать матрицу относительно побочной диагонали... Язык c.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define RND (rand()%100-50)
int vvod_hand(int strok, int stolb,int massiv[50][50])
{int i; int j;char buffer[100];
{for(i=1; i<=strok; i++)
{for(j=1; j<=stolb; j++)
{printf("massiv[%d][%d]= ",i,j);
fgets(buffer,10,stdin);
massiv[i][j]=atoi(buffer);
}}}
}
int vvod_rand(int strok, int stolb,int massiv[50][50])
{int i; int j;
{for(i=1; i<=strok; i++)
for(j=1; j<=stolb; j++)
massiv[i][j]=rand()%50;
}
}
int vivod(int strok, int stolb,int massiv[50][50])
{int i; int j;
{for(i=1; i<=strok; i++)
{
{for(j=1; j<=stolb; j++)
printf("%d ",massiv[i][j]);
}
printf("\n");}
}
}
main(int argc, char*argv[])
{int a, b, i, x, kol_vo, strok, stolb, j, p;
int massiv[50][50];
char buffer[100];
srand (time (NULL));
if (argc<3)
{puts("programma vvivodit massiv");
puts("vvedite ./labor4 kol_vo strok kol_vo stolbcov sposob vvoda <klava/rand>");
}
strok=atoi(argv[1]);
if (strok<1 || strok>50)
{puts("kol-vo strok >1 no <100");
getchar(); exit(0);}
stolb=atoi(argv[2]);
if (stolb<1 || stolb>50)
{puts("kol-vo stolbcov >1 no <100");
getchar(); exit(0);}
if(strcmp(argv[3], "klava")==0)
vvod_hand(strok,stolb,massiv);
else
vvod_rand(strok,stolb,massiv);
printf("\n");
printf("Massiv: \n");
vivod(strok,stolb,massiv);
//invertirovanie
for(i=1;i<=strok/2;i++)
{
for(j=1;j<=stolb/2;j++)
{
if(j<stolb-i-1)//tolko elementy nad pobochnoy diagonalyu
massiv[i][j] = massiv[strok][stolb-j];//i menyaem
}
}
//vyvodim na ekran
printf("Inverted matrix: \n");
for(i=1;i<=strok;i++)
{
for(j=1;j<=stolb;j++)
{
printf("%i ",massiv[i][j]);
}
printf("\n");
}
getchar();
exit(0);
}
|
|
|