Falha de Segmenteção [RESOLVIDO]

1. Falha de Segmenteção [RESOLVIDO]

Caio Marchi Gomes do Amaral
CaioMGA

(usa Linux Mint)

Enviado em 13/08/2010 - 12:15h

Boa Tarde,

Estive programando em C. Peguei uns exercícios e comecei a fazê-los.
Cheguei num exercício que não entendo o erro.
O exercício pedia para o usuário digitar uma string e depois exibir o histograma das vogais. Histograma? Fácil, algo nessa linha:
a: ******(6)
e: ***(3)
i: *****(5)
.
.
.
Fiz o programa, compilei, tudo OK!
ele roda e pede para eu informar a string, eu informo e aparece a mensagem: falha de Segmentação.

Eis o Código Fonte:

#include <stdio.h>
#include <string.h>
int main()

{
//programa que exibe histopgrama das vogais digitadas préviamente
char str[40];
int a=0, e=0, i=0, o=0, u=0, j;
printf("Informe uma String:\n");
scanf(" %39[^\n]", str);
j=strlen(str);
for(j=j-1;j>=0;j--)
switch (str[j])
{
case 'a': case 'A': a+=1;break;
case 'e': case 'E': e+=1;break;
case 'i': case 'I': i+=1;break;
case 'o': case 'O': o+=1;break;
case 'u': case 'U': u+=1;break;
default: break;
}
mostra(a, 'a');
mostra(e, 'e');
mostra(i, 'i');
mostra(o, 'o');
mostra(u, 'u');
}

int mostra(int letra/*número de vogais*/, char vogal[1]/*vogal própriamente dita*/)
{
int total = letra;
printf("%c:", vogal[0]);
for(letra = letra;letra>0;letra--)
printf("*");
printf("(%d)\n", total);
return 0;
}



Quem souber responder ganha um picolé de limão!

grato


  


2. Re: Falha de Segmenteção [RESOLVIDO]

Joao
stack_of

(usa Slackware)

Enviado em 13/08/2010 - 14:26h

Cadê meu picolé?


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

int mostra(int letra, char vogal)
{
int total = letra;

printf("%c:", vogal);
for(letra = letra;letra>0;letra--)
printf("*");
printf("(%d)\n", total);
return 0;
}



int main()

{
//programa que exibe histopgrama das vogais digitadas préviamente
char str[40];
int a=0, e=0, i=0, o=0, u=0, j;
printf("Informe uma String:\n");
scanf(" %39[^\n]", str);
j=strlen(str);
for(j=j-1;j>=0;j--)
switch (str[j])
{
case 'a': case 'A': a+=1;break;
case 'e': case 'E': e+=1;break;
case 'i': case 'I': i+=1;break;
case 'o': case 'O': o+=1;break;
case 'u': case 'U': u+=1;break;
default: break;
}
mostra(a, 'a');
mostra(e, 'e');
mostra(i, 'i');
mostra(o, 'o');
mostra(u, 'u');

return 0;
}



3. Grato

Caio Marchi Gomes do Amaral
caiomga

(usa Linux Mint)

Enviado em 21/01/2011 - 14:54h

Funcionou






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts