|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
10.11.2009, 13:34 | #1 (permalink) |
Новичок
Регистрация: 10.11.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова
Я вот тут набросал кое-что, но в конце надо удалять не символы, а слова, не знаю как, помогите кто знает, очень нужно !!! Заранее благодарен !!! #include <stdio.h> main(){ char ch, str1[50], str_full[225], sybmol[10]; int k,i=0,j; /*Вводим строку, т.е пока не появится переход на новую '\n')*/ while((ch=getchar( )) != '\n') { str1[i] = ch; i++; } /* заносим в массив всю строку*/ str_full[255] = ch; putchar(ch); /*перебираем первое слово и если в нем есть одинаковые буквы создаем массив sybmol с этими буквами*/ for(k=0,k <= strlen(str)); k++; { while(k <= (strlen(str)-1)) { if (str[k] == str[k+1]){ sybmol[10] = str[k]; } } } /* перебираем всю строку и печатаем только те символы, которые не равны повторяющимся символам*/ for(i = 0;i <= strlen(str_full);i++) { int j = 0; while(j <= (strlen(sybmol))) { if (str_full[i] != sybmol[j]) printf(str_full[i]); j++; } } } не клонируй посты пожалуйста. модератор |
10.11.2009, 13:34 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Это ссылки на похожие топики, посмотрите Слова вместо формул в Word`е Что значат эти слова? Найти и вывести слова-палиндромы. Delphi. |
10.11.2009, 13:47 | #2 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
В программе очень много ошибок:
Код:
#include <stdio.h> main() { char ch, str1[50], str_full[225], sybmol[10]; int k,i=0,j; /*Вводим строку, т.е пока не появится переход на новую '\n')*/ // для всего этого есть fscanf("%s",str1) while((ch=getchar( )) != '\n') { str1[i] = ch; i++; } /* заносим в массив всю строку*/ str_full[255] = ch; // это не запись строки в массив, а присваивание 255 элементу (которого даже в массиве нет), значения переменной ch putchar(ch); //а это зачем? /*перебираем первое слово и если в нем есть одинаковые буквы создаем массив sybmol с этими буквами*/ for(k=0,k <= strlen(str)); // цикл без тела //переменная str не определена k++; { while(k <= (strlen(str)-1)) { if (str[k] == str[k+1]) { sybmol[10] = str[k]; } } } /* перебираем всю строку и печатаем только те символы, которые не равны повторяющимся символам*/ for(i = 0;i <= strlen(str_full);i++) { int j = 0; while(j <= (strlen(sybmol))) { if (str_full[i] != sybmol[j]) printf(str_full[i]); j++; } } } 1)Создаем словарь из букв. 2)Берем второе слово из строки, проверяем, есть ли в нем буквы из словаря. Если буквы есть, слово пропускаем. Букв нет - добавляем слово в выходную строку. 3)Так далее, пока слова в строке не кончаться. Последний раз редактировалось Long Cat; 10.11.2009 в 13:52 |
10.11.2009, 14:18 | #3 (permalink) |
Новичок
Регистрация: 10.11.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Начинаю только изучать СИ. Не могли бы вы написать свой вариант этой программы, чтобы в дальнейшем синтаксические и алгоритмические ошибки не случались. Буду очень благодарен!!!
|
10.11.2009, 14:22 | #4 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
К сожалению, я довольно занят :-(.
Практикуйтесь, компилируйте. Пишите программу уступом, как у меня. Задавайте вопросы. Чтобы внешний вид программы не испортился при публикации на форуме, её нужно заключить в BB код ]CODE[ ]/CODE[ Только скобки нужно развернуть. |
17.11.2009, 22:24 | #5 (permalink) |
Новичок
Регистрация: 10.11.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
#include <stdio.h>
#include <conio.h> main(){ char ch, str[250],str1[25]; int k,i,j,l,n,imin; /*Вводим строку строку, до тех пора пока не появится конец строки*/ i=1; while((ch=getchar( )) != '\n') { str[i]= ch; i++; } k=i; /*Выделяем первое слово*/ for(i=1; i<k-1; i++) { if(str[i]==' ') break; str1[i-1]=str[i]; } l=i-1; //Длина первого слова /*Перебираем символы в слове*/ getch(); } Словарь из букв я получаю, а как перебирать слова и проверять есть ли в них эти буквы? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|