Помогите новечку

Тема в разделе "Общие вопросы по С и С++", создана пользователем kyCa4ka, 13 окт 2006.

Статус темы:
Закрыта.
  1. kyCa4ka

    kyCa4ka Гость

    Вобщем пацаны дело такое надо написать прогу на си, а язык я начал изучать недавно может чем поможите пожалуйста вот задачка:

    Ввести строку и определить все входящие в неё символы. Например: строка «abccbbbabba» состоит из символов «а», «Ь» и «с». Результат вы-вести на экран. Стандартных функций работы со строками не использо-вать.

    З.Ы. зарание благодарен всем откликнувшимся и сори за детские вопросы.. :blink:
     
  2. pushkin

    pushkin Гость

    Прогу писать тут никто не будет, ибо это вообще азы, а на мысль навести попробую:
    1. Ввести строку с клавиатуры при помощи gets и запомнить ее в переменной-массиве (например, char str[1024])
    2. Определить длину строки вызовом функции strlen(str) и запомнить в переменной len
    3. Отсортировать символы в строке по возрастанию, работая со строкой как с массивом переменных типа char (можно воспользовать методом пузырька - см. google)
    4. А дальше уже дело техники - все повторяющиеся символы в строке будут находиться рядом
    З. Ы. Наверное, не стоит обращаться к программистам словом "патсаны", тут же есть люди и постарше, которым было бы неприятно услышать такое к себе обращение. Честно признаться, я именно поэтому сразу вообще пропустил твое сообщение, но потом у меня возникло чувство жалости к человеку (сродни жалости к маленикой замерзающей на улице голодной собаченке), который не может написать такую простую программу и из-за этого ему, наверняка, грозит длинный зачет (точнее незачет) по информатике на первом курсе (я угадал?). Если нужно, афтар, пешы исчо - могу тут привести программу целиком.
     
  3. kyCa4ka

    kyCa4ka Гость

    пацаны - это образное выражение если обидил сори, а насчёт проги то я уже написал прикинь!
    посотри вроде всё путём:
    Код (Text):
    #include <stdio.h>
    main()
    {
    int i,a[255]={0};
    char str[1000];
    gets(str);
    for(i=0;str[i];i++) a[str[i]]++;
    for(i=0;i<255;i++)
    if(a[i]) printf("%c %d\n",(char)i,a[i] );
    getchar();
    return 0;
    }
    зы. у меня работоет
     
  4. pushkin

    pushkin Гость

    Да, тоже нормальное решение :)
     
  5. 62316e

    62316e Гость

    Для: pushkin
    Вместо того что бы на "мысли наводить" и писать мемуары проще было 8-15 строчек кода накидать. Решение нормальное но вот рузультат может быть не предсказуем.
    Для: kyCa4ka
    Код (Text):
    char str[1000];
    gets(str)
    Плохой тон. Проверь сам: введи больше 1000 символов и увидиш что будет или если повезет то не будет<_< Или ты уверен на все 100% что кто-то будет вводить 1000 символов?
     
  6. LAW

    LAW Гость

    Да, это точно лучше Variant.
     
  7. kyCa4ka

    kyCa4ka Гость

    Для: 62316e
    <!--QuoteBegin-62316e+10:11:2006, 18:12 -->
    <span class="vbquote">(62316e @ 10:11:2006, 18:12 )</span><!--QuoteEBegin-->Для: pushkin
    Цитата
    Да, тоже нормальное решение smile.gif
    Вместо того что бы на "мысли наводить" и писать мемуары проще было 8-15 строчек кода накидать.
    [snapback]47687" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    даты прав лучше помоч чем дбаты тут устраивать <_<
     
  8. zausb

    zausb Гость

    Может и мне поможите нужно в консольном приложении написать программу , которая после ввода некоторого текста , выводит все разные слова т.е. повторные слова не печатает.Во внимание прописные и строчные буквы не принимать.
     
  9. Creo

    Creo Гость

    Если на С++, то
    Код (Text):
    #include <map>
    #include <iostream>
    #include <string>
    int main (void)
    {
    string str;
    map<string,int> count;

    while(cin>>s)
    {
    for (int i=0; i<s.size(); i++)
    {
    s[i]=tolower(s[i]);
    }
    ++count[s];
    }
    for (map<string, int>::const_iterator it = counters.begin(); it != counters.end(); ++it)
    {
    cout << it->first << "\t" << it->second << endl;
    }
    return 0;
    }
    Чтобы прекратить ввод жми Ctrl+Z
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей