Ошибка сегментирования в программе - C (СИ)

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

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

Подскажите пожалуйста почему выходит ошибка.(Только начал программировать на Си)
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <iso646.h>
 
int main()
{
    int i, j, l, N, M;
    int A[M][N];
    M = 2;
 
    printf("Введите натуральное число> ");
    scanf(" %d", N);
    printf("\n");
    for (j = 0; j <= N; j++)
        A[1][j] = j;
    for (j = 0; j < 2; j++)
        A[2][j] = 0;
    for (j = 2; j <= N; j++) {
        if ((j % 2 == 0) || (j % 3 == 0) || (j % 5 == 0) || (j % 7 == 0)) {
            A[2][j] = 0;
        } else {
            A[2][j] = 1;
        }
    }
    A[2][2] = A[2][3] = A[2][5] = A[2][7] = 1;
    for (i = 1; i <= M; i++) {
        for (j = 0; j <= N; j++) {
            printf("%4d\t", A[i][j]);
        }
        printf("\n");
    }
    return (0);
}

Решение задачи: «Ошибка сегментирования в программе»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <iso646.h>
 
int main(int argc, char **argv)
{
  int i, j, N, M;
  M = 2;
 
  printf("Введите натуральное число> ");
  scanf(" %d", &N);
  int A[M][N];
  printf("\n");
  for (j = 0; j <= N; j++)
    A[1][j] = j;
  for (j = 0; j < 2; j++)
    A[2][j] = 0;
  for (j = 2; j <= N; j++) {
    if ((j % 2 == 0) || (j % 3 == 0) || (j % 5 == 0) || (j % 7 == 0)) {
      A[2][j] = 0;
    } else {
      A[2][j] = 1;
      }
    }
  A[2][2] = A[2][3] = A[2][5] = A[2][7] = 1;
  for (i = 1; i <= M; i++) {
    for (j = 0; j <= N; j++) {
      printf("%4d\t", A[i][j]);
    }
    printf("\n");
  }
  return (0);
}

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

  1. Объявление переменных i, j, N, M.
  2. Инициализация переменной M значением 2.
  3. Вывод сообщения с просьбой ввести натуральное число.
  4. Считывание введенного числа в переменную N с помощью функции scanf.
  5. Объявление массива A размером MxN.
  6. Вывод горизонтальной линии из символов -.
  7. Заполнение первого столбца массива A значениями от 0 до N-1.
  8. Заполнение второго столбца массива A значениями 0 и 1 в соответствии с условием (j % 2 == 0) || (j % 3 == 0) || (j % 5 == 0) || (j % 7 == 0).
  9. Установка определенных значений в массиве A для столбцов 2, 3, 5 и 7.
  10. Вывод значений массива A в виде таблицы 10 строк по M столбцов.
  11. Возврат значения 0, что означает успешное завершение программы.

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


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

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

8   голосов , оценка 3.5 из 5