Вывести числовой квадрат заданного размера

Что-то не так, можно подсказку?) Выводит правильно, только если ввожу 2.

Пример ввода

2

Пример вывода

1 2

3 4

Условие задачи:

Вывести числовой квадрат заданного размера. Выведенные числа начинаются с единицы и постоянно увеличиваются. В каждой строке числа разделены пробелами. Размер считать с клавиатуры.

 #include <stdio.h>

int main() {  
    int total;  
    int temp = 1;

    scanf("%d", &total);
    printf("%d ", 1);

    for ( int i = 0; i < total; i++ ) {
        for ( int j = 0; j < i; j++ ) {
            temp += 1;
            printf("%d ", temp);
        }
        temp += 1;
        printf("%d\n", temp);
    }
    return 0;
}

Ответы (4 шт):

Автор решения: xcorter

Попробуйте заменить

   for ( int i = 0; i < total; i++ ) {
        for ( int j = 0; j < i; j++ ) {
            temp += 1;
            printf("%d ", temp);
        }
        temp += 1;
        printf("%d\n", temp);
    }

на

for ( int i = 0; i < total; i++ ) {
    for ( int j = 0; j < i; j++ ) {
        temp += 1;
        printf("%d ", temp);
    }
    printf("\n");
}
→ Ссылка
Автор решения: avp

Внутренний цикл тоже до total (границы обоих циклов д.б. одинаковые, тогда получится квадрат).

→ Ссылка
Автор решения: gecube

Должно быть

...
for ( int i = 0; i < total; i++ )
{
  for ( int j = 0; j < total; j++ )
  {
    temp++;
    printf("%d  ", temp);
  }
  printf("\n");
}

Тогда будет выведено total чисел в строчку и total строчек. Итого - total*total элементов, что и требовалось.

Либо легко можно отделаться одним циклом:

for (int i = 0; i < total * total; i++)
{
  printf("%d ", i + 1);
  if (((i + 1) % total) == 0) printf("\n");
  // если вывели total элементов - перевод строки
}

P.S. printf("%d ", 1); перед циклами необходимо убрать. Это заведомо лишнее действие.

→ Ссылка
Автор решения: arcs_host

Кому интересно конечное решение вот такое:

#include <stdio.h>

int main() {

int total;

int temp = 0;

scanf("%d", &total);

for ( int i = 0; i < total; i++ ) {
    for ( int j = 0; j < total; j++ ) {
        temp += 1;
        printf("%3d", temp);
    }
    printf("\n");
}
return 0;
}
→ Ссылка