Написать функцию, которая возвращает символ строки с самой высокой частотой встречаемости. прототип функции char function_name (char *s). проверить работу функции на строке, введенной с клавиатуры. реализовать вывод результата
Я в диалектах не очень, но вот вспомнил VB.net :) Sub Main() Dim a(10) As Integer Dim b As Integer = 1 Dim c As Integer
Dim R As Random = New Random() For i As Integer = 0 To 10 a(i) = R.Next(12) Console.WriteLine("[" + i.ToString() + "] => " + a(i).ToString()) Next
For i As Integer = 0 To 10 If ((a(i) Mod 2 = 0) And (a(i) < 0)) Then b = b * a(i) If ((a(i) Mod 3 = 0) Or (a(i) Mod 5 = 0)) Then c = c + 1 Next Console.WriteLine("Произведение чётных отрицательных: " + b.ToString()) Console.WriteLine("Кол-во кратных 3 или 5: " + c.ToString()) Console.Read() End Sub
По моему так: program p; var a,b,c:integer; begin writeln('первое число:'); readln(a); writeln('второе число:'); readln(b); writeln('третие число:'); readln(c); if (a>b) and (a>c) then writeln('Первое число является наибольшим'); if (a>b) and (a<c) or (a<b) and (a>c) then writeln('Первое число является средним'); if (a<b) and (a<c) then writeln('Первое число является наимешим'); if (b>a) and (b>c) then writeln('Второе число является наибольшим'); if (b>a) and (b<c) or (b<a) and (b>c) then writeln('Второе число является средним'); if (b<a) and (b<c) then writeln('Второе число является наимешим'); if (c>b) and (c>a) then writeln('Третие число является наибольшим'); if (c>b) and (c<a) or (c<b) and (c>a) then writeln('Третие число является средним'); if (c<b) and (c<a) then writeln('Третие число является наимешим'); end.
char function_name(char *s){
char arr[256]{0};
for (char * p = s; *p; ++p)
arr[*p+128]++;
char * max = arr;
for (char * p = arr; p < (arr + 256); ++p){
if (*p > *max) max = p;
}
return (max - arr) - 128;
}
int main()
{
char buff[255];
std::cin.getline(buff,255);
std::cout << buff << " : " << function_name(buff);
return 0;
}