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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 20:58   #1
Kastiel94
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 5
По умолчанию Двусвязные списки на Си

Здраствуйте.
Дано текстовый файл.за один просмотр файла вывести его содержание в следующем порядке:
сначала все русские слова по алфавиту, начинающихся с гласной, и количество их вхождений в файл, а затем аналогичные данные о словах, начинающихся с согласной.

Последний раз редактировалось Kastiel94; 22.05.2013 в 19:16.
Kastiel94 вне форума Ответить с цитированием
Старый 21.05.2013, 21:52   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Где-то должно быть написано СОгласной.
Завести 2 списка, заполнить согласно условию, отсортировать, вывести на экран.
eoln вне форума Ответить с цитированием
Старый 21.05.2013, 22:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а сложности в чем? Считать файл? Разбить на слова?
http://www.programmersforum.ru/showthread.php?t=165196
Или организовать список?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2013, 23:24   #4
Kastiel94
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 5
По умолчанию

Файл считывать же нужно через fscanf или fgetc
Вот мою строку розбиваю на слова
Код:
#include "stdafx.h"
#include "string.h"
#include "locale.h"
int main(void)
{ setlocale(LC_ALL, "Russian");
    char s[255] = "асак кепе оак";
    char *pch = strtok (s, " ");
    while (pch != NULL)
    {
        if (pch == strstr(pch, "а") || pch == strstr(pch, "е") ||
 pch == strstr(pch, "ё")||pch == strstr(pch, "о")||
pch == strstr(pch, "у")||pch == strstr(pch, "ю")||pch == strstr(pch, "я"))
           printf ("Slovo %s\n", pch);
        pch = strtok (NULL, " ");//берет следующий символ 
    }	 
    return 0;
}
А вот организовать список тяжело...да и всё соеденить будет очень тяжело,будьте добры помогите.

Так что кто-то может помочь?

Последний раз редактировалось Stilet; 22.05.2013 в 17:40.
Kastiel94 вне форума Ответить с цитированием
Старый 22.05.2013, 17:49   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
организовать список
Вот грубый пример организации списка. Изучи его и попробуй разобраться. Откомпилируй и поработай.
Код:
#include "stdafx.h"
#include "string.h"
#include "locale.h"

struct Item {
 char* word;
 Item *Next;
} *it=0, *Top=0;

Item*  add(char *wordd; Item *i){
 Item *ii;
 if(i==nil) ii=new Item; {else i->Next=new Item; ii=i;}
 i->wordd=wordd;
 return i;
}

int main(void)
{ setlocale(LC_ALL, "Russian");
  
    char s[255] = "асак кепе оак";
    char *pch = strtok (s, " ");
    while (pch != NULL)
    {
        if (pch == strstr(pch, "а") || pch == strstr(pch, "е") ||
 pch == strstr(pch, "ё")||pch == strstr(pch, "о")||
pch == strstr(pch, "у")||pch == strstr(pch, "ю")||pch == strstr(pch, "я")){
           printf ("Slovo %s\n", pch);

           if(!Top) {Top=add(pch,Top); it=Top;}; else it=add(pch,it);
}
        pch = strtok (NULL, " ");//берет следующий символ 
    }	 
    return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2013, 18:00   #6
Kastiel94
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 5
По умолчанию

Ага спасибо,буду розбираться.
Kastiel94 вне форума Ответить с цитированием
Старый 22.05.2013, 18:11   #7
Kastiel94
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 5
По умолчанию

Что-то я запутался nil это у нас конец нашего списка, вот в вашем коде пишет ошибку, nil не определен.Куда мне вставить этот nil в структуру? или создать новую?
Код:
#include "stdafx.h"
#include "string.h"
#include "locale.h"

struct Item {
 char* word;
 Item *Next;

} *it=0, *Top=0;

Item*  add(char *wordd, Item *i){
 Item *ii;
 if(i==nil) 
	 ii=new Item;
 else 
i->Next=new Item; 
ii=i; 
 i->word=wordd;
 return i;
}

int main(void)
{ setlocale(LC_ALL, "Russian");
  
    char s[255] = "асак кепе оак";
    char *pch = strtok (s, " ");
    while (pch != NULL)
    {
        if (pch == strstr(pch, "а") || pch == strstr(pch, "е") ||
 pch == strstr(pch, "ё")||pch == strstr(pch, "о")||
pch == strstr(pch, "у")||pch == strstr(pch, "ю")||pch == strstr(pch, "я")){
           printf ("Slovo %s\n", pch);

   if(!Top)
{Top=add(pch,Top); 
   it=Top;
   }
   else it=add(pch,it);
}
        pch = strtok (NULL, " ");//берет следующий символ 
    }	 
    return 0;
}
Kastiel94 вне форума Ответить с цитированием
Старый 22.05.2013, 18:22   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Stilet, наверное, имел ввиду NULL, а не nil.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.05.2013, 19:15   #9
Kastiel94
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 5
По умолчанию

Да я вот попробовал откомпилировать с NULL но всёравно ошибку выдает,не хочет организовывать список.
Kastiel94 вне форума Ответить с цитированием
Старый 22.05.2013, 21:20   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
наверное, имел ввиду NULL, а не nil.
Да. Сорри, затупил.
Цитата:
всёравно ошибку выдает
Правильно делаешь. Болтун - находка для шпиона. Тайны во все времена дорого ценятся.
I'm learning to live...

Последний раз редактировалось Stilet; 22.05.2013 в 21:23.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязные списки (С) tanya-tanya Помощь студентам 2 15.08.2012 07:50
Двусвязные списки vlados007 Общие вопросы C/C++ 5 13.02.2012 18:12
Двусвязные списки aidar9012 Помощь студентам 6 28.06.2010 02:05
двусвязные списки ai\ekcah^p Общие вопросы C/C++ 11 06.06.2009 19:13