Ir para conteúdo
Fórum Script Brasil
  • 0

Erro no sprintf


iceman

Pergunta

Olá, neste programa o único erro é que não está aparecendo todas as classificações do vetor(ASIA,EUROPA...), acredito(tenho quase certeza) que seja no sprintf.

Alguém poderia me ajudar?

Obrigado;

Síntese do programa para ajudar a entendê-lo:

algoritmo pesquisaViagens;
// Síntese
//  Objetivo: Auxiliar em uma pesquisa sobre viagens
//  Entrada : Sexo, idade, local da viagem
//  Saída   :Em uma tabela o sexo, idade e local da última viagem por extenso das pessoas 
que possuem idade menor que a média,quantidade de pessoas que visitou cada um destes continentes e a quantidade que não saiu do brasil
 
// Valores de Entrada: M, 10, A
//                     M, 5 , S
//                     F, 5,  A
 
// Valores de Saida:
           SEXO     IDADE     LOCAL
              M         5     ASIA
              F         5     AMERICA DO NORTE
Quantidade de pessoas que visitaram a Asia:1
Quantidade de pessoas que visitaram a Europa:0
Quantidade de pessoas que visitaram a America Do Norte:2
Quantidade de pessoas que Nunca sairam do Brasil:0
#include <stdio.h>
#include <conio.c>
void obtemLocalIdadeMenorMedia(int idades[],char localIdadeMenorMedia[],char localViagem[], float mediaIdades, int qtdePessoas);
int leValidaInteiro(char titulo[], char msgErro[], int valorMin, int valorMax);
char leValidaCaracter(char titulo[], char msgErro[], char opcao1, char opcao2);
char leValidaLocalViagem(char titulo[], char msgErro[]);
void visaoFinal(int somaViagensEuropa,int somaViagensAsia,int somaViagensAmericaDoNorte,int somaNuncaSaiuPais);
int main(void)
{
// Declaracoes
    int idades[500],contador,somaIdades,qtdePessoas, idadeMenorMedia[500],contador2,contador3,somaViagensEuropa,somaViagensAsia,somaViagensAmericaDoNorte,somaNuncaSaiuPais;
char sexo[500], localViagem[500],desejaContinuar, sexoIdadeMenorMedia[500];
char localIdadeMenorMedia[100];
float mediaIdades;
// Instrucoes
    contador=0;
somaIdades=0;
qtdePessoas=0;
mediaIdades=0;
somaViagensEuropa=0;
somaViagensAsia=0;
somaViagensAmericaDoNorte=0;
somaNuncaSaiuPais=0;
do
{
idades[contador]=leValidaInteiro("Informe a idade:","Idade invalida, informe uma idade entre 2 e 150",2,150);
somaIdades=somaIdades+idades[contador];
sexo[contador]=leValidaCaracter("Informe o sexo[M-MASCULINO/F-FEMININO]:","Sexo invalido",'M','F');
localViagem[contador]=leValidaLocalViagem("Informe o local da viagem de acordo com o menu de opcoes:","Local invalido, informe novamente");
if(localViagem[contador]=='S')
{
somaViagensAsia=somaViagensAsia+1;
        }
else
{
if(localViagem[contador]=='E')
{
somaViagensEuropa=somaViagensEuropa+1;
            }
else
{
if(localViagem[contador]=='A')
{
somaViagensAmericaDoNorte=somaViagensAmericaDoNorte+1;
                }
else
{
 
somaNuncaSaiuPais=somaNuncaSaiuPais+1;
                }              
            }
        }       
printf("Digite qualquer tecla para continuar ou 'N' para mostrar o resultado:\n");
desejaContinuar=getch();
desejaContinuar=toupper(desejaContinuar);
clrscr();
contador=contador+1;
qtdePessoas=contador;
mediaIdades=somaIdades/qtdePessoas;
}while(desejaContinuar!='N' && contador<=2);
obtemLocalIdadeMenorMedia(idades,localIdadeMenorMedia,localViagem, mediaIdades, qtdePessoas);
printf("Tabela de pessoas que possuem idade menor que a media das idades:\n");
printf("IDADE     SEXO     LOCAL\n");
for(contador2=0; contador2<=contador-1;contador2++)
{
if(idades[contador2]<mediaIdades)
{
printf("%5d     %c         %s\n",idades[contador2],sexo[contador2],localIdadeMenorMedia);
        }
          
    }
visaoFinal(somaViagensEuropa,somaViagensAsia,somaViagensAmericaDoNorte,somaNuncaSaiuPais);
  getch();
  return 0;
}
//Objetivo: ler local viagem
//Parâmetros: idades, localIdadeMenorMedia, localViagem, mediaIdades, qtdePessoas
//Retorno:nenhum
void obtemLocalIdadeMenorMedia(int idades[],char localIdadeMenorMedia[],char localViagem[], float mediaIdades, int qtdePessoas)
{
int contador2; 
for(contador2=0; contador2<=qtdePessoas-1;contador2++)
{
if(idades[contador2]<mediaIdades)
{
if(localViagem[contador2]=='S')
{
sprintf(localIdadeMenorMedia,"ASIA\n");
            }
else
{
if(localViagem[contador2]=='E')
{
sprintf(localIdadeMenorMedia,"EUROPA\n");
                }
else
{
if(localViagem[contador2]=='A')
{
sprintf(localIdadeMenorMedia,"AMERICA DO NORTE\n");
                    }
else
{
sprintf(localIdadeMenorMedia,"NUNCA SAIU DO PAIS\n");
}
   }
      }
       }
   }
}
//Objetivo: ler e validar inteiro
//Parâmetros:titulo msgErro, valorMin, valorMax
//Retorno: numero inteiro validado
    int leValidaInteiro(char titulo[], char msgErro[], int valorMin, int valorMax)
    {
int numero;
do
{
printf("%s\n",titulo);
scanf("%d",&numero);
if(numero<valorMin || numero>valorMax)
{
printf("%s\n",msgErro);
}
}while(numero<valorMin || numero>valorMax);
return numero;
    }
