Найти сумму одинаковых позитивных элементов массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

1. Задан одномерный массив A(10) целых чисел. Ввести массив в главной программе с помощью счётчика псевдослучайных чисел. Найти сумму одинаковых позитивных элементов массива. 2. Нахождение суммы одинаковых позитивных чисел оформить в виде функции, что возвращает результат в главную.
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. int summa(int A[10]);
  5. main()
  6. {
  7. clrscr();
  8. int A[10],i;
  9. randomize();
  10. for(i=0;i<10;i++)
  11. {
  12. A[i]=rand()%20+1;
  13. printf("A[%i]=%i\n",i,A[i]);
  14. }
  15. printf("\nSumma: %d",summa(A));
  16. getch();
  17. return 0;
  18. }
  19. int summa(int A[10])
  20. {
  21. int j,Sum=0;
  22. for(j=0;j<10;j++)
  23. {
  24. if(A[j]>0) Sum+=A[j]; // что ещё нужно прописать после if, чтобы найти сумму одинаковых позитивных элементов массива?
  25. }
  26. return Sum;
  27. }

Решение задачи: «Найти сумму одинаковых позитивных элементов массива»

textual
Листинг программы
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. using namespace std;
  6.  
  7. int summa(int A[10]);
  8.  
  9. int main()
  10. {
  11.     setlocale(LC_ALL, ("Russian"));
  12.    
  13.     int A[10], i;
  14.     for (i = 0; i<10; i++)
  15.     {
  16.         A[i] = rand() % 20 + 1;
  17.         printf("A[%i]=%i\n", i, A[i]);
  18.     }
  19.     printf("\nSumma: %d", summa(A));
  20.    
  21.  
  22.     cout << endl;
  23.     system("pause");
  24.     return 0;
  25. }
  26. int summa(int A[10])
  27. {
  28.     int Sum = 0;
  29.     for (int i = 0; i<10; i++)
  30.     {
  31.         for (int j = i+1; j < 10; j++)
  32.         {
  33.             if (A[i] == A[j])
  34.             {
  35.                 Sum += A[i] + A[j];
  36.             }
  37.         }
  38.     }
  39.     return Sum;
  40. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы