Определить, есть ли в последовательности символов десятичные цифры - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Как написать программу на Си, которая определяет, есть ли в последовательности символов десятичные цифры, и выводит наибольшее число, которое можно составить из этих цифр?

Решение задачи: «Определить, есть ли в последовательности символов десятичные цифры»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
 
    char str[20];
    char rez[20]= {'\0'};
    char tmp;
    int i=0,j=0,k;
 
    gets(str);
 
    while(str[i]!='\0')
    {
        if(str[i]>='0' && str[i]<='9')
        {
            rez[j]=str[i];
            j++;
        }
        i++;
    }
 
//sort
    i=0;
    for(i=0; i<j; i++)
    {
        for(k=i; k<j; k++)
        {
            if(rez[i]<rez[k])
            {
                tmp=rez[k];
                rez[k]=rez[i];
                rez[i]=tmp;
            }
        }
    }
 
    printf("%s",rez);
 
    return 0;
}

Объяснение кода листинга программы

В этом коде задача состоит в том, чтобы прочитать строку символов, а затем найти и отсортировать все десятичные цифры в этой строке. Вот список действий, которые выполняются в коде:

  1. Вводится строка символов с помощью функции gets().
  2. Создается пустая строка rez, которая будет содержать отсортированные десятичные цифры.
  3. Переменная i используется для индексации первого символа в строке str, а переменная j используется для подсчета количества десятичных цифр, найденных в строке.
  4. Пока не достигнут конец строки (т.е. str[i] не равно '\0'), код проверяет, является ли текущий символ десятичной цифрой (т.е. находится ли он между '0' и '9').
  5. Если текущий символ является десятичной цифрой, он добавляется в конец строки rez.
  6. После завершения цикла, переменная j содержит количество десятичных цифр в строке, и они могут быть отсортированы с помощью алгоритма сортировки пузырьком.
  7. Отсортированные десятичные цифры выводятся с помощью функции printf().
  8. Программа возвращает 0, чтобы указать, что она успешно завершила выполнение.

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы