Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Bodulay
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
#1

Где ошибка? - C++

04.10.2012, 13:38. Просмотров 850. Ответов 25
Метки нет (Все метки)

Программе подаются значения 15 переменных, она умножает каждое на 3 и делит на два. После все выводится.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
int main()
{
   соut << "Vvedite 15 peremennih" << endl;
   int q1;
   int q2;
   int q3;
   int q4;
   int q5;
   int q6;
   int q7;
   int q8;
   int q9;
   int q10;
   int q11;
   int q12;
   int q13;
   int q14;
   int q15;
   cin >> q1 >> endl;
   cin >> q2 >> endl;
   cin >> q3 >> endl;
   cin >> q4 >> endl;
   cin >> q5 >> endl;
   cin >> q6 >> endl;
   cin >> q7 >> endl;
   cin >> q8 >> endl;
   cin >> q9 >> endl;
   cin >> q10 >> endl;
   cin >> q11 >> endl;
   cin >> q12 >> endl;
   cin >> q13 >> endl;
   cin >> q14 >> endl;
   cin >> q15 >> endl;
   q1 = q1 * 3;
   q2 = q2 * 3;
   q3 = q3 * 3;
   q4 = q4 * 3;
   q5 = q5 * 3;
   q6 = q6 * 3;
   q7 = q7 * 3;
   q8 = q8 * 3;
   q9 = q9 * 3;
   q10 = q10 * 3;
   q11 = q11 * 3;
   q12 = q12 * 3;
   q13 = q13 * 3;
   q14 = q14 * 3;
   q15 = q15 * 3;
   q1 = q1 / 2;
   q2 = q2 / 2;
   q3 = q3 / 2;
   q4 = q4 / 2;
   q5 = q5 / 2;
   q6 = q6 / 2;
   q7 = q7 / 2;
   q8 = q8 / 2;
   q9 = q9 / 2;
   q10 = q10 / 2;
   q11 = q11 / 2;
   q12 = q12 / 2;
   q13 = q13 / 2;
   q14 = q14 / 2;
   q15 = q15 / 2;
   system("PAUSE");
   return 0;
}
P.S. Не судите строго, я до этого только в PHP писал.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 13:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Где ошибка? (C++):

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка) - C++
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил) - C++
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в полярных координатах. Написать функцию для...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

Укажите где ошибка (ошибка во время выполнения программы) - C++
Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы Картинка с ошибкой внизу поста. Код: ...

В чём ошибка.В коде там где коментарий там ошибка поучается. - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...

Где ошибка? - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;stdio.h&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
04.10.2012, 13:48 #2
для начала переменные сделай так
int q1, q2, q3;

Ввод делай так
cin >> q1 >> q2 >> q3;
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
04.10.2012, 13:51 #3
Индус detected?
0
Bodulay
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
04.10.2012, 13:52  [ТС] #4
Цитата Сообщение от David Sylva Посмотреть сообщение
для начала переменные сделай так
int q1, q2, q3;

Ввод делай так
cin >> q1 >> q2 >> q3;
Зачем? Так удобочитаемость кода падает.
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
04.10.2012, 13:53 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
int main() 
{ 
    const int size = 15; 
    int array[size]; 
    int i; 
 
    for ( i = 0; i < size; i++) 
    {
        std::cout << "Inter a number " << i+1 << " : " << std::endl; 
        std::cin >> array[i]; 
    } 
 
    for ( i = 0; i < size; i++) 
        std::cout << (array[i] * 3) / 2 << std::endl; 
     
}
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
04.10.2012, 13:58 #6
Зачем? Так удобочитаемость кода падает.
Но ведь её не было изначально?) А как бы ты поступил, если бы тебе надо было 100 чисел ввести и сделать те же действия?
0
Bodulay
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
04.10.2012, 14:00  [ТС] #7
Цитата Сообщение от David Sylva Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
int main() 
{ 
    const int size = 15; 
    int array[size]; 
    int i; 
 
    for ( i = 0; i < size; i++) 
    {
        std::cout << "Inter a number " << i+1 << " : " << std::endl; 
        std::cin >> array[i]; 
    } 
 
    for ( i = 0; i < size; i++) 
        std::cout << (array[i] * 3) / 2 << std::endl; 
     
}
#include <iostream> само собой, он есть в оригинальной программе, я его просто не перепечатывал.
Зачем создавать цикл? Зачем массив? Ведь так расходуются ресурсы ПК сильней. Гораздо оптимизированнее будет прописать каждую переменную отдельно и выполнять последовательно операции, т.к. так меньше надо памяти.
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2012, 14:02 #8
Цитата Сообщение от Герц Посмотреть сообщение
если бы тебе надо было 100 чисел ввести и сделать те же действия?
Зачем? В исходном варианте копипастить легче!


