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

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

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

Возник вопрос? - C++

02.08.2007, 19:03. Просмотров 2389. Ответов 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include iostream;
using namespace std;
#include conio.h;//для getche();
struct chet//структура 
{
    float par1;
};
 
 
 //прототипы функций подсчета
void num(chet, chet&);//для структуры
void num(float, float&);//для двух переменных float
void num(float, int&);//для одной float, другой int
// прототипы функций вывода ответа на экран(в том же порядке что и верхние)
void see(chet, chet);
void see(float, float);
void see(float, int);
 
int main()
{
    float xx;
    float xx2 = 0;
    int xx3 = 0;//переменная для функции с int
    char ch;
    while(ch!='e')
    {
        cout"Enter type work.\n(s for struct work; f for float work; i for int work):";
        ch=getche();
        coutendl;
        
            switch(ch)
            {
            case 's'://работа со структурой chet
                chet ch1, ch2;
                for(;;)
                {   
                    cout"Enter number:";    
                    cin;;ch1.par1;
                    num(ch1, ch2);
                    see(ch1, ch2);
                }
 
            case 'f'://работа с двумя переменными типа float
                for(;;)
                {
                cout"Enter number:";
                cin;;xx;
 
                num(xx, xx2);
                see(xx, xx2);
                }
 
            case 'i'://работа с одной переменной типа float, другой типа int 
                for(;;)
                {
                cout"Enter number:";
                cin;;xx;
 
                num(xx, xx3);
                num(xx, xx3);
                }
            }
    }
 
    return 0;
}
 
void num(chet x1, chet& x2)//работа со структурой
{
    static prg = 0;
    if(x1.par1 == 0)
    {
        cout"EXIT! PRG = "prgendl;
        exit(0);
    }
    x2.par1=static_castint;(x1.par1);
    x1.par1-=x2.par1;
    if(x1.par1 ;= 0.5)
    {
        x2.par1++;
    }
    prg++;
    if(prg ; 5)
    {
        coutprg" RAZ ETO VSE!"endl;
        exit(0);
    }
}
 
void num(float x1, float& x2)//работа с переменными float
{
    if(x1 == 0)
        exit(0);
    x2=static_castint;(x1);
    x1-=x2;
    if(x1 ;=0.5)
    {
        x2++;
    }
}
 
void num(float x1, int& x2)//работа с переменными float и int
{
    if(x1 == 0)
        exit(0); 
    x2=static_castint;(x1);
    x1-=x2;
    if(x1 ;=0, 5)
    {
        x2++;
    }
 
}
 
 
 
void see(chet x1, chet x2)//вывод (структуры)
{
    cout"Otvet"x1.par1" = (type struct) "x2.par1endl;
}
 
void see(float x1, float x2)//вывод (две float)
{
    cout"Otvet"x1" = (type float) "x2endl;
}
 
void see(float x1, int x2)//вывод (int и float)
{
    cout"Otvet"x1" = (type int) "x2endl;
}
Когда по выведенному условия пользователь вводит ' i ', для работы с перегрузкой функции void num(float, int&), и вводя значения в бесконечном цикле for(;, ничего не происходит. программа зацикливается, все время выводя просьбу ввести значение. Хотя каждое значения передаются в функцию num(float, int&), а код в ней почти идентичен num(float, float&) которая работает.Я еще начинающий программист, потому хочу понять в чем ошибка, чтоб не допускать более, заранее благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2007, 19:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возник вопрос? (C++):

Dev C++ возник вопрос - C++
Я слышал что когда написан код и запускаешь компилятор можно посмотреть как программа идет по коду, тоесть из какой строки в какую ее код...

Вопрос по массивав, "институтский" вопрос. - C++
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) В документации подобного не...

Вопрос - C++
стоит ли учить язык програмирования С++? говорят язык отличный. И чем он хуже Делфи,Паскаля,Асемблер,ЛУА(ЛОА непомню правильности) , ПХП,...

вопрос - C++
Есть код программы , в конце программы должен запрашеватся вопрос , продолжить выполнения программы да/нет если "да" то программа...

Вопрос - C++
Никто не знает как можно вот эту программу переделать в язык паскаль #include <stdio.h> #include <conio.h> #include <malloc.h> void...

Вопрос по if, else? - C++
Как сделать так чтобы программа работала по таком принципу: 1. Проверяется первое условие если оно верно - выводится оператор за ним. ...

3
Vourhey
Почетный модератор
6487 / 2261 / 123
Регистрация: 29.07.2006
Сообщений: 12,534
02.08.2007, 21:25 #2
Правильно, что зацикливается. Потому что
Код
for(;;)
{
......
}
это бесконечный цикл. Нет условия выхода из него. Чтобы выйти из него, нужно либо задать условие, либо где-нибудь break поставить. К примеру так:
Код
case 'i'://работа с одной переменной типа float, другой типа int 
for(;;) 
{ 
cout"Enter number:"; 
cin;;xx; 

num(xx, xx3); 
see(xx, xx3);//здесь было num почему-то...
break;
}
0
371221
0 / 0 / 0
Регистрация: 30.07.2007
Сообщений: 2
03.08.2007, 01:43 #3
Я в курсе что у меня бесконечный цикл, для выхода из него у меня есть функция exit(0), которая стартует если пользователь введет ноль, потому дело не в этом. Проблема в другом, которую ты случайно и решил, у меня вместо see было num, глупая ошибка. Большое спасибо, если бы ты loki не заметил, я бы так и ломал голову. Благодарю, впредь постараюсь не лесть из-за глупостей.
0
Vourhey
Почетный модератор
6487 / 2261 / 123
Регистрация: 29.07.2006
Сообщений: 12,534
03.08.2007, 18:04 #4
Не за что. Подумал, что процедуру exit(0) уберете со временем, так как, пользователь может захотеть произвести вычисления с нулем, а тут такой облом...
0
03.08.2007, 18:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2007, 18:04
Привет! Вот еще темы с ответами:

вопрос - C++
здрасте всем ,хочу научиться программировать ,подскажите где взять среду с\с++ и с чего вообще начать обучение ,я чайник полный :)

Вопрос - C++
есть командная строка cmd, в ней постоянно приходиться прописывать всякие net sh, собствено вопрос: можли написать программу которая...

Вопрос - C++
Приветствую Вас! 1. Необходимо просто описать как это должно работать: Дано: {max (a,b), y= {min(a,b), {|a+b|, если х=0,...

вопрос.. - C++
как найти количество точек, координаты которых-целые числа, находящиеся в промежутке, который задан неравеннством...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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