Язык Си. Известно что в массиве x есть один элемент равный 1. Определите ,где он находится и вычислите сумму положительных элементов последующих за ним. Если есть вариант проще, чем мой, то напишите, пожалуйста
Я написала такой вот код (фрагмент), но он работает некорректно, т к не понятно откуда берет сумму, даже если элемента 1 нет :
printf("\nМассив X[n]:\n");
for (i = 0; i < n; i++) {
X[i] = -5 + rand() % 15;
cout << "X[" << i << "] = " << X[i] << endl;
}
for (i = 0; i < n; i++)
{
if (X[i] == 1) {
index = i;
}
}
if (index == 55) cout << "i is empty" << endl;
for (i = index + 1; i < n; i++) {
if (X[i] > 0) sum += X[i];
}
if (index != 55) printf_s("Индекс элемента, содержащего единицу: %d\n", index);
if (index != 55) printf_s("Сумма последующих элементов: %d\n", sum);
return 0;
Answers & Comments
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
#define SIZE 10
int main()
{
srand(time(NULL));
int arr[SIZE], idx1 = SIZE + 1, _sum = 0;
for (int i = 0; i < SIZE; i++) {
arr[i] = -5 + rand() % 10;
printf("%i ", arr[i]);
}
for (int i = 0; i < SIZE; i++) {
if (arr[i] == 1 && idx1 == SIZE + 1)
idx1 = i;
if (i > idx1 && arr[i] > 0)
_sum += arr[i];
}
printf("\n%i\n", _sum);
return 0;
}