Найти сумму одинаковых позитивных элементов массива - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д