fork download
  1. #include <iostream>
  2. //#include <vector>
  3. #include <omp.h>
  4. #include <climits>
  5. using namespace std;
  6. void min_reduction(int arr[], int n) {
  7. int min_value = INT_MAX;
  8. #pragma omp parallel for reduction(min: min_value)
  9. for (int i = 0; i < n; i++) {
  10. if (arr[i] < min_value) {
  11. min_value = arr[i];
  12. }
  13. }
  14. cout << "Minimum value: " << min_value << endl;
  15. }
  16. void max_reduction(int arr[], int n) {
  17. int max_value = INT_MIN;
  18. #pragma omp parallel for reduction(max: max_value)
  19. for (int i = 0; i < n; i++) {
  20. if (arr[i] > max_value) {
  21. max_value = arr[i];
  22. }
  23. }
  24. cout << "Maximum value: " << max_value << endl;
  25. }
  26. void sum_reduction(int arr[], int n) {
  27. int sum = 0;
  28. #pragma omp parallel for reduction(+: sum)
  29. for (int i = 0; i < n; i++) {
  30. sum += arr[i];
  31. }
  32. cout << "Sum: " << sum << endl;
  33. }
  34. void average_reduction(int arr[], int n) {
  35. int sum = 0;
  36. #pragma omp parallel for reduction(+: sum)
  37. for (int i = 0; i < n; i++) {
  38. sum += arr[i];
  39. }
  40. cout << "Average: " << (double)sum / (n-1) << endl;
  41. }
  42. int main() {
  43. int *arr,n;
  44. cout<<"\n enter total no of elements=>";
  45. cin>>n;
  46. arr=new int[n];
  47. cout<<"\n enter elements=>";
  48. for(int i=0;i<n;i++)
  49. {
  50. cin>>arr[i];
  51. }
  52. // int arr[] = {5, 2, 9, 1, 7, 6, 8, 3, 4};
  53. // int n = size(arr);
  54. min_reduction(arr, n);
  55. max_reduction(arr, n);
  56. sum_reduction(arr, n);
  57. average_reduction(arr, n);
  58. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
 enter total no of elements=>
 enter elements=>Minimum value: 0
Maximum value: 0
Sum: 0
Average: 0