Программа на C++ называется "Палиндром целое", две функции. Функция 1// Возвращаем целое число обращения. Функция 2// Возвращает true если палиндром
Пожалуйста помоги
Я пишу программу на C++ с использованием Visual Basic 2010, программа называется "Целое число Палиндрома". Мне нужно написать две функции, одна из которых // Возвращает обращение целого числа. Например, reverse(456) возвращает 654 // с заголовком:->
int reverse(внутренний номер)
Мне нужно написать другую функцию, которая // возвращает true, если число является палиндромом // с заголовком:->
bool isPalindrome(внутренний номер)
Мне нужно использовать функцию реверса для реализации функции isPalindrome. Число является палиндромом, если обращение чисел совпадает с самим собой. Моя программа должна сообщить, является ли число палиндромом. Все в одном файле.
Я думаю, что эта программа работала, когда я впервые написал код не как две функции, а просто непосредственно в int main(). Но я должен поместить код в указанные две функции, и после того, как я это сделал и внес изменения, я получил следующие сообщения об ошибках, и окно отображения черной метки не появилось. Вот фрагмент сообщения об ошибке, за которым следует полный отчет об ошибке.
: ошибка LNK2005: "int __cdecl reverse(int)" (?reverse@@YAHH@Z) уже определено в Driver.obj
: фатальная ошибка LNK1169: найден один или несколько кратно определенных символов
Я получаю следующее сообщение об ошибке
1>------ Build started: Project: Palindrome integer, Configuration: Debug Win32 ------
1>Build started 12/7/2013 4:54:25 PM.
1>InitializeBuildStatus:
1> Touching "Debug\Palindrome integer.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>implementation.obj : error LNK2005: "int __cdecl reverse(int)" (?reverse@@YAHH@Z) already defined in Driver.obj
1>c:\documents and settings\dell\my documents\visual studio 2010\Projects\Palindrome integer\Debug\Palindrome integer.exe : fatal error LNK1169: one or more multiply defined symbols found
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:02.25
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
// Сильфон мой код
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
//Retun reversal of an integer
int reverse(int number); //function prototype
//Return true if number is a palindrome
bool isPalindrome(int number); //function prototype
//Driver
int main()
{
int usersNumber = 456; //0; //a few lines commented tempararily for easier number testing
// cout<<"Enter a number and I'll tell you if it's a Palindrome: ";
// cin>> usersNumber;
bool palindromeToF = (isPalindrome(usersNumber));
if (palindromeToF == true)
{
cout <<"YES the number is a Palindrome";
}
else
{
cout <<"NO the number is not a Palindrome";
}
return 0;
}
//function Implementation
//Retun reversal of an integer
int reverse(int number)
{
//do while loop to count number of digits in Number
int digitsCount = 0;
double exponent1 = 1.0;
int quotient;
do
{
int tenToPower = pow( 10.0, exponent1);
// cout <<"tenToPower "<< tenToPower <<"\t ";
quotient = (number / tenToPower);
// cout <<"exponent1 "<< exponent1<<"\t ";
exponent1++;
//cout <<"quotient "<< quotient<< "\t "<<endl;
digitsCount++;
}while (!quotient == 0);
//populating array "arrDigits" with integer's digits
int *arrDigits = NULL;
arrDigits = new int[digitsCount];
double exponent2 = 0.0;
for(int i = 0; i < digitsCount; i++)
{
int powerOfTen = pow( 10.0, exponent2);
//cout <<endl<<"adding "<<((number / powerOfTen) % 10) <<" to sum";
//cout <<powerOfTen;
arrDigits[i]= ((number / powerOfTen) % 10);
exponent2++;
}
//reverse number & populate array "arrDigRevers" with reversed order number
int *arrDigRevers = NULL;
arrDigRevers = new int[digitsCount];
int j = 0;
int reversedNum = 0;
double exponent3 = 0.0;
for(int i = digitsCount-1; i >= 0; i--)
{
int powerOfTenB = pow( 10.0, exponent3);
reversedNum += (powerOfTenB * arrDigits[i]); //return of reverse func.
exponent3++;
/* //reversed integer put into array
if(j < digitsCount)
{
arrDigRevers[j] = arrDigits[i];
//cout <<"\t"<< "arrDigRevers"<<"["<< j<<"]="<< arrDigRevers[j]<<" "<< "arrDigits"<<"["<< j<<"]="<< " "<<arrDigits[j]<<" ";
j++;
}
*/
}
delete[] arrDigits;
delete[] arrDigRevers;
arrDigits = NULL;
arrDigRevers = NULL;
//cout <<endl<<"reversed number is "<< reversedNum;
return reversedNum;
}
//function Implementation
//Return true if number is a palindrome
bool isPalindrome(int number)
{
if(number == reverse(number))
{
return true;
}
else
{
return false;
}
}
1 ответ
Ответ лежит здесь:
1>implementation.obj : error LNK2005: "int __cdecl reverse(int)" (?reverse@@YAHH@Z) already defined in Driver.obj
Похоже, что определили int reverse(int number)
в обоих реализациях.cpp и Driver.cpp. Вам нужно переименовать или удалить одно из этих определений из вашего проекта.