Предмет: Информатика,
автор: coolkate1
Язык Си. Известно что в массиве 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;
restIess:
Ток щас увидел, что у тебя там в коде, так тебе чистый СИ нужен или плюсы тоже подойдут?
Ответы
Автор ответа:
0
#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;
}
Похожие вопросы
Предмет: Окружающий мир,
автор: lera130320071
Предмет: Русский язык,
автор: esetbekbotova
Предмет: Русский язык,
автор: Anatolya23
Предмет: Литература,
автор: kiko13024p9bs1a
Предмет: Алгебра,
автор: yuriybaluba