Определить, есть ли в последовательности символов десятичные цифры - 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;
}
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы прочитать строку символов, а затем найти и отсортировать все десятичные цифры в этой строке. Вот список действий, которые выполняются в коде:
- Вводится строка символов с помощью функции gets().
- Создается пустая строка rez, которая будет содержать отсортированные десятичные цифры.
- Переменная i используется для индексации первого символа в строке str, а переменная j используется для подсчета количества десятичных цифр, найденных в строке.
- Пока не достигнут конец строки (т.е. str[i] не равно '\0'), код проверяет, является ли текущий символ десятичной цифрой (т.е. находится ли он между '0' и '9').
- Если текущий символ является десятичной цифрой, он добавляется в конец строки rez.
- После завершения цикла, переменная j содержит количество десятичных цифр в строке, и они могут быть отсортированы с помощью алгоритма сортировки пузырьком.
- Отсортированные десятичные цифры выводятся с помощью функции printf().
- Программа возвращает 0, чтобы указать, что она успешно завершила выполнение.