Программа крашится после ввода количества членов - 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;
}

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

  1. Объявление переменных: n, m, sum_chet, sum_nechet, niz, verh, i, t (для временной метки)
  2. Инициализация времени для использования в генераторе случайных чисел
  3. Ввод нижней границы: printf(\nVvedite nizhnuiu granitsu:); scanf(%d, &niz);
  4. Ввод верхней границы: printf(\nVvedite verhnuiu granitsu:); scanf(%d, &verh);
  5. Ввод количества членов: printf(\nVvedite kolichestvo chlenov:); scanf(%d, &n);
  6. Создание массива vector размером n: int vector[n];
  7. Заполнение массива vector случайными числами, удовлетворяющими заданным условиям (больше или равно niz и меньше или равно verh)
  8. Вывод массива vector: printf(\nVector: \n);
  9. Поиск первого четного числа в массиве и суммирование четных чисел
  10. Поиск первого нечетного числа в массиве и суммирование нечетных чисел
  11. Вывод суммы четных и нечетных чисел: printf(sum_nechet = %d, sum_chet =%d\n, sum_nechet, sum_chet);
  12. Возврат 0, чтобы указать, что программа успешно завершилась

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


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

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

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