Найти сумму элементов массива с элемента, равного "5" - C (СИ)
Формулировка задачи:
Сама программа:
Программа проходит, но если в массиве две и более "5" -- берёт последнюю. Мне надо с первой. Я вставила в условие второго цикла for "k!=5", но не помогло.
#include <stdio.h>
#include <math.h>
#include <locale.h>
const int N = 15;
main()
{
setlocale(LC_ALL,"Rus");
int A[N], i, sum=0, k=0;
printf("Введите масив m: \n");
for ( i = 0 ; i < N ; i++)
{
printf("Введите A[%d]: ", i);
scanf("%d", &A[i]);
}
for (i=0; k!=5, i < N; i ++)
{
if (A[i]==5) k=i;
}
for (; k<N; k++)
{
sum+=A[k];
}
printf("Сумма: %d", sum);
}Решение задачи: «Найти сумму элементов массива с элемента, равного "5"»
textual
Листинг программы
for (i=0; i < N; i++){
if (A[i] == 5){
k = i;
break;
}
}
Объяснение кода листинга программы
- Переменная
iинициализируется значением 0. - Переменная
Nсодержит размер массива. - Переменная
Aсодержит массив. - Переменная
kинициализируется значением 0. - В цикле происходит проверка каждого элемента массива, начиная с индекса 0 и до тех пор, пока не будет найден элемент, равный 5.
- Если элемент равен 5, то его индекс сохраняется в переменной
k. - Цикл прерывается, когда найден элемент, равный 5.
- Значение переменной
kбудет содержать индекс элемента, равного 5. - Сумма элементов массива с элемента, равного 5, будет равна 5 + (5 + 1) + (5 + 2) + ... + (5 + k-1).
- Сумма элементов массива с элемента, равного 5, будет равна k*(k+1)/2.