С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 34
1

Исправить код по нахождению слов-палиндромов

17.03.2009, 00:22. Показов 982. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите исправить ошибки в задаче про проверку является ли слово оборотнем. Например maam - слово оборотень, mama - нет.

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
#include <stdio.h>
int main (void)
{
int flag, i, n;
char a[];
flag==1;
n==length(a);
printf ("Vvedite slovo: ");
scanf ("%s", &a[]);
while (flag == 1)
  {
  if (a[i]==a[n+1-i])
    flag=1;
  else
    {
    flag==0;
    printf ("ne oboroten'");
    }
  ++i;
  }
  if (flag == 1)
    printf ("slovo oboroten'");
  return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2009, 00:22
Ответы с готовыми решениями:

Исправить код по нахождению суммы
не выдает sum. где моя ошибка ? uses crt; procedure www(a,b:integer); begin ...

Дана строка, состоящая из слов, разделённых пробелами. Определить количество слов-палиндромов
Пожалуйста хелп

Инвертирование слов: исправить код
Var YN:Char; Game:Byte; Procedure String_Game; Var S:String; W,Wrd:Array of String; ...

Посчитать количество слов в строке: исправить код
Помогите пож. поправить программу. Она должна считать кол-во слов в строке. (но считает не верно)...

5
0 / 0 / 0
Регистрация: 22.03.2008
Сообщений: 33
17.03.2009, 00:43 2
В 5 строчке ошибка. Ты должен сказать длину массива в тот момент когда определяешь его .
Есть два решения :
1) Либо предположи его максимальную длину.
2)Либо используй динамичиские массивы.

Добавлено через 2 минуты 51 секунду
А и еще ты везде вместо присваиванья используешь сравнение.
Строчки 6,7 ,16
0
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 34
17.03.2009, 01:20  [ТС] 3
Поменял на a[n] в 5-й и 9-й строчке и исправил на присваивания в 6,7,16 строчках. Осталась одна ошибка: Constant expression required в 5-й строчке.
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
17.03.2009, 05:00 4
Цитата Сообщение от Deinli Посмотреть сообщение
Поменял на a[n] в 5-й и 9-й строчке и исправил на присваивания в 6,7,16 строчках. Осталась одна ошибка: Constant expression required в 5-й строчке.
код показывайте ( ошибки исправим ).
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
17.03.2009, 07:12 5
Цитата Сообщение от Deinli Посмотреть сообщение
Поменял на a[n] в 5-й и 9-й строчке и исправил на присваивания в 6,7,16 строчках. Осталась одна ошибка: Constant expression required в 5-й строчке.
Constant expression required - требуется константное определение длины строчки, иначе система не знаэт сколько резервировать памяти. Предположите сколько приблизительно она может быть и задайте константой.

Цитата Сообщение от Deinli Посмотреть сообщение
Поменял на a[n]
А тут вообще еще 1 ошибка - использование переменной до ее инициализации, но она накрыта выше описанной.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.03.2009, 08:59 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

если у тебя стал такой
Код
    char a[n];    

    scanf("%s", &a[n]);
то нужно сделать вот такой

Код
    #define MAXWORD  100   /* максимальная длина слова */
    ...
    char a[MAXWORD];

    scanf("%s", a);
можно юзать конечно и char a[n]; и это может даже сработать, если на момент запуска программы в n оказывается положительный мусор

вообще, лучше копию строки подать в функцию обращения, и сравнить результат

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string.h>
 
/* ReverseLine:  обращает строку l */
void ReverseLine(char *l)
{
    char *leftp, *rightp;
    int c;
    
    if (l == NULL)
        return;
    for (leftp = l, rightp = l+strlen(l)-1;
         leftp < rightp;
         leftp++, rightp--)
        c = *leftp, *leftp = *rightp, *rightp = c;
}
 
/* CompareLine:  сравнивает строки l и patt */ 
int CompareLine(const char *l, const char *patt)
{
    if (strcmp(s, patt) != 0)
        return 0;
    return 1;    
}
1
17.03.2009, 08:59
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2009, 08:59
Помогаю со студенческими работами здесь

Словарь слов палиндромов
В текстовом файле записан текст одного из произведений, создать в новом файле словарь слов...

Количество слов-палиндромов
Дана строка. Нужно написать программу, которая определяет количество слов-палиндромов в строке....

Распознавание слов палиндромов
Задача звучит так: Создать приложение, в котором происходит проверка, является ли введенное слово...

Программа по нахождению слов-перевёртышей
Составить программу, которая в данном предложении(вводится вручную, разделители между словами в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru