Ввод элементов массива и сумма элементов до максимального
Есть массив, который мы вводим с клавиатуры. Необходимо определить из этих элементов максимальный (например, массив [1 33 24 -4 36 9], максимальный эл-т это [36]) и посчитать сумму элементов до него.
Я сделал счёт суммы всех элементов больше нуля, но больше не знаю :(
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int a[20], n, i, s;
s = 0;
i = 0;
n = 0;
a[0] = 0;
printf("Insert array's size (less than or equal 20, more than 0): ", n);
scanf_s("%d", &n);
while (n > 20 || n <= 0) {
printf("Size should be less than 20!\n");
printf("Insert array's size (less than or equal 20, more than 0): ", n);
scanf_s("%d", &n);
}
while (i <= n-1) {
printf("Insert %d element: ", i+1);
scanf_s("%d", &a[i+1]);
i++;
if (a[i] > 0) {
s = s + a[i];
}
}
printf("\nSum of elements, which > 0 = %d\n", s);
}
Спасибо!
Ответы (1 шт):
Автор решения: Pes Barbos
→ Ссылка
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 10
int main()
{
srand(time(NULL));
int a[SIZE];
int max = 0;
int sum = 0;
for (int i = 0; i < SIZE; i++)
{
a[i] = rand() % 20 - 10;
//scanf("%d", &a[i]);
printf("%4d", a[i]);
if (max < a[i])
max = a[i];
}
printf("\n");
for (int i = 0; i < SIZE; i++)
{
if (a[i] != max && a[i] > 0)
{
sum += a[i];
}
if (a[i] == max)break;
}
printf("Max - %d\nSum - %d\n", max, sum);
return 0;
}