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

Простые упражнения по С++ - C++

Восстановить пароль Регистрация
 
bochik
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 48
17.05.2013, 14:07     Простые упражнения по С++ #1
Здравствуйте. Тут (если можно) буду просить помощи...

Добавлено через 2 минуты
Вот такой кодик:
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
#include<iostream>
int main()
{
    int v1, v2;
    std::cin >>v1>> v2;
    int lower, upper;
    if (v1<=v2)
    {
        v1=lower;
        v2=upper;
    }
    else
    {
        v1=upper;
        v2=lower;
    }
    int sum;
    sum=0;
    while(lower<=upper)
    {
        sum+=lower;
        std::cout <<sum<< std::endl;
        ++lower;
        return 0;
    }
}
По идее, он должен выдавать все числа, которые есть между переменными.... Ошибок в коде нет, но программа их не показывает.... Объясните в чём ошибка, только словесно, чтоб код я мог сам переделать... Спасибо...

Добавлено через 16 минут
Смотрю, вот, и думаю, а на кой мне "sum"!... ффф...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 14:07     Простые упражнения по С++
Посмотрите здесь:

Упражнения для освоения С++ C++
C++ Тренирующие упражнения
Упражнения по с++ C++
C++ Упражнения
Упражнения цикла for C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.05.2013, 14:08     Простые упражнения по С++ #2
bochik, присваивание не в ту сторону (10-16) и ретурн на первой итерации цикла.
bochik
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 48
17.05.2013, 14:11  [ТС]     Простые упражнения по С++ #3
Простите, что парю вам тут мозги.... Теперь на return обратил внимание. Только когда его переставил, программа начала в бешеном темпе считать... Смотрю вот на неё и мысль: Во с какой скоростью машина может разговаривать)))
GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
17.05.2013, 14:13     Простые упражнения по С++ #4
Какая то мутная у тебя программа, правильно ли я понимаю, что ты вводишь 2 переменные, например первая:2, вторая: 10, и программа должна показать все целые числа между ними, т.е. 3,4,5,6,7,8,9 ?
Maksig
4 / 4 / 0
Регистрация: 26.02.2013
Сообщений: 24
17.05.2013, 14:13     Простые упражнения по С++ #5
привет наскоко понял это гдето так
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
# include <windows.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    int lower=0, upper=0;
    int v1, v2;
    std::cin >>v1>> v2;
   
    if (v1<=v2)
    {
        v1=lower;
        v2=upper;
    }
    else
    {
        v1=upper;
        v2=lower;
    }
   
    while(lower<=upper)
    {
        upper+=lower;
        std::cout <<upper << endl;
        ++lower;
 
    }
system("pause");
        return 0;
}
bochik
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 48
17.05.2013, 14:21  [ТС]     Простые упражнения по С++ #6
GTS, да, правильно понял!

Добавлено через 2 минуты
Maksig, до таких директив ещё не дошёл, их не должно ещё быть в программе...
GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
17.05.2013, 14:22     Простые упражнения по С++ #7
Сделай через функции, две функция, первая считает если первая переменная больше второй, вторая если первая переменная меньше второй, в main ты определяешь кто больше (через if ... else) и исходя из этого направляешь в определенную функцию.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
17.05.2013, 14:26     Простые упражнения по С++ #8
Замени
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    if (v1<=v2)
    {
        v1=lower;
        v2=upper;
    }
    else
    {
        v1=upper;
        v2=lower;
    }
    int sum;
    sum=0;
    while(lower<=upper)
    {
        sum+=lower;
        std::cout <<sum<< std::endl;
        ++lower;
        return 0;
    }
на...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    if (v1<=v2)
    {
        lower = v1;
        upper = v2;
    }
    else
    {
        lower = v2;
        upper = v1;
    }
    int sum = lower;
    while(sum <= upper)
    {
        std::cout << sum << std::endl;
        ++sum;
    }
Так же добавь перед вызовом main строчку
C++
1
using namespace str;
и можешь дальше не пользоваться глобальным расширением, т.е. просто cout вместо std::cout и прочее
GTS, через ф-и будет конечно правильнее, но похоже человек только начал изучать Си и до ф-я пока не дошел.
Tulosba
17.05.2013, 14:34
  #9

