Найти сумму одинаковых позитивных элементов массива - C (СИ)
Формулировка задачи:
1. Задан одномерный массив A(10) целых чисел. Ввести массив в главной программе с помощью счётчика псевдослучайных чисел. Найти сумму одинаковых позитивных элементов массива.
2. Нахождение суммы одинаковых позитивных чисел оформить в виде функции, что возвращает результат в главную.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int summa(int A[10]);
main()
{
clrscr();
int A[10],i;
randomize();
for(i=0;i<10;i++)
{
A[i]=rand()%20+1;
printf("A[%i]=%i\n",i,A[i]);
}
printf("\nSumma: %d",summa(A));
getch();
return 0;
}
int summa(int A[10])
{
int j,Sum=0;
for(j=0;j<10;j++)
{
if(A[j]>0) Sum+=A[j]; // что ещё нужно прописать после if, чтобы найти сумму одинаковых позитивных элементов массива?
}
return Sum;
}Решение задачи: «Найти сумму одинаковых позитивных элементов массива»
textual
Листинг программы
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int summa(int A[10]);
int main()
{
setlocale(LC_ALL, ("Russian"));
int A[10], i;
for (i = 0; i<10; i++)
{
A[i] = rand() % 20 + 1;
printf("A[%i]=%i\n", i, A[i]);
}
printf("\nSumma: %d", summa(A));
cout << endl;
system("pause");
return 0;
}
int summa(int A[10])
{
int Sum = 0;
for (int i = 0; i<10; i++)
{
for (int j = i+1; j < 10; j++)
{
if (A[i] == A[j])
{
Sum += A[i] + A[j];
}
}
}
return Sum;
}
Объяснение кода листинга программы
- #include
- подключает библиотеку для работы с потоками ввода-вывода - #include
- подключает библиотеку для работы с файлами (stdio.h) - #include
- подключает библиотеку для работы с консолью (conio.h) - #include
- подключает библиотеку для работы с генерацией случайных чисел (stdlib.h) - using namespace std; - позволяет использовать стандартное пространство имен std
- int summa(int A[10]); - объявление функции summa, которая принимает массив A размером 10 и возвращает сумму одинаковых элементов
- int main() - объявление функции main, которая является точкой входа в программу
- setlocale(LC_ALL, (
Russian)); - установка локали на русский язык - int A[10], i; - объявление массива A размером 10 и переменной i
- for (i = 0; i<10; i++) - цикл, который заполняет массив A случайными числами от 1 до 20
- A[i] = rand() % 20 + 1; - присваивает элементу массива A случайное число от 1 до 20
- printf(
A[%i]=%i\n, i, A[i]); - вывод элемента массива и его индекса - printf(
\nSumma: %d, summa(A)); - вывод суммы одинаковых элементов массива A - cout << endl; - переход на новую строку
- system(
pause); - приостановка программы до нажатия клавиши - return 0; - завершение функции main
- int Sum = 0; - инициализация переменной Sum, которая будет хранить сумму одинаковых элементов
- for (int i = 0; i<10; i++) - цикл, который проходит по всем элементам массива A
- for (int j = i+1; j < 10; j++) - вложенный цикл, который сравнивает текущий элемент массива с остальными элементами
- if (A[i] == A[j]) - условие, которое проверяет равенство текущего элемента массива с другим элементом
- { - начало блока кода, который выполняется при выполнении условия
- Sum += A[i] + A[j]; - добавление суммы текущего элемента и найденного одинакового элемента к переменной Sum
- } - конец блока кода
- return Sum; - возврат значения переменной Sum в функцию main