Похоже, вы описываете матрицу NxN.Для N == 10, инициализируемый нулями, он может концептуально выглядеть следующим образом:
Затем вы описываете, что хотите переместить число вокруг,Например, поместите значение в определенное место, например, поместите 55 в matrix[3][3]
.Имея в виду систему индексов с нулевым индексом, матрица теперь будет выглядеть так:
Шаги, которые могут быть реализованы для этого:
Шаги:
0) вызвать программу со значением командной строки для порядка матрицы.
1) создать таблицу nxn, используя значение, введенное в командной строке.
2) предложить пользователю ввести, где и какое значение поместить, или выйти.
3) очистить предыдущее содержимое.
4) установить новое значение.
5) перейти к шагу 2.
Пример реализации:
int main(int argc, char *argv[])
{
int x = 0, y = 0;
int value = 0;
if(argc != 2)
{
printf("Usage: %s <integer value for order>\n Exiting", argv[0]);
getchar();
return 0;
}
int order = atoi(argv[1]);
int matrix[order][order];
int exit = 'x';
while(exit != 'q')
{
printf("Enter 3 space delimited digits with values from 0 to %d.\n\n", order-1);
scanf(" %d %d %d", &x, &y, &value);
memset(matrix, 0, x*y*sizeof(int));
matrix[x][y] = value;
for(int i=0;i<order;i++)
{
for(int j=0;j<order;j++)
{
if((i==x) && (j==y))
{
printf("%3d", value);
if(j == order-1)printf("\n");
}
else
{
printf("%3d", 0);
if(j == order-1)printf("\n");
}
}
}
printf("\nHit 'q' to quit, any other key to continue");
exit = getchar();
}
return 0;
}
Для матрицы order == 10
, проверено на следующие записи командной строки x
, y
и value
:
0 0 99
, 0 9 99
, 9 0 99
, 9 9 99