Все было нормально, все работало, но при очередном запуске при вводе данных (1 2 3 4 5 6 7 8 9) программа просто стоит и ничего не выводит, и не на что не реагирует, пробовал написать и на CLion и в онлайн компиляторы и в терминале через gcc, программа просто простаивает и не реагирует
#include <stdio.h>
#include <locale.h>
int FindIndexFirstNegative(int arr[], int size)
{
for (int index = 0; index < size; index++)
{
if (arr[index] < 0)
{
return index;
}
}
return -1;
}
int FindIndexLastNegative(int arr[], int size)
{
for (int index = size - 1; index >= 0; index--)
{
if (arr[index] < 0)
{
return index;
}
}
return -1;
}
int MultiplyArrayElementsInRange(int arr[], int start, int end)
{
int mul = 1;
for (int index = start; index < end; index++)
{
mul *= arr[index];
}
return mul;
}
int MultiplyArrayElementsInRangeDifference(int arr[], int start, int end, int size)
{
int mul = 1;
for (int index = 0; index < start; index++)
{
mul *= arr[index];
}
for (int index = end; index < size; index++)
{
mul *= arr[index];
}
return mul;
}
void Menu()
{
int size = 0;
int choise = -1;
int arr[20];
int num;
if (scanf("%d", &num) == 1)
{
choise = num;
while (scanf( "%d", &num) == 1)
{
arr[size] = num;
size++;
}
}
switch (choise) {
case 0: {
printf("%d\n", FindIndexFirstNegative(arr, size));
break;
}
case 1: {
printf("%d\n", FindIndexLastNegative(arr, size));
break;
}
case 2: {
int first = FindIndexFirstNegative(arr, size);
int second = FindIndexLastNegative(arr, size);
printf("%d\n", MultiplyArrayElementsInRange(arr, first, second));
break;
}
case 3: {
int first = FindIndexFirstNegative(arr, size);
int second = FindIndexLastNegative(arr, size);
printf("%d\n", MultiplyArrayElementsInRangeDifference(arr, first, second, size));
break;
}
default:
printf("Данные некорректны");
}
}
int main()
{
Menu();
}
UPD: segmentation fault