Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

14.02.2012, 17:54. Просмотров 867. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2012, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос функция в с++ (IsPalindrome) найдите ошибку) (C++):

найдите ошибку - C++
вот скрин, пишет что синтаксическая ошибка, помогите!

найдите ошибку - C++
#include &quot;stdafx.h&quot; #include &lt;cstdio&gt; // бібліотека введення-виводу #include &lt;cstring&gt; // бібліотека для роботи з рядками...

Найдите ошибку - C++
Даны натуральные числа эм и эн. Найти такие натуральные пэ и ку, не имеющие общих делителей, что пэ/ку=эм/эн #include&lt;iostream.h&gt; int...

Найдите ошибку - C++
Если честно, совсем не понимаю как решать. Вычислить Думала как то так, но видимо нет #include &lt;iostream.h&gt; #include&lt;math.h&gt; int...

Найдите ошибку - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;clocale&gt; template&lt; typename T &gt; T avg( const T* arr, T size_arr ) { T sum = 0; ...

Найдите ошибку - C++
#include &lt;iostream.h&gt; int Add (int x, int y) { cout &lt;&lt; &quot;In add(), received &quot; &lt;&lt; x &lt;&lt; &quot; and &quot; &lt;&lt; y &lt;&lt; &quot;\n&quot;; return (x+y); ...

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

Добавлено через 49 секунд
Ошибся. Добавьте только в 6 строчке
int base = cur;
0
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:03  [ТС] #8
таак сейчас
0
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:06  [ТС] #9
функция в с++ (IsPalindrome) найдите ошибку) у меня по моему cout не правилен
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,847
14.02.2012, 18:12 #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;
}
2
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:15  [ТС] #11
спасибо большое!
здесь у вас показывает это палиндром или не палиндром!
а как сделать так, чтобы он нашел количество палиндромов в наборе из 10 целых положительных чисел. Как в условии)
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,847
14.02.2012, 18:22 #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;
}
1
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:34  [ТС] #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;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,847
14.02.2012, 18:40 #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;
}
0
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
14.02.2012, 18:42  [ТС] #15
большое спасибо!
0
14.02.2012, 18:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2012, 18:42
Привет! Вот еще темы с ответами:

Найдите ошибку - C++
Вот пример Вот решение #include&lt;iostream.h&gt; #include&lt;math.h&gt; void main ()

Найдите ошибку - C++
Плиз помогите найти ошибку в проге на функции #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; #include &lt;string.h&gt; ...

Найдите ошибку - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; class integer{ protected: int result; public: ...

Найдите ошибку - C++
Даны действительные числа x1, x2, x3, y1, y2, y3. Принадлежит ли начало координат треугольнику с вершинами (x1, y1), (x2, y2), (x3, y3)? ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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