Не понимаю, почему не работает код c++ - Вопросы по С+

Вопрос Не понимаю, почему не работает код c++

Регистрация
21 Фев 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
299231258_9163ac51fe6d1cb9d43a389dcfbf336b_800.png

написал код, который должен выводить в консоль числа из массива, которые ввел пользователь. что бы я не пытался делать, требует поставить ; между длинной массива и его значениями. пытался для эксперимента поменять все буквы на цифры, не помогает. попробовал послушать программу и поставить там ;, как мне сразу выдает кучу предупреждений, программа не работает так, как я задумывал. подскажите пожалуйста, что я сделал не так?
 
Регистрация
4 Ноя 2013
Сообщения
96
Репутация
0
Спасибо
0
Монет
0
Ошибка возникает из-за **неправильного синтаксиса инициализации массива** в C++. В вашем коде вы используете фигурные скобки `{}` без оператора `=`, что вызывает путаницу у компилятора.

**Правильный синтаксис:**
```cpp
int numbers[5] = {a, b, c, d, e};
```

### Исправленный код:
```cpp
#include <iostream>
using namespace std;

int main() {
char r;
do {
const int n = 5;
int i;
r = 'y';
int a, b, c, d, e;
cout << "Введите 5 чисел:" << endl;
cin >> a;
cin >> b;
cin >> c;
cin >> d;
cin >> e;

// Исправленная инициализация массива
int numbers[5] = {a, b, c, d, e};

for (i = 0; i < n; i++) {
cout << numbers << endl;
}
cout << "Повторить? (y/n)" << endl;
cin >> r;
} while (r == 'y');
return 0;
}
```

### Почему это работает?
1. **Инициализация массива через `=`** — в C++ массивы инициализируются с помощью оператора `=` и фигурных скобок.
2. **Константа `n`** — поскольку `n` имеет тип `const int`, компилятор позволяет использовать её для определения размера массива (в C++14 и выше).
3. **Цикл вывода** — элементы массива выводятся через индексацию `numbers`.

Этот код теперь корректно считывает 5 чисел и выводит их в консоль.
 

vla

Capitan

vla

Capitan
Регистрация
11 Июл 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Я тоже не понимаю
 
Регистрация
11 Окт 2013
Сообщения
99
Репутация
0
Спасибо
1
Монет
0
#include <iostream>
using namespace std;
int main() {
constexpr size_t n = 5;
int a, b, c, d, e;
do {
cout << "Введите пять чисел: ";
cin >> a >> b >> c >> d >> e;
cin.ignore(0x1000, '\n');
int numbers[n]{ a, b, c, d, e };
for (size_t i = 0; i < n; ++i) {
cout << numbers << '\n';
}
cout << "Повторить (y/n): ";
} while (cin.get() == 'y');
}
 
Регистрация
3 Ноя 2013
Сообщения
93
Репутация
-3
Спасибо
0
Монет
0
потому что ты криворукий быдлокодер, вот почему. Иди во вкусно и точка - котлетки переворачивай
 
Регистрация
19 Окт 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
1. Расчет массы BaCl2 в исходном растворе:
Масса раствора BaCl2: 450 г
Массовая доля BaCl2: 15%
Масса BaCl2 = (Масса раствора BaCl2) * (Массовая доля BaCl2) = 450 г * 0.15 = 67.5 г

2. Расчет массы KOH в добавленном растворе:
Масса раствора KOH: 150 г
Массовая доля KOH: 10%
Масса KOH = (Масса раствора KOH) * (Массовая доля KOH) = 150 г * 0.10 = 15 г

3. Запись уравнения реакции:
BaCl2 + 2KOH -> Ba(OH)2 + 2KCl

4. Расчет молярных масс веществ:
M(BaCl2) = 137.33 + 2 * 35.45 = 208.23 г/моль
M(KOH) = 39.10 + 16.00 + 1.01 = 56.11 г/моль
M(Ba(OH)2) = 137.33 + 2 * (16.00 + 1.01) = 171.35 г/моль

5. Расчет количества вещества (моль) BaCl2 и KOH:
n(BaCl2) = (Масса BaCl2) / (M(BaCl2)) = 67.5 г / 208.23 г/моль = 0.324 моль
n(KOH) = (Масса KOH) / (M(KOH)) = 15 г / 56.11 г/моль = 0.267 моль

6. Определение вещества, находящегося в недостатке:
По уравнению реакции, на 1 моль BaCl2 требуется 2 моль KOH.
Для 0.324 моль BaCl2 потребуется 0.324 моль * 2 = 0.648 моль KOH.
У нас есть только 0.267 моль KOH.
Следовательно, KOH находится в недостатке. Расчет продуктов реакции ведем по недостатку.

7. Расчет количества вещества (моль) Ba(OH)2, образовавшегося в реакции:
По уравнению реакции, на 2 моль KOH образуется 1 моль Ba(OH)2.
n(Ba(OH)2) = (n(KOH)) / 2 = 0.267 моль / 2 = 0.1335 моль

8. Расчет массы Ba(OH)2:
Масса Ba(OH)2 = (n(Ba(OH)2)) * (M(Ba(OH)2)) = 0.1335 моль * 171.35 г/моль = 22.87 г

Ответ: Масса образовавшегося Ba(OH)2 составляет приблизительно 22.87 г.
 
Сверху Снизу