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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 23:24   #1
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
Восклицание Перегрузка функции.. (выдаёт ошибку)

Определить функцию, возвращающую НОК нескольких чисел. Выполнить перегрузку функции для следующих типов параметров:
1. Два параметра типа int.
2. Два параметра типа long.
3. Два параметра типа float.
4. Два параметра типа double.

Вот то что у меня получилось
выдает следующие ошибки, не могу разобраться в чём тут дело ((
------ Build started: Project: 14, Configuration: Debug Win32 ------
Compiling...
14.cpp
error C2143: syntax error : missing ')' before 'constant'
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2043: illegal break
error C2143: syntax error : missing ')' before 'constant'
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2043: illegal break
Build log was saved at "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\14\14\Debug\BuildLog. htm"
14 - 8 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

место ошибок выделил красным цветом

Код:
#include "stdafx.h"

#include "iostream"
#include "windows.h"
using namespace std;
void nok(int a,int b)
{for(int i=2; i<9999999;i++)
{
 
        if(a%i==0&&b%i==0)
        {
                cout<<"Наименьшее общее кратное "<<i<<endl;
                break;
        }
		else 
			cout<<"наименьшего общего кратного нет!"<<endl;
}

};
void nok(long a,long b)
{
	for(int i=2; i<9999999; i++)
{
 
        if(a%i==0&&b%i==0)
        {
                cout<<"Наименьшее общее кратное "<<i<<endl;
                break;
        }
		else 
			cout<<"наименьшего общего кратного нет!"<<endl;
}

};
void nok(float a,float b)
{
	for(int i=2; i<9999999;i++0.1)
	{		 int i;
			 if( (a/i==int(a/i)) && (b/i==int(b/i)) )
			{
					cout<<"Наименьшее общее кратное "<<i<<endl;
					break;
			}
		
	}
};
void nok(double a,double b)
{
for(int i=2; i<9999999;i++0.1)
	{		int i;
			if( (a/i==int(a/i)) && (b/i==int(b/i)) )
			{
					cout<<"Наименьшее общее кратное "<<i<<endl;
					break;
			}
			
	}
};
int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_ALL, "Russian");
int funk[]= {1,2,3,4};
int nomer;
int a,b;
long c,d;
float e,f;
double g,h;
	  cout<<"1.Два параметра типа int"<<endl;
	  cout<<"2.Два параметра типа long"<<endl; 
	  cout<<"3.Два параметра типа float"<<endl; 
	  cout<<"4.Два параметра типа double"<<endl;
	  cout<<"Выберете номер необходимого пункта(1,2,3 или 4):"<<endl;
	  cin>>nomer;
	  for(int i = 0;i<=3;i++)
	  {
				if(funk[i]==1)
				{cout<<"введите последовательно два числа размерности int"<<endl;
				  cin>>a>>b;
				  nok(a,b);
				}
		  else 
				if(funk[i]==2)
				{cout<<"введите последовательно два числа размерности long"<<endl;
				  cin>>c>>d;
				  nok(c,d);
				}
		  else 
				if(funk[i]==3)
				{cout<<"введите последовательно два числа размерности float"<<endl;
				  cin>>e>>f;
				  nok(e,f);
				}
		  else 
				if(funk[i]==4)
				{cout<<"введите последовательно два числа размерности double"<<endl;
				  cin>>g>>h;
				  nok(g,h);
				}
	  }
 system ("PAUSE");
 
	return 0;
}

Последний раз редактировалось tipilat; 30.03.2010 в 00:02.
tipilat вне форума Ответить с цитированием
Старый 30.03.2010, 00:10   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

for(int i=2; i<9999999;i++0.1)
это что? 0.1 там делать нечего )
netrino вне форума Ответить с цитированием
Старый 30.03.2010, 00:16   #3
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
for(int i=2; i<9999999;i++0.1)
это что? 0.1 там делать нечего )
а как мне сделать так чтобы переменная "i" у меня увеличивалась на 0.1 ?
далее там я проверю делятся ли оба числа "a" и "b" на "i" нацело..

Последний раз редактировалось tipilat; 30.03.2010 в 00:20.
tipilat вне форума Ответить с цитированием
Старый 30.03.2010, 00:24   #4
zoluxa
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 53
По умолчанию

i<9999999;i++0.1 - реально а чо такой маленький шаг?? по сравнению с 9999999, 0.1 ето ничто!!
zoluxa вне форума Ответить с цитированием
Старый 30.03.2010, 00:29   #5
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
По умолчанию

Ага с этим разобрался, убрал 0.1... прога запускается..но она не выдаёт мне никакой реакции на то что я ввожу числа 1.1 и 2.2 (к примеру) т.к. делю я на целочисленное а не на вещественное...
Как исправить?
код ранее выделенного красным сейчас выглядит так
Код:
void nok(float a,float b)
{
	for(int i=2; i<9999999;i++)
	{		
			 if( (a/i==int(a/i)) && (b/i==int(b/i)) )
			{
					cout<<"Наименьшее общее кратное "<<i<<endl;
					break;
			}
		
	}
}; 
void nok(double a,double b)
{
for(int i=2; i<9999999;i++)
	{	
			if( (a/i==int(a/i)) && (b/i==int(b/i)) )
			{
					cout<<"Наименьшее общее кратное "<<i<<endl;
					break;
			}
			
	}
};

