Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2010, 15:30   #1
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
Восклицание Перегрузка функций. найти ошибку. С++

Писал лабораторную по с++ на тему "перегрузка функций"... но тут где-то ошибка или я что-то в теме недопонял...
помогите устранить неполадку.
вот код программы:
Код:
#include <iostream>
#include <string>
char maximum(char f, char g);
int maximum(int c, int d);
void main()
{
	char str1[10];
	char f=str1[10];
	char str2[10];
	char g=str2[10];
	int c;
	int d;
	cout<<"dlia znahodzennia max znach iz dvoh chisel vvedite a \n";
	cout<<"dlia znahodzennia max znach iz dvoh sviv vvedite b \n";
	char key;
	cin>>key;
	if (key=='a')  maximum(f, g);
	else maximum(c,d);
}
char maximum(char f, char g)
{  char str1[10];
	char str2[10];                            
	cin.getline(str1,10); 
	cin.getline(str2,10);
	int strcmp(const char* str1, const char* str2);
}
int maximum(int c, int d)
{

	cin>>c; 
	cin>>d; 
	if (c>d) cout<<"c>db \n";
	else cout<<"d>c \n";
}
STIFFmaster_LP вне форума Ответить с цитированием
Старый 30.01.2010, 15:50   #2
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

ты пытаешься найти максимум из неинициализированных переменных.
Namolem вне форума Ответить с цитированием
Старый 30.01.2010, 15:51   #3
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Держи нормальный пример:

Код:
#include <iostream>

void maximum(char f, char g);
void maximum(int c, int d);

int main()
{
	char f[255];
	char g[255];
	int c;
	int d;

	cout<<"vvedite 'f' i 'g' \n";
        cin.getline(f, 255);
        cin.getline(g, 255);

	cout<<"vvedite 'c' i 'd' \n";
        cin >> c;
        cin >> d;

        maximum(f, g);
	maximum(c, d);

        return 0;
}
void maximum(char *f, char *g)
{
        if(stricmp(f ,g) > 0)
                cout << "'f' bol'she 'g'\n";
        if(stricmp(f ,g) < 0)
                cout << "'f' men'she 'g'\n";
        if(stricmp(f ,g) == 0)
                cout << "'g' ravno 'f'\n";

        cin.get();
}
void maximum(int c, int d)
{
        if(c > d)
                cout << "'c' bol'she 'd'\n";
        if(c < d)
                cout << "'c' men'she 'd'\n";
        if(c == d)
               cout << "'d' ravno 'c'\n";

        cin.get();
}

Последний раз редактировалось profi; 30.01.2010 в 18:52.
profi вне форума Ответить с цитированием
Старый 30.01.2010, 18:00   #4
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию

программа некоректно работает
STIFFmaster_LP вне форума Ответить с цитированием
Старый 30.01.2010, 18:02   #5
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

STIFFmaster_LP что именно не так?

Последний раз редактировалось profi; 30.01.2010 в 18:07.
profi вне форума Ответить с цитированием
Старый 30.01.2010, 18:31   #6
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию

одна функция должна выводить большее из чисел а другая что выводит большее из слов.

я например ввожу f после нажимаю enter и программа вывод сразу два результата...
STIFFmaster_LP вне форума Ответить с цитированием
Старый 30.01.2010, 18:45   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
int maximum(int a, int b)
{
    return a > b ? a : b;
}

const char* maximum(const char* a, const char* b)
{
     return strcmp(a, b) > 0 ? a : b;
}

int main()
{
    char word1[20], word2[20];
    int a, b;

    cout << "Enter first word: ";
    cin  >> word1;
    cout << "Enter second word: ";
    cin  >> word2;
    cout << "Max: " << maximum(word1, word2) << endl;

    cout << "Enter first integer: ";
    cin  >> a;
    cout << "Enter second integer: ";
    cin  >> b;
    cout << "Max: " << maximum(a, b) << endl;

    return 0;
}
Вот пример со строками. Писал тут, могут ошибки быть
netrino вне форума Ответить с цитированием
Старый 30.01.2010, 18:53   #8
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

STIFFmaster_LP подправил третий пост. Вообще то задание нужно сразу говорить, а не в самом конце.
profi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы ны С++, перегрузка функций,операторов Shturmovik Помощь студентам 1 04.06.2009 22:58
Перегрузка функций... bondik Общие вопросы C/C++ 12 28.04.2008 01:07
перегрузка функций Snake_ua Общие вопросы Delphi 3 26.11.2007 10:54