Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lgono

Erro no sprintf

Recommended Posts

Olá, o meu programa abaixo está dando um erro na parte do sprintf que é o seguinte:

Só aparece a última classificação dentro do sprintf e não todas as classificações dentro do vetor.

Provavelmente eu esteja fazendo merda, alguém poderia me ajudar a resolver?

#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 ---o[500], localViagem[500],desejaContinuar, ---oIdadeMenorMedia[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];
		---o[contador]=leValidaCaracter("Informe o ---o[M-MASCULINO/F-FEMININO]:","---o 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     ---O     LOCAL\n");
	for(contador2=0; contador2<=contador-1;contador2++)
	{
		if(idades[contador2]<mediaIdades)
		{
			printf("%5d     %c         %s\n",idades[contador2],---o[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);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.