1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Строки На Си

Тема в разделе "Вопросы новичков и не только", создана пользователем asoishnica, 4 мар 2012.

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

    asoishnica Гость

    Репутация:
    0
    Найти все цепочки символов , являющиеся записями целых чисел по основанию 8 и найти цепочку , являющуюся записью наибольшего числа.
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    void main()
    {
    char str[100]={0};
    char tst[100]={0}, max=0;
    int i=0,n;
    clrscr();
    puts("Vvedite stroku");
    gets(str);
    for(i=0;str!='\0';i++)
    {while(str=='0' || str=='1'){
    if(tst[100]==0) tst=str;}
    n=(int)tst;
    if(n>max){ max=n; memset(tst, 0, sizeof(int)*100);}

    }
    printf("%d",max);
    getch();
    }
     
  2. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    Сформулируй условие более понятно
     
  3. qqwertty

    qqwertty Гость

    Репутация:
    0
    А чего непонятного? Все ясно.

    Не работает потому что вот здесь у вас бесконечный цикл:

    Код:
    while (str[i]=='0' || str[i]=='1'){
    if(tst[100]==0) tst[i]=str[i];}
    n=(int)tst;
    if(n>max){ max=n; memset(tst, 0, sizeof(int)*100);}
    Мне вообще смысл этих строк не понятен. Фактически тут ничего не делается.
    Вам нужно разбить строку на последовательности: искать до пробела и плюс если в последовательности не встречаются символы: 8, 9 и все остальные символы. Для этого можно формировать отдельную строку (ваш tst[100]). Затем записывать число в массив (int chisla[100], ну например), используя функцию atoi(). Затем просто максимальный элемент в массиве найти.
     
Загрузка...
Статус темы:
Закрыта.

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