//Objetivo: ler e validar caracter
//Parâmetros: titulo, msgErro, opcao1, opcao2
//Retorno: caracter validado
    char leValidaCaracter(char titulo[], char msgErro[], char opcao1, char opcao2)
    {
char letra;
do
{
printf("%s\n",titulo);
letra=getch();
letra=toupper(letra);
if(letra!=opcao1 && letra!=opcao2)
{
printf("%s\n",msgErro);
}
}while(letra!=opcao1 && letra!=opcao2);
return letra;
    } 
//Objetivo:ler e validar local viagem
//Parâmetros: titulo, msgErro
//Retorno: local viagem validado
    char leValidaLocalViagem(char titulo[], char msgErro[])
    {
char letra;
do
{
printf("MENU DE VIAGEM\n");
printf("E - EUROPA\n");
printf("S - ASIA\n");
printf("A - AMERICA DO NORTE\n");
printf("N - NUNCA SAIU DO PAIS\n");
printf("%s\n",titulo);
letra=getch();
letra=toupper(letra);
if(letra!='E' && letra!='S' && letra!='A' && letra!='N')
{
printf("%s\n",msgErro);
}
}while(letra!='E' && letra!='S' && letra!='A' && letra!='N');
return letra;
    }
//Objetivo:Quantidade de pessoas que viajaram para os locais
//Parâmetros:somaViagensEuropa,somaViagensAsia,somaViagensAmericaDoNorte,somaNuncaSaiuPais
//Retorno:nenhum
void visaoFinal(int somaViagensEuropa,int somaViagensAsia,int somaViagensAmericaDoNorte,int somaNuncaSaiuPais)
{
printf("Quantidade de pessoas que visitaram a Asia:%d\n", somaViagensAsia);
printf("Quantidade de pessoas que visitaram a Europa:%d\n", somaViagensEuropa);
printf("Quantidade de pessoas que visitaram a America Do Norte:%d\n", somaViagensAmericaDoNorte);
printf("Quantidade de pessoas que Nunca sairam do Brasil :%d\n", somaNuncaSaiuPais);
}
 
Editado por iceman
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...