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

Слово перевётрыш - C++

Восстановить пароль Регистрация
 
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
05.10.2011, 00:16     Слово перевётрыш #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
//
// Переделать программу что бы она считала не коол-во перевёртышей а кол-во не перевёртышей.
//---------------------------------------------------------------------------
//Дан массив слов.Определить количество слов массива, которые не являются "перевертышем".
#include <vcl.h>
#pragma hdrstop
#include<conio.h>
#include<stdio.h>
#include<string.h>
#pragma hdrstop
#pragma argsused
void main()
{
  int ks,ii,kl;
  printf("Vvedite kol-vo slov\n");
  scanf("%d",&kl);
  char **MS= new char *[kl];
  for(int ii=0;ii<kl;ii++)
    MS[ii]=new char[kl];
  puts("vvedite text");
  for(int ii=0;ii<kl;ii++)
    scanf("%s",MS[ii]);
  char **i;
  char *j;
  int kol=0;
  int jj=0,kz=0;
  for(i=MS;i<MS+kl;i++)
    {
      jj=0;
     int d1=strlen(*i);
     if (d1==1){kz++;}
      for(j=*i;j<*i+d1/2;j++,jj++)
    {
      if(*j==*(j+d1-jj-1)) kol++;
      if(kol==d1/2)
        {
          kz++;
          kol=0;
    
        }
     }
    }
  printf("%d",kz-kl);
  getch();
  for(ii=0;ii<kl;ii++)
    delete []MS[ii];
  delete []MS;
}
//---------------------------------------------------------------------------
 Комментарий модератора 
Используйте теги форматирования кода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 00:16     Слово перевётрыш
Посмотрите здесь:

C++ Ввести строку и слово. Вывести те слова, которые не содержат букв, входящих в слово.
C++ Ввести строку и слово. Вставить введенное слово за самым коротким словом в строке.
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово. C++
C++ В тексте заменить слово А(любое слово) на слово В(любое слово). А и В разной длинны
Дано слово а. Получить слово b, образованное нечётными буквами слова а. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
05.10.2011, 00:43     Слово перевётрыш #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
#include <iostream>
#include <string>
 
const int N = 10;
 
bool DoubleDealingFellow ( const std::string word )
{
    bool Checker = true;
    int i = 0;
    while ( ( i < word.length() / 2 ) && ( Checker ) )
    {
        Checker = ( word [ i ] == word [ word.length() - i - 1 ] );
        i++;
    }
    return Checker;
}
 
int main ()
{
    std::string *ArrayWords = new std::string [ N ];
 
    // Ввод масива слов
 
    unsigned int count = 0;
    for ( int index = 0; index < N; index++ )
        if ( !DoubleDealingFellow ( ArrayWords [ index ] ) )
            count++;
 
    std::cout << "Count: " << count << std::endl;
 
    delete []ArrayWords;
 
    std::cin.get();
    return 0;
}
juli.ya92
2 / 2 / 0
Регистрация: 25.09.2010
Сообщений: 82
05.10.2011, 11:49  [ТС]     Слово перевётрыш #3
ну я же попросила эту переделать а не новую непонятную написать мне нужно эту.

Добавлено через 1 минуту
Переделать программу что бы она считала не коол-во перевёртышей а кол-во не перевёртышей.
Цитата Сообщение от juli.ya92 Посмотреть сообщение
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
//
//
//---------------------------------------------------------------------------
//Дан массив слов.Определить количество слов массива, которые не являются "перевертышем".
#include <vcl.h>
#pragma hdrstop
#include<conio.h>
#include<stdio.h>
#include<string.h>
#pragma hdrstop
#pragma argsused
void main()
{
  int ks,ii,kl;
  printf("Vvedite kol-vo slov\n");
  scanf("%d",&kl);
  char **MS= new char *[kl];
  for(int ii=0;ii<kl;ii++)
    MS[ii]=new char[kl];
  puts("vvedite text");
  for(int ii=0;ii<kl;ii++)
    scanf("%s",MS[ii]);
  char **i;
  char *j;
  int kol=0;
  int jj=0,kz=0;
  for(i=MS;i<MS+kl;i++)
    {
      jj=0;
     int d1=strlen(*i);
     if (d1==1){kz++;}
      for(j=*i;j<*i+d1/2;j++,jj++)
    {
      if(*j==*(j+d1-jj-1)) kol++;
      if(kol==d1/2)
        {
          kz++;
          kol=0;
    
        }
     }
    }
  printf("%d",kz-kl);
  getch();
  for(ii=0;ii<kl;ii++)
    delete []MS[ii];
  delete []MS;
}
//---------------------------------------------------------------------------
Используйте теги форматирования кода.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:57     Слово перевётрыш #4
Зная общее количество слов и количество полиндромов, решение сводится к сложнейшей операции под названием "вычитание"...
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:59     Слово перевётрыш #5
juli.ya92, поменяйте условие
C++
1
if(kol==d1/2)
на
C++
1
if(kol != d1/2)
Если, конечно, программа работала правильно
Deviaphan
05.10.2011, 12:09
  #6

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
стория показала, что ваши шутки не всем понятны
И правда, надо пояснить.
Вычитание, это такая операция, противоположная сложению. Её математический смысл в уменьшении одной величины на другую величину. Результат данной операции в простонародье именуется разностью. В большинстве естественных языков, символом вычитания является горизонтальная полосочка, длиной сопоставимая с высотой используемых символов. В языках программирования так же зачастую используется именно полосочка. Нужно иметь в виду, что на компьютерных клавиатурах имеют место быть распространёнными по одной клавише целых ДВЕ горизонтальных полосочки. Для операции вычитания требуется использовать полосочку, расположенную по середине высоты символов. Горизонтальная полосочка, расположенная по низу символа, не являет собой отображения операции вычитания и использовать её в математических выражениях не рекомендуется.
Надеюсь, теперь не возникнет трудности в использовании такого сложного математического инструмента, который простые смертные кличут "минусом".

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 12:17     Слово перевётрыш
Еще ссылки по теме:

C++ Определить, содержит ли последнее слово строки букву, с которой начинается первое слово
Ввести строку и слово. Вставить введенное слово за пятым словом в строке C++
Найти в файле слово по заданному началу, вывести слово и его позицию C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 12:17     Слово перевётрыш #7
Цитата Сообщение от Deviaphan Посмотреть сообщение

Не по теме:


И правда, надо пояснить...

Не по теме:

:cofee2:

Yandex
Объявления
05.10.2011, 12:17     Слово перевётрыш
Ответ Создать тему
Опции темы

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