Jump to content
Fórum Script Brasil
  • 0

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


Liev

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 ! ! !

Edited by Felipe-Petrópolis
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...