Показать сообщение отдельно

  #9  
Старый 24.12.2009, 19:30
Alexey2
Новичок
Регистрация: 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);
      }
 
Ответить с цитированием