Помогите с задачами на матрицы

  • Автор темы Xander7
  • Дата начала
Статус
Закрыто для дальнейших ответов.
X

Xander7

#1
Люди, помогите разобраться с задачами на матрицы... Они у меня ни в какую...
Например, такое задание: расположить произвольно вводимые цыфры в матрицу таким образом:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16 извените, просто рисунка нет, где вводимые числа - 1 2 3 4 5 и т.д. (ну тоесть расположить их змейкой). Смысл то я понимаю, но не могу понять, как такую прогу написать, а написать нужно на Borland C++. Если сможете попробуйте написать, но если выйдет, пожалуйста обЪесните как там всё работает, боюсь что я тупой малость :lol:
 
A

Anton Chik

#2
может я и перемудрил,но все же работает :)

Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
clrscr();
int a[128][128];//input matrix
int b[128][128];//output matrix
int N;
short int forward,first=1;
int i,j,row,col,r,r2,rr;
puts("Input N (1..128) :");
scanf("%d",&N);
for(i=0;i<N;i++)
{
puts("");
for(j=0;j<N;j++)printf("\na[%d][%d]=",i,j);scanf("%d",&a[i][j]);
}
row=col=r=rr=1;
forward=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(first)//first part
{
if(forward){row=r-1;col=rr-r;}
else {row=rr-r;col=r-1;}
b[row][col]=a[i][j];
r++;
if(r>rr)
 {
 rr++;
 forward=!forward;
 r=1;
 if(rr>N){
      first=0;
      rr=2;r=2;r2=N;
      }
 }
}
else// second part
{
if(forward){row=r-1;col=r2-1;}
else {row=r2-1;col=r-1;}
b[row][col]=a[i][j];
r++;
r2--;
if(r>N)
 {
 rr++;
 r2=N;
 r=rr;
 forward=!forward;
 }
}
for(i=0;i<N;i++)//RESULT
{
puts("");
for(j=0;j<N;j++)printf("%d\t",b[i][j]);
}
puts("\nPress any key...");
getch();
return 0;
}
 
X

Xander7

#3
Спасибо, все понял, вопросов больше не имею!!! :) B) ;)
 
Статус
Закрыто для дальнейших ответов.