Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
#1

функция в с++ (IsPalindrome) найдите ошибку) - C++

14.02.2012, 17:54. Просмотров 819. Ответов 14
Метки нет (Все метки)

Описать функцию IsPalindrom(K), возвращающую True, если целый параметр K (> 0) является палиндромом (то есть его запись читается одинаково слева направо и справа налево), и False в противном случае. С ее помощью найти количество палиндромов в наборе из 10 целых положи-
тельных чисел.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
bool IsPalindrome(int cur)
{
 
    int base; 
    int rev;
    rev=0;
    while(cur>0)
    {
        rev=rev*10+cur%10;
        cur=cur/10;
    }
if(base == rev)
 
    return true;
else
   return false;
 
}
 
int main(int argc, char * argv[])
 
{
int k;
int count;
count=0;
for(int i = 1; i <= 10; i++)
 
{
    cout<<"vvedite 4islo:";
    cin >> k;
    if(IsPalindrome(k)== true)
    
        count=count+1;
    
}
 
cout << count;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2012, 17:54     функция в с++ (IsPalindrome) найдите ошибку)
Посмотрите здесь:

C++ Найдите ошибку!
найдите ошибку C++
Найдите ошибку C++
найдите ошибку.. C++
Найдите ошибку C++
C++ Найдите ошибку!
C++ Найдите ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
14.02.2012, 17:57     функция в с++ (IsPalindrome) найдите ошибку) #2
Сразу бросается в глаза, base - объявлена, но значение не присвоено.
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 17:57  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #3
а что нужно присвоить?
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
14.02.2012, 17:59     функция в с++ (IsPalindrome) найдите ошибку) #4
Цитата Сообщение от ne_waru_fortran Посмотреть сообщение
if(base == rev)
base ничем не инициализирована. Я так понимаю - в неё исходное число нужно было скопировать?
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
14.02.2012, 18:00     функция в с++ (IsPalindrome) найдите ошибку) #5
if(cur == rev), а что такое base, вообще непонятно.
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:01  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #6
если даже пишу вместо base==rev cur==rev
все ровно у меня не находит количество палиндромов в наборе
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
14.02.2012, 18:02     функция в с++ (IsPalindrome) найдите ошибку) #7
А все правильно,
int base = cur;

Добавлено через 49 секунд
Ошибся. Добавьте только в 6 строчке
int base = cur;
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:03  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #8
таак сейчас
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:06  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #9
функция в с++ (IsPalindrome) найдите ошибку) у меня по моему cout не правилен
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
14.02.2012, 18:12     функция в с++ (IsPalindrome) найдите ошибку) #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
    
unsigned reverse_number(unsigned num){
    unsigned ret = 0;
    
    while ( num ) {
        ret = ret * 10 + num % 10;
        num /= 10;
    }
    
    return ret;
}
 
bool is_palindrome(const unsigned num){
    return num == reverse_number(num);
}
 
int main(){
    unsigned num;
    
    while ( std::cout << "Number: " && std::cin >> num )
        std::cout << "It is " << ( is_palindrome(num) ? "" : "not " ) << "a palindrome." << std::endl;
    
    return 0;
}
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:15  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #11
спасибо большое!
здесь у вас показывает это палиндром или не палиндром!
а как сделать так, чтобы он нашел количество палиндромов в наборе из 10 целых положительных чисел. Как в условии)
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
14.02.2012, 18:22     функция в с++ (IsPalindrome) найдите ошибку) #12
Цитата Сообщение от ne_waru_fortran Посмотреть сообщение
а как сделать так, чтобы он нашел количество палиндромов в наборе из 10 целых положительных чисел
Функции те же, main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(){
    const size_t SIZE(10);
    unsigned arr[SIZE] = { 12321, 456, 2442, 123123, 555, 789987, 788778, 34543, 666, 1369 };
    size_t count = 0;
 
    std::cout << "Array:" << std::endl;
    for ( size_t i = 0; i < SIZE; ++i ){
        std::cout << arr[i] << ' ';
        if ( is_palindrome(arr[i]) )
            ++count;
    }
    std::cout << "\n" << count << " palindromes." << std::endl;
    
    return 0;
}
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:34  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #13
аа спасибо большое! понятно!

Добавлено через 11 минут
в итоге моя программа должна выглядеть вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
unsigned reverse_number(unsigned num)
{
        unsigned ret = 0;
        
        while ( num ) 
        {
                ret = ret * 10 + num % 10;
                num /= 10;
        }
       return ret;
}
 
bool is_palindrome(const unsigned num)
{
        return num == reverse_number(num);
}
 
int main()
{
        unsigned num;
        
        while ( std::cout << "Number: " && std::cin >> num )
                std::cout << "It is " << ( is_palindrome(num) ? "" : "not " ) << "a palindrome." << std::endl;
const size_t SIZE(10);
        unsigned arr[SIZE] = { 12321, 456, 2442, 123123, 555, 789987, 788778, 34543, 666, 1369 };
        size_t count = 0;
 
        std::cout << "Array:" << std::endl;
        for ( size_t i = 0; i < SIZE; ++i ){
                std::cout << arr[i] << ' ';
                if ( is_palindrome(arr[i]) )
                        ++count;
        }
        std::cout << "\n" << count << " palindromes." << std::endl;       
 
        return 0;
}
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
14.02.2012, 18:40     функция в с++ (IsPalindrome) найдите ошибку) #14
ne_waru_fortran, main заменить нужно было
вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
    
unsigned reverse_number(unsigned num){
    unsigned ret = 0;
    
    while ( num ) {
        ret = ret * 10 + num % 10;
        num /= 10;
    }
    
    return ret;
}
 
bool is_palindrome(const unsigned num){
    return num == reverse_number(num);
}
 
int main(){
    const size_t SIZE(10);
    unsigned arr[SIZE] = { 12321, 456, 2442, 123123, 555, 789987, 788778, 34543, 666, 1369 };
    size_t count = 0;
 
    std::cout << "Array:" << std::endl;
    for ( size_t i = 0; i < SIZE; ++i ){
        std::cout << arr[i] << ' ';
        if ( is_palindrome(arr[i]) )
            ++count;
    }
    std::cout << "\n" << count << " palindromes." << std::endl;
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2012, 18:42     функция в с++ (IsPalindrome) найдите ошибку)
Еще ссылки по теме:

C++ Найдите ошибку!
Найдите ошибку C++
C++ найдите ошибку
C++ Найдите ошибку
C++ найдите ошибку C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:42  [ТС]     функция в с++ (IsPalindrome) найдите ошибку) #15
большое спасибо!
Yandex
Объявления
14.02.2012, 18:42     функция в с++ (IsPalindrome) найдите ошибку)
Ответ Создать тему
Опции темы

Текущее время: 20:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru