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

Исправить ошибки в программе - C++

Восстановить пароль Регистрация
 
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
12.03.2012, 00:49     Исправить ошибки в программе #1
Есть программа:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
 
int* P1,*P2;
long int n,raz1,raz2,chek=0;
long int ras;
char* per;
 
void Pal1()
{
 int i,h(0),k(0),f;
 chek=1;
 for(i=1;i<n;i++)
  {
  f=0; h=0; ras=0;
   ras=pow(i,2);
 
   char string [25];
   ltoa(ras,string,10);
 
   h=strlen(string);
   for (k=1; k<=h; k++) {
   if(string[k-1]==string[h+1-k-1]){ f++; }
             }
   if (f==h)
    {
    P1[raz1]=i;
     raz1++;
    }
  }
 
  cout<<"\t\t\ Нужные числа: \n";
  for (i=0;i<raz1;i++)
       {
    cout<<P1[i]<<"\t";
    if((i+1)%10==0) cout<<endl;
       }
}
 
void Pal2()
{
 int i,h,k(0),f(0);
   for (i=0;i<raz1;i++)
       {
    ras=pow(P1[i],4);
    char string [25];
    ltoa(ras,string,10);
    h=strlen(string);
    for (k=1; k<=h; k++){
    if(string[k-1]==string[k+1-k-1]){ f++;}
     }//close k
    if (f==h)
     {
      P2[raz2]=P1[i];
      raz2++;
     }
       }
  cout<<"\t\t\t Нужные числа: \n";
  for (i=0;i<raz2;i++)
   {
    cout<<P2[i]<<"\t";
    if((i+1)%10==0) cout<<endl;
   }
}
 
void main()
{
 raz1=0;
 raz2=0;
 clrscr();
 int choise;
 cout<<"‚ўҐ¤ЁвҐ N: ";
 cin>>per;
m: clrscr();
 n=atoi(per);
 cout<<" МЕНЮ: ";
 cout<<endl<<"1- Поиск чисел, меньших от N, которые при возведении в квадрат дают палиндром";
 cout<<endl<<"2- Поиск чисел-палиндромов, которые при возведении в квадрат дают палиндром.";
 cout<<endl<<"3- Выход "<<endl;
 cin>>choise;
 if (choise==1){ clrscr(); Pal1(); getch(); goto m;}
 if (choise==2){ if (chek==0) {cout<<" Невозможно выполнить так как не выполнен пункт №1 "; getch(); goto m;}
 else { clrscr(); Pal2(); getch(); goto m;}}
 if (choise==3){exit(1);}
  getch();
}
Она состоит из 2х функций: Pal1, Pal2
Pal1 - Поиск чисел, меньших от N, которые при возведении в квадрат дают палиндром
Pal2 - Поиск чисел-палиндромов, которые при возведении в квадрат дают палиндром
Но когда я ввожу n как 9000000. Программа недосчитывает палиндромы. Прекращает считать на 20000. Почему?

И еще один вопрос. Программный модуль это типо Модули Pal1 и Pal2 ??
Буду очень благодарен!

Добавлено через 3 минуты
Хм... странно.. когда ввожу 50000, оно вобще пустой экран показывает...

Добавлено через 46 секунд
Хм... странно.. когда ввожу 50000, оно вобще пустой экран показывает...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 00:49     Исправить ошибки в программе
Посмотрите здесь:

C++ Исправить ошибки в программе
C++ Исправить ошибки в программе
Исправить ошибки в программе на С++ C++
Исправить ошибки в программе C++
C++ Исправить ошибки в программе
Доделать и исправить ошибки в программе! C++
C++ Исправить ошибки в программе C++
C++ Помогите исправить ошибки в программе

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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