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

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

Войти
Регистрация
Восстановить пароль
 
xFORCEx
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 47
#1

Переделать программу (Палиндром. Указатели) - C++

11.01.2013, 11:08. Просмотров 370. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток. Написал программу на палиндром, но от меня тебуют её сделать не с помощью массива, а с помощью указателей. Т.е. char slovo[20]; должен быть такого вида char *slovo; и.т.д. Помогите переделать,пожалуйста, там вроде как недолго.
Вот код:
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>
 
main()
{
 char slovo[20];
 int i,j,flag,maxdlin;
 
 clrscr();
 FILE *f=fopen("in.txt","r"); 
 
 if (f==NULL) printf ("fail pystoi"); 
 
 maxdlin=0; 
 i=1; 
 
 while ((slovo[i]=getc(f))!=EOF) 
 {
  if (fmod(i,2)==0)
  {
   flag=0; 
      for (j=1;j<=(i/2);j++)
     if (slovo[j]!=slovo[i-j+1]) flag=1; 
   if (flag==0) maxdlin=i; 
  }
  i++;
 }
 
 fclose (f); 
 
 printf ("Dlina max palindroma v slove ravna = %d\n\n",maxdlin);
 printf ("Dl9 prodoljeni9 najmite lIObyIO klavishy\n");
 getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2013, 11:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделать программу (Палиндром. Указатели) (C++):

переделать программу через указатели - C++
очень нужна ваша помощь #include&lt;math.h&gt; #include&lt;stdio.h&gt; #include &lt;conio.h&gt; void main () {int x,a; float y; ...

Переделать программу с индексов на указатели - C++
Помогите пожалуйста переделать программу с индексов на указатели Вот код: #include &lt;stdlib.h&gt; #include &lt;iostream&gt; using...

Как правильно переделать данную программу используя указатели? - C++
Как правильно переделать данную программу используя указатели? Вот у меня начальный код и переделанный. Вроде всё нормально, но мне кажется...

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; //Сортировка &quot;пузырьком&quot;. ...

Переделать массивы на указатели - C++
при формировании выходной строки каждый символ дублируется abc -&gt; aabbcc, подскажите как сделать эту задачку через указатели, и если не...

Переделать под указатели - C++
Помогите пожалуйста переделать задачу под указатели... :(вообще не получается... Заранее огромное спасибо.... int main() { int...

5
Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
11.01.2013, 12:35 #2
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>
 
main()
{
 char* slovo;
 slovo=new char[20];
 int i,j,flag,maxdlin; 
 clrscr();
 FILE *f=fopen("in.txt","r"); 
 
 if (f==NULL) printf ("fail pystoi"); 
 
 maxdlin=0; 
 i=1; 
 
 while ((slovo[i]=getc(f))!=EOF) 
 {
  if (fmod(i,2)==0)
  {
   flag=0; 
      for (j=1;j<=(i/2);j++)
     if (slovo[j]!=slovo[i-j+1]) flag=1; 
   if (flag==0) maxdlin=i; 
  }
  i++;
 }
 
 fclose (f); 
 
 printf ("Dlina max palindroma v slove ravna = %d\n\n",maxdlin);
 printf ("Dl9 prodoljeni9 najmite lIObyIO klavishy\n");
 getch();
 delete slovo;
}
Как-то так
0
xFORCEx
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 47
11.01.2013, 12:48  [ТС] #3
Разве так?) По моему по всему тексту программы нужно это слово со звёздочкой расставлять, заменяя массив,если я не ошибаюсь) И цикл тоже немного по другому переделывается) Или по другому никак не сделаешь?
0
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
11.01.2013, 12:52 #4
xFORCEx, Ошибаетесь, Ох_евший_Тигр всё правельно написал

можно конечно сделать
C++
1
2
3
     for (j=1;j<=(i/2);j++)
     if (*(slova+j)!=*(slovo(i-j+1)) flag=1; 
   if (flag==0) maxdlin=i;
1
xFORCEx
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 47
12.01.2013, 04:28  [ТС] #5
Всем огромное спасибо)

Добавлено через 15 часов 28 минут
xADMIRALx, Не работает, как Вы показали.
0
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
12.01.2013, 04:34 #6
xFORCEx,
C++
1
2
3
    for (j=1;j<=(i/2);j++)
     if (*(slova+j) != *(slovo+(i-j+1))) flag=1; 
   if (flag==0) maxdlin=i;
0
12.01.2013, 04:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 04:34
Привет! Вот еще темы с ответами:

Переделать под указатели - C++
Задание В заданном предложении найти пару слов, из которых одно является обращением другого. Программа готова, но просят переделать...

Переделать код под указатели - C++
Помогите пожалуйста переделать под указатели int main() { int i,dlina1=0; char txt; cout &lt;&lt; &quot;Vvedite vash text: &quot;; ...

Как переделать через указатели? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { float u,v,n,h,x,y; cout &lt;&lt;&quot;...

Помогите переделать работу с массивом через указатели - C++
помогите оформить через указатели...понимаю,что элементарно....но я трамвай for(j=k; j&lt;=N; j++) { ...


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

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

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