Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
1

Где ошибка?

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

Author24 — интернет-сервис помощи студентам
Программе подаются значения 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2012, 13:38
Ответы с готовыми решениями:

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include...

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

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

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

25
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
04.10.2012, 13:48 2
для начала переменные сделай так
int q1, q2, q3;

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

Ввод делай так
cin >> q1 >> q2 >> q3;
Зачем? Так удобочитаемость кода падает.
0
1321 / 983 / 267
Регистрация: 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
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
04.10.2012, 13:58 6
Зачем? Так удобочитаемость кода падает.
Но ведь её не было изначально?) А как бы ты поступил, если бы тебе надо было 100 чисел ввести и сделать те же действия?
0
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
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2012, 14:02 8
Цитата Сообщение от Герц Посмотреть сообщение
если бы тебе надо было 100 чисел ввести и сделать те же действия?
Зачем? В исходном варианте копипастить легче!


Добавлено через 1 минуту
Цитата Сообщение от Bodulay Посмотреть сообщение
Ведь так расходуются ресурсы ПК сильней.
Читать МакКоннелла го марш!
2
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
04.10.2012, 14:02 9
Bodulay, 15 переменных это нифига не критично и даже 100000. Поэтому, просто не заморачивайся.
0
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
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
04.10.2012, 14:14 11
Вот не ожидал я, что эта программа вызовет столько споров.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2012, 14:17 12
Цитата Сообщение от Bodulay Посмотреть сообщение
После все выводится.
Ну так ты вывод всего не написал же! Потому и не работает.
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
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
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
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2012, 14:37 15
Цитата Сообщение от Bodulay Посмотреть сообщение
пробовал, но у меня почему-то идет "Ошибка переполнения".
а какие данные вы вводите?
Цитата Сообщение от Bodulay Посмотреть сообщение
Насчет "q *= 1.5;": пробовал, но у меня почему-то идет "Ошибка переполнения". Да и к тому же, так удобнее.
так вы определитесь,
Цитата Сообщение от Bodulay Посмотреть сообщение
Зачем создавать цикл? Зачем массив? Ведь так расходуются ресурсы ПК сильней. Гораздо оптимизированнее будет прописать каждую переменную отдельно и выполнять последовательно операции, т.к. так меньше надо памяти.
или
Цитата Сообщение от Bodulay Посмотреть сообщение
так удобнее.
Ну а после продолжим
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.10.2012, 14:41 16
Цитата Сообщение от Bodulay Посмотреть сообщение
Ведь так расходуются ресурсы ПК сильней. Гораздо оптимизированнее будет прописать каждую переменную отдельно и выполнять последовательно операции, т.к. так меньше надо памяти.
я тебя уверяю, ты разницы не заметишь, даже если у тебя будет не пятнадцать переменных, а 100500. Зато программу с циклами и массивами вместо кучи переменных:
  • легче читать
  • легче отлаживать
  • легче изменять

Добавлено через 1 минуту
Цитата Сообщение от M128K145 Посмотреть сообщение
т.к. паскаль - это не С/С++, современные компиляторы умеют оптимизировать код и мощность железа далека от той, которая была тогда. Да и после выхода паскаля архитектура ЦП менялась
да и для Паскаля то, что я сказал выше, тоже верно
0
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
04.10.2012, 14:48  [ТС] 17
Ввожу все цифры от 1 до 15. Плюс ко всему, циклы и массивы едят больше памяти и приводят к нечитаемости кода, я это уже писал.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
04.10.2012, 15:26 18
Цитата Сообщение от Bodulay Посмотреть сообщение
Плюс ко всему, циклы и массивы едят больше памяти
Насколько больше? На 20 байт на программу?

Цитата Сообщение от Bodulay Посмотреть сообщение
и приводят к нечитаемости кода, я это уже писал.
Знаешь, а весь остальной мир считает иначе.
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2012, 15:38 19
Цитата Сообщение от Bodulay Посмотреть сообщение
Плюс ко всему, циклы и массивы едят больше памяти и приводят к нечитаемости кода, я это уже писал.
как раз наоборот. в 5 сообщении я за один взгляд понимаю, что делает код, в первом же мне надо посмотреть переменные, отследить их правильность, необходимо так же скроллить код, так как половину я просто не вижу, а вторую вы вырезали для того, чтобы уменьшить длину листинга
0
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 8
04.10.2012, 16:06  [ТС] 20
Цитата Сообщение от Nameless One Посмотреть сообщение
Насколько больше? На 20 байт на программу?


Знаешь, а весь остальной мир считает иначе.
И где, собственно, Ваш остальной мир? Программисты Индии? И вообще, каждый байт имеет цену. Ваши циклы и массивы - заговор Intel и AMD. Они специально сделали так, что все, такие как Вы, не считали байты и нуждались в более мощных вычислительных системах, которые Intel и AMD охотно предоставляет. А ведь они едят больше электричества. Стоят больше денег. На самом деле, если бы не ваши свистелки и перделки, на подобии циклов и массивов, все бы до сих пор нормально, без проблем, кодили на 4004-ых.
0
04.10.2012, 16:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2012, 16:06
Помогаю со студенческими работами здесь

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

Где ошибка ?
Задача такая Вычислить сумму n слагаемых s=((1)/(2*3))+((2)/(3*4))+....+((n)/(n+1)*(n+2)) я...

Где ошибка?
Программа не моя,но нужно запустить ее и показать что она работает. Но в том то и проблема что не...

Где ошибка ?
Даны числа x и n . Вычислить S=sin(x)+sin(sin(x))+.....+sin(sin....sin(x)). ...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru