2016-08-03 3 views
-2
#include<iostream> 
#include<cstdlib> 
#include<cmath> 

using namespace std; 
int round(double number); 
int main() 
{ 
    double doublevalue; 
    char ans; 
    do 
    { 
    cout << "Enter the double value:"; 
     cin >> doublevalue; 
    cout << "Rounded that number is"<<round(doublevalue)<<endl; 
    cout << "Again?(y/n)"; 
    cin >> ans; 
     }while(ans=='y' ||ans=='Y'); 
     cout << "End of testing.\n"; 
     return 0; 
     } 
     int round(double number) 
     { 
     return static_cast<int>(floor(number+0.5)); 
    } 

ошибки, как показано ниже:Как решить эту ошибку терминала

roundoff.cpp:6:24: error: new declaration ‘int round(double)’ 
    int round(double number); 
        ^
In file included from /usr/include/features.h:374:0, 
      from /usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h:39, 
      from /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:426, 
      from /usr/include/c++/4.8/iostream:38, 
      from roundoff.cpp:1: 
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:309:1: error: ambiguates  old declaration ‘double round(double)’ 
__MATHCALLX (round,, (_Mdouble_ __x), (__const__)); 

^ roundoff.cpp: В функции 'INT круглый (двойной)': roundoff.cpp: 22: 24 : ошибка: новая декларация 'int round (double)' int round (double number) ^ В файл включен из /usr/include/features.h:374:0, из/usr/include/x86_64-linux- gnu/C++/4.8/bits /os_defines.h:39, из/usr/include/x86_64-linux-gnu/C++/4.8/bits /c++config.h:426, из /usr/include/c++/4.8/iostream:38, from roundoff.cpp: 1: /usr/include/x86_64-linux-gnu/bits/mathcalls.h: 309: 1: ошибка: неоднозначная старая декларация «двойной круглый (двойной)» MATHCALLX (round ,, (Mdouble __x), (__const)); ^

+0

, пожалуйста, отформатируйте свой код. Трудно это читать. – elyashiv

+1

См. ['Std :: round'] (http://en.cppreference.com/w/cpp/numeric/math/round). Справедливо, что C++ позволяет 'cmath' помещать' round' в глобальное пространство имен, поэтому вы можете получить ту же ошибку без 'using namespace std;'. – juanchopanza

+0

Вернувшийся оскорбление обмана. –

ответ

0

Вы должны изменить имя вашей функции round потому cmath уже определяет метод, называемый round с тем же сигнатура вызывает неоднозначность. Измените имя на my_round(double number) вместо round, и он будет работать.

+0

лет его работы спасибо .. –

Смежные вопросы