Найти сумму одинаковых позитивных элементов массива - 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;
}

Объяснение кода листинга программы

  1. #include - подключает библиотеку для работы с потоками ввода-вывода
  2. #include - подключает библиотеку для работы с файлами (stdio.h)
  3. #include - подключает библиотеку для работы с консолью (conio.h)
  4. #include - подключает библиотеку для работы с генерацией случайных чисел (stdlib.h)
  5. using namespace std; - позволяет использовать стандартное пространство имен std
  6. int summa(int A[10]); - объявление функции summa, которая принимает массив A размером 10 и возвращает сумму одинаковых элементов
  7. int main() - объявление функции main, которая является точкой входа в программу
  8. setlocale(LC_ALL, (Russian)); - установка локали на русский язык
  9. int A[10], i; - объявление массива A размером 10 и переменной i
  10. for (i = 0; i<10; i++) - цикл, который заполняет массив A случайными числами от 1 до 20
  11. A[i] = rand() % 20 + 1; - присваивает элементу массива A случайное число от 1 до 20
  12. printf(A[%i]=%i\n, i, A[i]); - вывод элемента массива и его индекса
  13. printf(\nSumma: %d, summa(A)); - вывод суммы одинаковых элементов массива A
  14. cout << endl; - переход на новую строку
  15. system(pause); - приостановка программы до нажатия клавиши
  16. return 0; - завершение функции main
  17. int Sum = 0; - инициализация переменной Sum, которая будет хранить сумму одинаковых элементов
  18. for (int i = 0; i<10; i++) - цикл, который проходит по всем элементам массива A
  19. for (int j = i+1; j < 10; j++) - вложенный цикл, который сравнивает текущий элемент массива с остальными элементами
  20. if (A[i] == A[j]) - условие, которое проверяет равенство текущего элемента массива с другим элементом
  21. { - начало блока кода, который выполняется при выполнении условия
  22. Sum += A[i] + A[j]; - добавление суммы текущего элемента и найденного одинакового элемента к переменной Sum
  23. } - конец блока кода
  24. return Sum; - возврат значения переменной Sum в функцию main

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы