1

Тема: Завдання на С++

Ось завдання https://pastenow.ru/4842fa0de43bc7fe6adf1e5a790a2e82
В мене виникла проблема коли я почав знаходити відношення мінімального значення до максимального.
Ось цей фрагмент пошуку:

for (int j = 0; j < a; j++) {
        if (randarr[j] > max1) {
            randarr[j] = max1;
        }
    }
    for (int j = 0; j < a; j++) {
        if (randarr[j] < min1) {
            randarr[j] = min1;
        }
    }
    depend1 = max1 / min1;
    cout << "Vidnoshenna max/min massuvy B = " << depend1;

Коли я все зробив, мені в консоль виводилося все добре і рахувалося все добре, а от після цього все почалося йти шкереберть.
СКРІН ДО: https://pastenow.ru/70a65b2ce20d492cd6c2333f0fca9364
СКРІН ПІСЛЯ: https://pastenow.ru/3d9c99de312179ed387386a1b1953e2a

#include<iostream>
#include<cstdlib>
using namespace std;

int main()
{
    const int a = 10;
    int randarr[a];
    float sum = 0;
    float depend1, depend2, depend3;
    const int r = 5;
    int tresh[r];
    float finishh[r];
    float max1 = randarr[0], max2 = tresh[0], max3 = finishh[0];
    float min1 = randarr[0], min2 = tresh[0], min3 = finishh[0];
    int t=0;   //t-лічильний відємних елементів
    srand(time(NULL));
    //Задання массиву
    for (int i = 0; i < a; i++) {
        randarr[i] = rand() % 10 - 5;
    }
    //Виведення массиву
    cout << "Array B[" << a << "]={";
    for (int j = 0; j < a; j++) {
        cout <<" "<<randarr[j];
    }
    cout << "}"<<endl;
    for (int j = 0; j < a; t += randarr[j++] < 0) {

    }
    cout << t << endl;;
    for (int g = 0; g < a; g++) {
        if (randarr[g] < 0) {
            sum = sum + randarr[g];
        }
    }
    float ser = sum / t;
    for (int j = 0; j < a; j++) {
        if (randarr[j] > max1) {
            randarr[j] = max1;
        }
    }
    for (int j = 0; j < a; j++) {
        if (randarr[j] < min1) {
            randarr[j] = min1;
        }
    }
    depend1 = max1 / min1;
    cout << "Vidnoshenna max/min massuvy B = " << depend1;
    printf("Seredne znachennya = %.2f\n",ser);
    cout << "Vvedit " << r << " elementiv massuvy A: ";
    for (int d = 0; d < r; d++) {
        cin >> tresh[d];
    }
    cout << "Massuv A[" << r << "]={";
    for (int d = 0; d < r; d++) {
        printf("%d ", tresh[d]);
    }
    cout << "}" << endl;
    for (int d = 0; d < r; d++) {
        if (tresh[d]>max2) {
            tresh[d] = max2;
        }
    }
    for (int j = 0; j < a; j++) {
        if (tresh[j] < min2 ) {
            tresh[j] = min2;
        }
    }
    depend2 = max2 / min2;
    cout << "Vidnoshenna max/min massuvy B = " << depend2<<endl;
    for (int x = 0; x < 5; x++) {
        finishh[x] = tresh[x] + ser;
    }
    cout << "Massuv C[" << r << "]={";
    for (int x = 0; x < 5; x++) {
        printf("%.2f ", finishh[x]);
    }
    cout << "}" << endl;
    for (int x = 0; x < 5; x++) {
        if (finishh[x] > max3) {
            finishh[x] = max3;
        }
    }
    for (int x = 0; x < 5; x++) {
        if (finishh[x] < min3) {
            finishh[x] = min3;
        }
    }
    depend3 = max3 / min3;
    cout << "Vidnoshenna max/min massuvy B = " << depend3;
    return 0;
}

2

Re: Завдання на С++

vzaluskiy23 написав:

Ось завдання https://pastenow.ru/4842fa0de43bc7fe6adf1e5a790a2e82
В мене виникла проблема коли я почав знаходити відношення мінімального значення до максимального.
Ось цей фрагмент пошуку:

for (int j = 0; j < a; j++) {
        if (randarr[j] > max1) {
            randarr[j] = max1;
        }
    }
    for (int j = 0; j < a; j++) {
        if (randarr[j] < min1) {
            randarr[j] = min1;
        }
    }
    depend1 = max1 / min1;
    cout << "Vidnoshenna max/min massuvy B = " << depend1;

Коли я все зробив, мені в консоль виводилося все добре і рахувалося все добре, а от після цього все почалося йти шкереберть.

як у вас могло виводитися все добре, якщо ви присвоюєте значення randarr[j] а не  та max1
ви ж не шукаєте максимум та мінімум, а загажуєте масив максимумами та мінімумами  :)

randarr[j] = min1; randarr[j] = max1; не вірно
min1 = randarr[j]; max1 = randarr[j]; вірно

Подякували: vzaluskiy231

3

Re: Завдання на С++

Точніше навіть не максимальним значенням і не мінімальним значенням може бути.

Подякували: vzaluskiy231