Программа крашится после ввода количества членов - C (СИ)
Формулировка задачи:
Что тут не так? Программа крашится после ввода количества членов.
#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int n, m, sum_chet=0, sum_nechet=0, niz, verh, i; time_t t; // Текущее время для инициализации генератора случайных чисел(рандомайзера) srand((unsigned) time(&t)); // Инициализация рандомайзера printf("\nVvedite nizhnuiu granitsu: "); scanf("%d", &niz); printf("\nVvedite verhnuiu granitsu: "); scanf("%d", &verh); printf("\nVvedite kolichestvo chlenov: "); scanf("%d", &n); int vector[i]; printf("\nVector: \n"); for(i=0; i<n; i++) { vector[i]=rand(); // Получение случайного числа в диапазоне от niz до verh printf("%5d", vector[i]); } for(i=0; i<10; i++){ if((i)&1==1 && vector[i]&1==0){ sum_chet+=vector[i]; } if((i)&1==0 && vector[i+1]&1==0){ sum_nechet+=vector[i]; } } printf("sum_nechet = %d, sum_chet =%d\n", sum_nechet, sum_chet); return 0; }
Решение задачи: «Программа крашится после ввода количества членов»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int n, m, sum_chet=0, sum_nechet=0, niz, verh, i; time_t t; // Текущее время для инициализации генератора случайных чисел(рандомайзера) srand((unsigned) time(&t)); // Инициализация рандомайзера printf("\nVvedite nizhnuiu granitsu: "); scanf("%d", &niz); printf("\nVvedite verhnuiu granitsu: "); scanf("%d", &verh); printf("\nVvedite kolichestvo chlenov: "); scanf("%d", &n); int vector[n]; printf("\nVector: \n"); for(i=0; i<n; i++) { int s = 1; int t =rand()%verh; do { t =rand()%verh; if (t < verh || t > niz) s=0; } while(s); vector[i]=t; // Получение случайного числа в диапазоне от niz до verh printf("%5d ", vector[i]); } for(i=0; i<n; i++){ if(vector[i]%2==0){ sum_chet+=vector[i]; } else { sum_nechet+=vector[i]; } } printf("sum_nechet = %d, sum_chet =%d\n", sum_nechet, sum_chet); return 0; }
Объяснение кода листинга программы
- Объявление переменных: n, m, sum_chet, sum_nechet, niz, verh, i, t (для временной метки)
- Инициализация времени для использования в генераторе случайных чисел
- Ввод нижней границы: printf(
\nVvedite nizhnuiu granitsu:
); scanf(%d
, &niz); - Ввод верхней границы: printf(
\nVvedite verhnuiu granitsu:
); scanf(%d
, &verh); - Ввод количества членов: printf(
\nVvedite kolichestvo chlenov:
); scanf(%d
, &n); - Создание массива vector размером n: int vector[n];
- Заполнение массива vector случайными числами, удовлетворяющими заданным условиям (больше или равно niz и меньше или равно verh)
- Вывод массива vector: printf(
\nVector: \n
); - Поиск первого четного числа в массиве и суммирование четных чисел
- Поиск первого нечетного числа в массиве и суммирование нечетных чисел
- Вывод суммы четных и нечетных чисел: printf(
sum_nechet = %d, sum_chet =%d\n
, sum_nechet, sum_chet); - Возврат 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д