При определенном условии сгенерировать массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно при определенном условии сгенерировать массив, если написать это условие:
int i,j;
for(i=0; i<n; i++)
 for(j=0; j<n; j++)
  x[i][j]=(j<n-i-1) ? 0:j+1;
то получается такой массив: 0 0 0 4 0 0 3 4 0 2 3 4 1 2 3 4. Как подправить условие, чтобы вывело такой массив: 0 0 0 1 0 0 1 2 0 1 2 3 1 2 3 4. То есть массив должен и дальше продолжаться при разной размерности
x[i][j]=(j<n-i-1) ? 0:j+1;
- если в этой строчке изменить условие на
x[i][j]=(j<n-i-1) ? 0:j+i-2;
то он выведет правильный массив при размерности 4, но при больших размерностях уже будет не правильный

Решение задачи: «При определенном условии сгенерировать массив»

textual
Листинг программы
#include <stdio.h>
 
int main(void){
    int i, j, size;
 
    printf("Size: ");
    scanf("%d", &size);
    printf("\n");
    for ( i = 0; i < size; ++i )
        for ( j = 0; j < size; ++j )
            printf("%d%c", ( i + j + 2 - size < 0 ) ? 0 : i + j + 2 - size, ( j < size - 1 ) ? ' ' : '\n');
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены три переменные: i, j, size.
  2. Пользователю предлагается ввести размер массива с помощью функции scanf.
  3. Выводится размер массива.
  4. Используя два вложенных цикла, выводится массив.
  5. В каждой ячейке массива проверяется условие ( i + j + 2 - size < 0 ) ? 0 : i + j + 2 - size, которое генерирует уникальные значения для каждой ячейки массива.
  6. Если это условие истинно, то выводится 0, иначе выводится значение ( i + j + 2 - size ).
  7. После каждой строки массива выводится символ новой строки '\n', если значение j меньше размера массива минус один.
  8. Возвращается 0, завершая программу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы