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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2010, 08:36   #1
Positive-z
 
Регистрация: 13.06.2010
Сообщений: 3
По умолчанию Программирование алгоритмов с использованием подпрограмм - функций, не могу справиться с ошибками

задание:Натуральное число, в записи которого n цифр, называется числом
Армстронга, если сумма его цифр, возведенная в степень n, равна
самому числу Армстронга от 1 до k..


код
PHP код:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;

int main()
 {
int n=0,k,i,t,s=0,cnt=0;
cout<<"Vvedite k:";
cin>>k
cout<<"\n--\n";

for(
i=1;i<=k;i++)
 {
    
i;
    
0;
    while(
t>0)
      {
     
t/=10;
     
n++;
    }
     
i;
     
0;
    while(
t>0)
    {
     
+= round(exp(n*log(t%10)));
     
t/=10;
    }
  if(
s==icnt++ ;
 }

cout<<"Kol-vo: "<<cnt<<endl;
getch();
return 
0;

выдает ошибки: error C3861: 'round': identifier not found
error C2668: 'log' : ambiguous call to overloaded function
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\math.h(567): could be 'long double log(long double)'
1> C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\math.h(519): or 'float log(float)'
1> C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\math.h(121): or 'double log(double)'
1> while trying to match the argument list '(int)'
Positive-z вне форума Ответить с цитированием
Старый 13.06.2010, 13:53   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Переведите ошибки. Там все точно написано.
p51x вне форума Ответить с цитированием
Старый 13.06.2010, 14:35   #3
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

Типичные ошибки =(
Цитата:
выдает ошибки: error C3861: 'round': identifier not found
В коде
PHP код:
+= round(exp(n*log(t%10))); 
round - зарезервированное слово или что это у вас?
А вторая ошибка сразу с ответом идет
Ошибка:
Цитата:
error C2668: 'log' : ambiguous call to overloaded function
Ответ:
Цитата:
1> C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\math.h(519): or 'float log(float)'
1> C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\math.h(121): or 'double log(double)'
1> while trying to match the argument list '(int)'
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Старый 13.06.2010, 16:11   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
round - зарезервированное слово или что это у вас?
Это у ТС функция из Паскаля.....

ТС, загляните в книжку или справку, например по floor.
p51x вне форума Ответить с цитированием
Старый 13.06.2010, 17:25   #5
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

В <math.h> нет функции round.
Для округления используйте функции ceil-округляет вверх или floor-округляет вниз.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование с использованием процедур и функций...на Паскале Лизонька Помощь студентам 1 25.02.2010 23:29
Программирование с использованием процедур и функций Лизонька Помощь студентам 2 25.02.2010 22:50
Программирование алгоритмов циклической структуры для задач табулирования функций одной переменной с пост bbk_serg Помощь студентам 1 10.01.2009 18:16