Группировка случайных символов согласно ASCii - C (СИ)
Формулировка задачи:
Строка задается в
коде программы в виде случайной последовательности букв и цифр. Посталось сгруппировать буквы и цифры в массиве...несколько дней уже думаю. пробывал if.while do не выходит. Народ если есть идеи или советы по поводу программы делитесь. Я готов побороться еще но пока в тупике-требуется подкрепление.
ользоваться дополнительными массивами нельзя.
ЗамечаниеСортировка в данной задаче неприменима ввиду ее трудоемкости.
Нужно использовать группировку элементов массива.
то что удалось написать:#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char mas()
{
switch( rand () % 3 )
{
case 0:
return rand() % 25 + 'a';
case 1:
return rand() % 25 + 'A';
case 2:
return rand() % 10 + '0';
}
}
int main()
{
int i;
char arr [6];
srand( time(0) );
for( i = 0; i < 6; i++ ){
arr [i] = mas();
putchar (arr[i]);
}
return 0;Решение задачи: «Группировка случайных символов согласно ASCii»
textual
Листинг программы
int main()
{
int j,i=0;
char temp, arr [N];
for(i = 0; i < N; i++ )
{
arr[i]= mas(); /* где "mas()"-генератор случайных символов*/
temp = arr[i];
for( j =i-1;j >= 0 && arr[j]<temp;j--)
arr[j+1] = arr[j];
arr[j+1] = temp;
}
for (i = 0; i < N; i++)
printf("%c", arr[i]);
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется группировка случайных символов согласно ASCII. Вот список действий, которые выполняются в коде:
- Переменная N инициализируется значением, определяющим количество символов в массиве.
- В цикле for создаются символы массива arr[] с помощью функции mas(). Эта функция генерирует случайные символы.
- Затем, в цикле for, происходит сортировка массива arr[] в порядке возрастания. Для этого используется второй цикл for, который начинается с i-1 и идет до 0, пока arr[j] меньше текущего значения temp.
- В процессе сортировки, элементы, которые больше текущего значения temp, сдвигаются вправо, а значение temp само по себе добавляется в конец массива.
- После завершения сортировки, все символы массива выводятся на экран с помощью функции printf().
- Код завершается возвратом 0, что означает успешное выполнение программы.