Я решаю проблему на хакерранке.Он печатает число в виде спирали, уменьшая его значение при каждом завершении круга.
4 4 4 4 4 4 4
4 3 3 3 3 3 4
4 3 2 2 2 3 4
4 3 2 1 2 3 4
4 3 2 2 2 3 4
4 3 3 3 3 3 4
4 4 4 4 4 4 4
//Printing Pattern using Loops
/* for eg. for n = 4
4 4 4 4 4 4 4
4 3 3 3 3 3 4
4 3 2 2 2 3 4
4 3 2 1 2 3 4
4 3 2 2 2 3 4
4 3 3 3 3 3 4
4 4 4 4 4 4 4
*/
//Author: Arvind Bakshi
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int n,row,col,size;
scanf("%d", &n);
// Complete the code to print the pattern.
size=2*n-1;
int arr[size][size];
//n=n+1;
while(n>0){
row=0;
col=0;
while(col<size){
arr[row][col] = n;
col++;
}
col=size-1;
row=0;
while(row<size){
arr[row][col]=n;
row++;
}
row = size-1;
col = size-1;
while (col >=0) {
arr[row][col] = n;
col--;
}
col = 0;
row = size-1;
while (row >=0) {
arr[row][col] = n;
row--;
}
n--;
}
for(row=0;row<size;row++){
for(col=0;col<size;col++){
printf("%d",arr[row][col]);
}
printf("\n");
}
return 0;
}
Ожидаемый результат равен
2 2 2
2 1 2
2 2 2
Я получаю
111
101
111
В Интернете доступно множество кодов, я просто хочу знать свою ошибку, в которой я делаю ошибку.Пожалуйста, не отмечайте это как повтор.