Добавлено через 1 минуту
Цитата Сообщение от Bodulay Посмотреть сообщение
Ведь так расходуются ресурсы ПК сильней.
Читать МакКоннелла го марш!
2
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
04.10.2012, 14:02 #9
Bodulay, 15 переменных это нифига не критично и даже 100000. Поэтому, просто не заморачивайся.
0
Bodulay
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
04.10.2012, 14:06  [ТС] #10
Цитата Сообщение от Герц Посмотреть сообщение
Но ведь её не было изначально?) А как бы ты поступил, если бы тебе надо было 100 чисел ввести и сделать те же действия?
Для таких случаев я использую ctrl+c + ctrl+v. А еще лучше, я думаю, использовать для написания каждой строчки программы, которые копируют строки с соответствующими изменениями.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Зачем? В исходном варианте копипастить легче!


Добавлено через 1 минуту

Читать МакКоннелла го марш!
МакКоннелла не уважаю, учился классике по книге самого создателя Pascal - Никлауса Вирта.

Добавлено через 1 минуту
Цитата Сообщение от Dani Посмотреть сообщение
Bodulay, 15 переменных это нифига не критично и даже 100000. Поэтому, просто не заморачивайся.
Программа тупо не работает. Я не знаю почему. Все перепробовал.
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
04.10.2012, 14:14 #11
Вот не ожидал я, что эта программа вызовет столько споров.
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2012, 14:17 #12
Цитата Сообщение от Bodulay Посмотреть сообщение
После все выводится.
Ну так ты вывод всего не написал же! Потому и не работает.
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
04.10.2012, 14:18 #13
Bodulay, проблема в том, что при целочисленном делении как результат вы получаете целое число, т.е.
C++
1
2
3
int q = 5;
q *= 3; // q = 15
q >>= 2; // q = 7
А не 7.5, как вы ожидали. Используйте float или double и будет так, как вы ожидали.

PS. про циклы все-таки почитайте, а книги 20-30 летней давности, в которых пишутся такие вещи - лучше не читайте, т.к. паскаль - это не С/С++, современные компиляторы умеют оптимизировать код и мощность железа далека от той, которая была тогда. Да и после выхода паскаля архитектура ЦП менялась

ЗЫ. нормальный бы человек написал
C++
1
2
double q = 5;
q *= 1.5;
0
Bodulay
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
04.10.2012, 14:24  [ТС] #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ну так ты вывод всего не написал же! Потому и не работает.
Вывод тоже имеется в исходной программе. Я просто его вырезал, иначе программа слишком длинная, не для первого поста в топике.

Добавлено через 2 минуты
Цитата Сообщение от M128K145 Посмотреть сообщение
Bodulay, проблема в том, что при целочисленном делении как результат вы получаете целое число, т.е.
C++
1
2
3
int q = 5;
q *= 3; // q = 15
q >>= 2; // q = 7
А не 7.5, как вы ожидали. Используйте float или double и будет так, как вы ожидали.

PS. про циклы все-таки почитайте, а книги 20-30 летней давности, в которых пишутся такие вещи - лучше не читайте, т.к. паскаль - это не С/С++, современные компиляторы умеют оптимизировать код и мощность железа далека от той, которая была тогда. Да и после выхода паскаля архитектура ЦП менялась

ЗЫ. нормальный бы человек написал
C++
1
2
double q = 5;
q *= 1.5;
Я знаю и рассчитывал на то, что деление округляется, ибо аналогов обероновских или паскалевских div и mod я не знаю.
У нас в деревне только-только интернет подрубили, скорость низкая, 32 кбит/с. Какие там книги про С/С++.
Насчет "q *= 1.5;": пробовал, но у меня почему-то идет "Ошибка переполнения". Да и к тому же, так удобнее.
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
04.10.2012, 14:37 #15
Цитата Сообщение от Bodulay Посмотреть сообщение
пробовал, но у меня почему-то идет "Ошибка переполнения".
а какие данные вы вводите?
Цитата Сообщение от Bodulay Посмотреть сообщение
Насчет "q *= 1.5;": пробовал, но у меня почему-то идет "Ошибка переполнения". Да и к тому же, так удобнее.
так вы определитесь,
Цитата Сообщение от Bodulay Посмотреть сообщение
Зачем создавать цикл? Зачем массив? Ведь так расходуются ресурсы ПК сильней. Гораздо оптимизированнее будет прописать каждую переменную отдельно и выполнять последовательно операции, т.к. так меньше надо памяти.
или
Цитата Сообщение от Bodulay Посмотреть сообщение
так удобнее.
Ну а после продолжим
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 14:37
Привет! Вот еще темы с ответами:

Где ошибка ? - C++
Нужна помощь по нахождению ошибки.

Где ошибка? - C++
Компилятор ругается и очень больно #include &quot;stdafx.h&quot; #include&lt;stdio.h&gt; #include&lt;math.h&gt; int _tmain(int argc, _TCHAR* argv) ...

Где ошибка? - C++
Подскажите пожалуйста где ошибка ? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; using...

Где ошибка? - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.10.2012, 14:37
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru