c ++ 11 — uva 10062 Ошибка времени выполнения Переполнение стека

я получаю ошибку во время выполнения в этой проблеме Ува Скажи мне частоты!
может кто-нибудь помочь мне и сказать мне, почему я получаю это ??
это мой код

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int dic[96];

int main()
{
char input [101];
int i;
while (gets(input))
{
int lenght = strlen(input);
for (i = 0; i < lenght; i++)
{
dic[input[i]-32]++;
}
int j;
for (i = 1; i < 96; i++)
{
for (j = 0; j < 96; j++)
{
if (dic[j] == i)
printf("%d %d\n",j+32,dic[j]);
}
}
printf("\n");
memset(dic, 0, sizeof(dic));
}
return 0;
}

0

Решение

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;
int dic [96];

int main()
{
char input [1001];
int i;
bool x = false;

while (gets(input))
{
int length = strlen(input);

for (i = 0; i < length; i++)
{
dic[input[i] - 32]++;
}

if (x)
printf("\n");

x = true;
int j;

for (i = 1; i < 1000; i++)
{
for (j = 96; j >= 0; j--)
{
if (dic[j] == i)
printf("%d %d\n", j + 32, dic[j]);
}
}
memset(dic, 0, sizeof(dic));
}
return 0;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]