Не по теме:

Цитата Сообщение от Ilot Посмотреть сообщение
Так же добавь перед вызовом main строчку
Ну что Вы советуете всякую гадость? Засоряете пространство имен только для экономии сомнительных пяти символов. Эти темы уже много раз обсуждались.

GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
17.05.2013, 14:35     Простые упражнения по С++ #10
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
void first_more(int, int);
void second_more(int, int);
 
int main()
{
int first, second;
std::cin >> first;
std::cin >> second;
 
if (first > second)
{ 
first_more(first, second);
}
 
else
{ 
second_more(first, second);
}
 
system("pause");
return 0;
}
 
void first_more(int first, int second)
{
while (second != first)
{
second = second + 1;
std::cout << second << "\n";
}
}
 
void second_more(int first, int second)
 
{
while (first != second)
{
first = first + 1;
std::cout << first << "\n";
}
}


Я вот так сделал.
По поводу изучения, на сколько мне известно, сначала изучают функции, а только потом циклы и операторы условия.
bochik
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 48
17.05.2013, 14:45  [ТС]     Простые упражнения по С++ #11
Цитата Сообщение от GTS Посмотреть сообщение
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
void first_more(int, int);
void second_more(int, int);
 
int main()
{
int first, second;
std::cin >> first;
std::cin >> second;
 
if (first > second)
{ 
first_more(first, second);
}
 
else
{ 
second_more(first, second);
}
 
system("pause");
return 0;
}
 
void first_more(int first, int second)
{
while (second != first)
{
second = second + 1;
std::cout << second << "\n";
}
}
 
void second_more(int first, int second)
 
{
while (first != second)
{
first = first + 1;
std::cout << first << "\n";
}
}


Я вот так сделал.
По поводу изучения, на сколько мне известно, сначала изучают функции, а только потом циклы и операторы условия.
Может Вы и правы, но я строго по уч-ку шагаю... Там так... Ваша версия кода для меня (пока!!!) равносильна китайским иероглифам)))

Добавлено через 3 минуты
Ilot, спасибо, Ваш код работает, щас рабираюсь вот, где ошибся)
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
17.05.2013, 14:45     Простые упражнения по С++ #12
Цитата Сообщение от Tulosba Посмотреть сообщение
Ну что Вы советуете всякую гадость? Засоряете пространство имен только для экономии сомнительных пяти символов. Эти темы уже много раз обсуждались.
Сам только недавно начал изучать Си. Спс. Надо будет учесть...
GTS, может тогда лучше так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
void func(int max, int min);
int main()
{
    int first, second;
    std::cin >> first >> second;
 
    if (first > second)
        func(first, second);
    else
        func(second, first);
 
    system("pause");
    return;
}
void func(int max, int min)
{
    for(;min <= max; min++)
        std::cout << min << "\n";
}
GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
17.05.2013, 14:47     Простые упражнения по С++ #13
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
int main()
{
int first, second;
std::cin >> first;
std::cin >> second;
 
if (first > second)
{ 
while (second != first)
{
second = second + 1;
std::cout << second << "\n";
}
}
 
else
{ 
while (first != second)
{
first = first + 1;
std::cout << first << "\n";
}
}
 
system("pause");
return 0;
}


А вот так вот.

Ilot,
Чем короче, тем лучше, я не думаю что ТС знает оператор for, я максимально использовал те операторы, которые он писал в своем первом коде.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2013, 14:53     Простые упражнения по С++
Еще ссылки по теме:

Упражнения на массивы C++
C++ Упражнения по инициализации,определении
Упражнения по с++ C++

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

Или воспользуйтесь поиском по форуму:
bochik
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 48
17.05.2013, 14:53  [ТС]     Простые упражнения по С++ #14
Ilot, спасибо Вам.... Щас буду работу над ошибками!!!

Добавлено через 6 минут
Всем спасибо, работаю дальше!!!!
Yandex
Объявления
17.05.2013, 14:53     Простые упражнения по С++
Ответ Создать тему
Опции темы

Текущее время: 12:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru