Ошибка сегментирования в программе - 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, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д