Advertisement
llirik

Untitled

May 20th, 2021
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. //#include "StdAfx.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <locale.h>
  5. #include <iostream>
  6. #include <random>
  7.  
  8. using namespace std;
  9.  
  10. /*
  11.     Мой вариант: ( он вроде 2 )
  12.     Напишите функцию, которая находит в массиве наибольший элемент и возвращает указатель на него.
  13.     Тестовая программа:
  14.     1) инициализируйте и заполните 2 массива ( они статические )
  15.     2) найдите наибольшие элементы в этих массивах
  16.     3) определить в каком из массивов наибольший элемент ближе к началу массива
  17. */
  18. double* max_in_array_return_pointer(double A[], int N) {
  19.     double* my_p = &A[0];
  20.     double my_max = A[0];
  21.     for (int i = 1; i < N; i++) {
  22.         if (A[i] > my_max) {
  23.             my_max = A[i];
  24.             my_p = &A[i];
  25.         }
  26.     }
  27.  
  28.     return my_p;
  29. }
  30.  
  31. int scheize(double A[], int N) {
  32.     srand(time(0));
  33.     cout << "Случайно заполненный массив: ";
  34.     for (int i = 0; i < N; i++) {
  35.         A[i] = (double) rand()/pow(10, 8) - 10;
  36.         cout << A[i] << "   ";
  37.     }
  38.     cout << endl;
  39.  
  40.     double* my_p = max_in_array_return_pointer(A, N);
  41.     cout << "Указатель на максимальный элемента массива = " << my_p << endl << endl;
  42.    
  43.     int my_i = 0;
  44.     for (double* p = A; p < A + N; p++) {
  45.         if (p == my_p) {
  46.             break;
  47.         }
  48.         my_i++;
  49.     }
  50.    
  51.     return my_i;
  52. }
  53.  
  54. int main() {
  55.     int N1;
  56.     cout << "Введите N1 количество элементов массива A: ";
  57.     cin >> N1;
  58.     double A[N1];
  59.     int my_i_A = scheize(A, N1);
  60.    
  61.     int N2;
  62.     cout << "Введите N2 количество элементов массива B: ";
  63.     cin >> N2;
  64.     double B[N2];
  65.     int my_i_B = scheize(B, N2);
  66.    
  67.    
  68.     if (my_i_A < my_i_B) {
  69.         cout << "В массиве A наибольший элемент находится ближе к началу массива" << endl;
  70.     }
  71.     else if (my_i_A > my_i_B) {
  72.         cout << "В массиве B наибольший элемент находится ближе к началу массива" << endl;
  73.     }
  74.     else {
  75.         cout << "В массивах A и B индекса наибольших элементов массивов совпадают" << endl;
  76.     }
  77.    
  78.  
  79. system ("pause");
  80. return(0);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement