Liev Posted May 19, 2015 Report Share Posted May 19, 2015 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); } Quote Link to comment Share on other sites More sharing options...
0 Felipe222 Posted May 19, 2015 Report Share Posted May 19, 2015 (edited) 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 May 19, 2015 by Felipe-Petrópolis Quote Link to comment Share on other sites More sharing options...
0 Barao Posted May 20, 2015 Report Share Posted May 20, 2015 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. } Quote Link to comment Share on other sites More sharing options...
Question
Liev
Alguém poderia me ajudar a encontrar o erro desse código? Ele só lê a primeira variável:
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.