Последний раз редактировалось tipilat; 30.03.2010 в 00:33.
tipilat вне форума Ответить с цитированием
Старый 30.03.2010, 01:03   #6
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
По умолчанию

Хоть кто то знает как сделать шаг равным 0.1... т.е. чтобы переменная каждый увеличивалась на 0.1..
Мне только этого не хватает...
tipilat вне форума Ответить с цитированием
Старый 30.03.2010, 01:16   #7
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Код:
#include "iostream"
#include "windows.h"
using namespace std;
void nok(int a,int b)
{for(int i=2; i<9999999;i++)
{

		if(a%i==2&&b%i==0)
        {
				cout<<"NOK "<<i<<endl;
                break;
        }
		else    {
			cout<<"NOK now!"<<endl;     	break;   }
}

};
void nok(long a,long b)
{
	for(int i=2; i<9999999; i++)
{

        if(a%i==0&&b%i==0)
        {
				cout<<"NOK "<<i<<endl;
                break;
        }
		else   {
			cout<<"NOK now!"<<endl;       	break;   }
}

};
void nok(float a,float b)
{
	for(int i=2; i<9999999;i++)
	{
			 if( (a/i==int(a/i)) && (b/i==int(b/i)) )
			{
					cout<<"NOK "<<i<<endl;
					break;
			}
			else    {
			cout<<"NOK now!"<<endl;  	break;    }

	}
};
void nok(double a,double b)
{
for(int i=0; i<9999999;i++)
	{
			if( (a/i==int(a/i)) && (b/i==int(b/i)) )
			{
					cout<<"NOK "<<i<<endl;
					break;
			}
			 else     {
			cout<<"NOK now!"<<endl;   	break;   }
	}
};
int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_ALL, "Russian");
int funk[]= {1,2,3,4};
int nomer;
int a,b;
long c,d;
float e,f;
double g,h;
	  cout<<"1. 2 param.. int"<<endl;
	  cout<<"2. 2 param.. long"<<endl;
	  cout<<"3. 2 param.. float"<<endl;
	  cout<<"4. 2 param.. double"<<endl;
	  cout<<"namber(1,2,3 or 4):"<<endl;
	  cin>>nomer;
				if(nomer==1)
				{cout<<"Enter 2 int"<<endl;
				  cin>>a>>b;
				  nok(a,b);
				}
		  else
				if(nomer==2)
				{cout<<"Enter 2 long"<<endl;
				  cin>>c>>d;
				  nok(c,d);
				}
		  else
				if(nomer==3)
				{cout<<"Enter 2 float"<<endl;
				  cin>>e>>f;
				  nok(e,f);
				}
		  else
				if(nomer==4)
				{cout<<"Enter 2 double"<<endl;
				  cin>>g>>h;
				  nok(g,h);
				}

 system ("PAUSE");

	return 0;
}
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 30.03.2010, 01:30   #8
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
По умолчанию

"Уважаемый" [coder], твой "копипаст" мне вряд ли поможет.. твоя замена шрифта русского на латинский погоды не делают.. Извини конечно если я ещё чего не заметил, но как то так.. )

Народ, убедительная просьба, не грузите тему таким образом..

Последний раз редактировалось tipilat; 30.03.2010 в 01:33.
tipilat вне форума Ответить с цитированием
Старый 30.03.2010, 01:34   #9
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Да, ты действительно не заметил!!!

убрал
for(int i = 0;i<=3;i++)
добавил
cout<<"NOK now!"<<endl; break; }
заменил
if(funk[i]==2)
Я язык я даже не вникал, у меня отображались только иероглифы.
Нет слов....
Skype: CODERua

Последний раз редактировалось [CODER]; 30.03.2010 в 01:37.
[CODER] вне форума Ответить с цитированием
Старый 30.03.2010, 01:43   #10
tipilat
Пользователь
 
Аватар для tipilat
 
Регистрация: 02.07.2009
Сообщений: 22
По умолчанию

Цитата:
Сообщение от [CODER] Посмотреть сообщение
Да, ты действительно не заметил!!!

убрал
for(int i = 0;i<=3;i++)
добавил
cout<<"NOK now!"<<endl; break; }
заменил
if(funk[i]==2)
Я язык я даже не вникал, у меня отображались только иероглифы.
Нет слов....
сори )) не заметил... но эту ошибку я и сам давно исправил, просто не отписался.. так как поставил акцент проблему увеличения шага...
кажется я разобрался как его увеличить.. как сделаю отпишусь..
а так спасибо
tipilat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
htaccess выдаёт ошибку memka PHP 11 14.04.2009 01:16
Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR prikolist Общие вопросы C/C++ 4 10.04.2009 20:27
Выдаёт ошибку DM_bite Помощь студентам 2 08.08.2008 10:33
Почему ошибку выдаёт? Inbox Общие вопросы Delphi 14 24.06.2007 02:15