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