Сортировка Символов В Строке По Частоте Их Встреча

17.04.2014
1
0
#1
язык си. Бьюсь над задачей несколько дней.
Вот я немного навояла. Что дальше делать пока не знаю(((Не получается подсчитать и заполнить количество каждого символа.
C++:
#include <locale.h>
#include <string.h>
#include <conio.h>
void bubbleSort(char *a, int *b, int size );

struct str
{char sim;
int skl;};


int main(void)
{setlocale(LC_ALL,"rus");
struct str s [256], *str1[256];
int i,j,len;
char tmpc;
char string[21];
memset( s, 0, sizeof(s)); 
len = strlen( string ); 
printf( "Введите строку: \n" ); 
gets (string);
i=0;
while(string[i]!='\0')
{s[i].sim=string[i];
printf( "%dсимвол %c\n",i+1, s[i].sim );
i++;
}

for(i=0;i<len;i++)//вот на этом этапе явно что-то не так
{if(s[i].sim)
s[i].skl+=1;
printf( "Символ '%c'. Он встречался %d раз\n", s[i].sim, s[i].skl );
} 
}
void bubbleSort(char *a, int *b, int size )
{
int tmp, i, j;
char tmpc;
for(i = 0; i < size - 1; ++i) // i - номер прохода
{			
for(j = 0; j < size - 1; ++j) // внутренний цикл прохода
{	 
if (b[j + 1] < b[j]) 
{
tmp = b[j + 1]; 
b[j + 1] = b[j]; 
b[j] = tmp;
tmpc = a[j + 1]; 
a[j + 1] = a[j]; 
a[j] = tmpc;
}
}
}
}