Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2015, 09:11   #1
wesker57
Александр
Пользователь
 
Аватар для wesker57
 
Регистрация: 06.04.2015
Сообщений: 32
По умолчанию помогите написать код

Задача: Дано предложение. Сколько слов является перевертышами и сколько букв "а". Найти их разность.
Предложение придумать самому.
Не могу понять как искать перевертыши и в общем написать сам код
wesker57 вне форума Ответить с цитированием
Старый 06.04.2015, 10:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как искать перевертыши
Вот так:
Код:
bool palindrom(char *s){
 int i,n=strlen(s);
 for(;n-i>1;i++,n--) if(s[i]!=s[n]) return false;
 return true;
}
Годится идея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2015, 16:48   #3
wesker57
Александр
Пользователь
 
Аватар для wesker57
 
Регистрация: 06.04.2015
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вот так:
Код:
bool palindrom(char *s){
 int i,n=strlen(s);
 for(;n-i>1;i++,n--) if(s[i]!=s[n]) return false;
 return true;
}
Годится идея?
спасибо за ответ)
wesker57 вне форума Ответить с цитированием
Старый 06.04.2015, 17:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2015, 17:23   #5
wesker57
Александр
Пользователь
 
Аватар для wesker57
 
Регистрация: 06.04.2015
Сообщений: 32
По умолчанию

Хотелось бы ещё понять как вводить само предложение

Код:
#include <stdio.h>
#include <string.h>
 
int main()
{
   char a[100], b[100];
 
   printf("Enter the string to check if it is a palindrome\n");
   gets(a);
 
   strcpy(b,a);
   strrev(b);
 
   if (strcmp(a,b) == 0)
      printf("Entered string is a palindrome.\n");
   else
      printf("Entered string is not a palindrome.\n");
 
   return 0;
}
Извиняюсь за излишние вопросы

С поиском вроде разобрался теперь не понятно, как найти их колличество

Последний раз редактировалось Stilet; 06.04.2015 в 18:28.
wesker57 вне форума Ответить с цитированием
Старый 06.04.2015, 17:49   #6
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

так:
Код:
int result = 0;
for (int i = 0; a[i] != '\0'; i++){
 if ( a[i] == 'a')
  result++;
}
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 21.06.2015, 14:16   #7
wesker57
Александр
Пользователь
 
Аватар для wesker57
 
Регистрация: 06.04.2015
Сообщений: 32
По умолчанию

я наверно уже всех достал, объясните пожалуйста куда нужно вставить
Код:
int result = 0;
for (int i = 0; a[i] != '\0'; i++){
 if ( a[i] == 'a')
  result++;
}
в коде выше и при этом нужно писать в конце printf(a)?

переделал код так:
Код:
int main(void)
{
   char str[80];
   char* t;
   int y=0;
   
   printf("\n");
   printf("\nVvedite stroku:\n");
    
   gets(str);
   t=strtok(str," ");
   printf("\n");
    
   while (t != NULL) {
   if (check(t)==1) {
      printf("\nSlovo: %s",t);
      printf(" - Palindrome");
      y++;
   }
   else {
      printf("\nSlovo: %s",t); printf(" - Not Palindrome");
   }
      t = strtok (NULL, " ");
   }
   
   printf("\n\nKolichestvo palindromov = %i",y);
int result = 0;
for (int i = 0; str[i] != '\0'; i++){
if ( str[i] == 'a')
result++;
}

    
   return 0;
}
как тут найти разность?)

Последний раз редактировалось Stilet; 21.06.2015 в 15:20.
wesker57 вне форума Ответить с цитированием
Старый 21.06.2015, 14:38   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
куда нужно вставить
Перел return 0 ставь. Век Вову не видать...
Цитата:
и при этом нужно писать в конце printf(a)?
Было бы неплохо. Но имей ввиду - в printf нужно передать правильный параметр.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2015, 14:46   #9
wesker57
Александр
Пользователь
 
Аватар для wesker57
 
Регистрация: 06.04.2015
Сообщений: 32
По умолчанию

Код:
int c;
y-result=c;
printf("\n Raznost=%i",c);
получается примерно так?

Последний раз редактировалось Stilet; 21.06.2015 в 15:20.
wesker57 вне форума Ответить с цитированием
Старый 21.06.2015, 15:22   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы так написал:
Код:
y=0;
for (int i = 0; str[i] != '\0'; i++,y++){
if ( str[i] == 'a')
result++;
}
printf("\n Raznost=%i",y-result);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать код (С++) Just.lck) Помощь студентам 1 17.12.2014 17:36
Помогите написать код. Антон8697 PHP 1 13.10.2014 21:35
Помогите написать код Kammelladin HTML и CSS 1 10.02.2014 21:18
Помогите написать код на с# studentka.pguas C# (си шарп) 3 18.11.2013 23:41
Помогите написать код burnand123 Фриланс 2 16.07.2009 19:06