1 Востаннє редагувалося krupkanazar18 (03.11.2020 22:06:03)

Тема: 1

1

2

Re: 1

1. Що означає "помилка 3221225477"? Що, прямо так і пише?
2. Вирівняйте код, його так незручно читати.

3 Востаннє редагувалося wander (02.11.2020 23:04:16)

Re: 1

Смію припустити, що ця цифра це результат роботи програми, де 3221225477 насправді код помилки в hex 0xC0000005 або STATUS_ACCESS_VIOLATION. І так, цей код не мав би компілюватися.

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

4

Re: 1

wander написав:

І так, цей код не мав би компілюватися.

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

#include <iostream>
#include <cmath>
#include <windows.h>

5

Re: 1

А відступи розставите? https://uk.wikipedia.org/wiki/Відступ_(програмування)

6 Востаннє редагувалося wander (03.11.2020 13:54:23)

Re: 1

Droid 77 написав:
wander написав:

І так, цей код не мав би компілюватися.

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

#include <iostream>
#include <cmath>
#include <windows.h>

Та ні, тут справа зовсім не в заголовках.
Про це вже говорилось тут.

Прихований текст

І схоже тему варто таки перенести у розділ С/С++.

7 Востаннє редагувалося Droid 77 (03.11.2020 15:30:27)

Re: 1

Підозрюю що помилка через це:

Малюнок

https://replace.org.ua/uploads/images/9850/e363f616c68bedf26a8063217bfbdfbb.png

P. S.
Ось в такому вигляді код збирається:

Код
#include <iostream>
#include <cmath>
#include <windows.h>

using namespace std;

int main()
{
    int x, n = 0;
    double mass[x], y = 0;
    cout << "mass A = ";
    cin >> x;
    for (int i = 0; i < x; i++)
    {
        cin >> mass[i];
    }
    system("cls");
    cout << "Mass A [" << x << "] =  ";
    for (int i = 0; i < x; i++)
    {
        cout << mass[i] << "  ";
    }
    cout << endl;
    cout << "Mass mod [" << x << "] = ";
    for (int i = 0; i < x; i++)
    {
        if (mass[i] == 0)
        {
            for (int i = 0; i < x; i++)
            {
                if (mass[i] < 0)
                {
                    y = y + (sqrt(mass[i]));
                    y = mass[i];
                    n++;
                }
            }
            y = y / n;
            cout << y << "  ";
        }
        else
        {
            cout << mass[i] << "  ";
        }
    }
    cout << endl;
    return 0;
}

і навіть виконується :)

8

Re: 1

Переніс у C++.
Помилка ніби очевидна, і ні, зі статичними стрічками не пов'язана (принаймні, наскільки я розібрав код), але доки код нерозбірливий, однозначно сказати важко - може, якась ще проблема вилізе.

9

Re: 1

    int x, n = 0;//значення n - 0, значення x - що завгодно, сміття з пам'яті
    double mass[x], y = 0; //mass має розмір x елементів. Якщо пощастить - це досить багато, щоб далі все спрацювало
    cout << "mass A = ";
    cin >> x; //те, що ми змінюємо x пізніше, ніяк не впливає на mass. Треба його змінювати до проголошення mass.

10

Re: 1

А далі там два рази проголошується i у вкладених циклах (це коректно, але дуже плутає).
Ну і

if (mass[i] < 0)
{
    y = y + (sqrt(mass[i]));

матиме погані наслідки - якщо число від'ємне, то корінь з нього не обчислюється, принаймні, в дійсних числах, а sqrt проверне NAN.

11

Re: 1

Крім того, в циклі кілька разів обчислюється одне й те саме число (тобто NAN). Не знаю навіть, що тут сказати.

12 Востаннє редагувалося Droid 77 (03.11.2020 16:02:36)

Re: 1

koala написав:
    int x, n = 0;//значення n - 0, значення x - що завгодно, сміття з пам'яті
    double mass[x], y = 0; //mass має розмір x елементів. Якщо пощастить - це досить багато, щоб далі все спрацювало
    cout << "mass A = ";
    cin >> x; //те, що ми змінюємо x пізніше, ніяк не впливає на mass. Треба його змінювати до проголошення mass.

Тут Ви праві.
Спробував ввести та обробити дані за допомогою коду який виклав автор теми.
То якщо розмір масиву більше 5-ти елементів виникає помилка виконання.

P. S.
krupkanazar18, що саме повинна виконувати програма, яка умова завдання?

13

Re: 1

koala написав:

Треба його змінювати до проголошення mass.

Це буде все ще не валідний С++.

14

Re: 1

wander написав:
koala написав:

Треба його змінювати до проголошення mass.

Це буде все ще не валідний С++.

Гадаю, у списку претензій до цього коду це буде не в першій десятці.