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

Meu programa só lê a primeira variável.


Liev

Pergunta

Alguém poderia me ajudar a encontrar o erro desse código? Ele só lê a primeira variável:

#include <stdio.h>
int main ()
{
int idade[2];
float altura[4], peso[5];
char nome[50], telefone[15];
printf("Informe o nome: ");
scanf("%c", &nome);
printf("Informe a idade: ");
scanf("%d", &idade);
printf("Informe a altura: ");
scanf("%f", &altura);
printf("Informar o peso: ");
scanf("%f", &peso);
printf("Informe o telefone: ");
scanf("%c", &telefone);
printf("O nome informado é: %c ", nome);
printf("A idade informada é: %d ", idade);
printf("A altura informada é: %f\n ", altura);
printf("O peso informado é: %f\n ", peso);
printf("O telefone informado é: %c ", telefone);
}
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá!

O primeiro ponto é com a declaração as suas variáveis int e float:

Em int idade a não ser que você vá utilizar um vetor de inteiros do tipo int chamado idade, você deveria ter declarado a sua variável idade apenas int idade, onde o tipo inteiro int vai armazenar todos os dígitos numéricos que o usuário informar, limitando-se apenas ao tamanho máximo que o tipo int permite armazenar e o mesmo vale para as variáveis float altura e float peso.

Com relação ao char nome e char telefone você os declarou de forma correta, para o que eu acredito que seja o necessário para você ate o momento, mas o tipo char pode ser usado para armazenar dois valores possíveis, você pode armazenar um único caractere ou você pode armazenar um vetor de caracteres uma “string”.

Na função scanf para armazenar um único caractere char letra; como exemplo, usa-se o código de formatação %c, onde apenas um único caractere será armazenado, porem, neste seu programa você quer armazenar um vetor de caracteres “string” e para isso você deve utilizar o código de formatação %s. O mesmo vale para exibir as informações no printf ! ! !

Com relação ao fato de seu programa ler apenas a primeira variável, muito provavelmente pode estar ocorrendo por pelo fato de a função scaf() ignorar tudo o que estiver após os espaços em branco em uma string que contenha espaços, como no caso de seu progrma char nome[50]; ou pelo fato de que pode estar ocorrendo de a função scanf() estar lendo o lixo de memoria do buffer de entrada do scanf() anterior!

Leia este post: https://www.scriptbrasil.com.br/forum/topic/179317-ajuda-em-urna-eletronica-em-c/

onde tem uma boa explicação sobre scanf()

Espero ter Ajudado ! ! !

Editado por Felipe-Petrópolis
Link para o comentário
Compartilhar em outros sites

  • 0

Testa esta versão minha ta tudo comentado.

Boa sorte :D

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


int main (int argc, char *argv[])//sempre insira estes argumento na main
{
    int idade;
    float altura, peso;
    char nome[50], telefone[15];
 
    printf("\nInforme o nome: ");
    gets(nome);//Use %s para strings e %c para apenas um caractere.
    
	fflush(stdin);/*limpa o buffer do teclado apos ler strings e senguida ler
	 numeros.*/
                  
    printf("\nInforme a idade: ");
    scanf("%d", &idade);
 
    printf("\nInforme a altura: ");
    scanf("%f", &altura);
 
    printf("\nInformar o peso: ");
    scanf("%f", &peso);
    
    fflush(stdin);
 
    printf("\nInforme o telefone: ");
    gets(telefone);
 
    system("cls");
    printf("\nO nome informado e: %s\n", nome);//use %s para strings e %c para apenas um caractere.
    printf("A idade informada e: %d\n", idade);
    printf("A altura informada e: %.2f\n", altura);//.2f exibe apenas 2 casas apos o ponto.
    printf("O peso informado e: %0.2f Kg\n", peso);
    printf("O telefone informado e: %s\n", telefone);//use %s para strings e %c para apenas um caractere.

	
	getchar();
return 0;//não se esqueça que main deve rotornar zero nesta neste caso.
}
Link para o comentário
Compartilhar em outros sites

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,5k
×
×
  • Criar Novo...