Jump to content
Fórum Script Brasil
  • 0

[Ajuda]Formulario em C


Cristhoffer

Question

Eae pessoal, to com umas dúvidas, começei a estudar C recentemente... muito interessante, só que as apostilas que vejo por ai complicam mais a cabeça dos iniciantes do que ajudam, enfim...

estou tentando fazer um formulario em C, com duas funções, uma que pega o nome e sobrenome e outra que pega a idade, ano e expectativa de vida (kkk)

só que quando chamo as funções na main(), gera alguns erros, creio que estou fazendo errado, e no sobrenome, não armazena espaços tipo.. Fulano de Souza, gera outro erro... se tiver uma forma mais simples também de fazer isso, fico grato, vai o código ae:

#include <stdio.h>

#include <stdlib.h>

int formulario_nome(){

char nome[50],sobrenome[50];

printf("\nDigite seu nome: ");

scanf("%s",&nome);

printf("\nDigite seu sobrenome: ");

scanf("%s",&sobrenome);

}

int formulario_idade(){

int idade,ano,expec;

printf("\nDigite sua idade: ");

scanf("%d",&idade);

printf("\nDigite o ano em que nasceu: ");

scanf("%d",&ano);

printf("\nAte quantos anos pretende viver? ");

scanf("%d",&expec);

}

int main(){

printf("\n%s %s\n",nome,sobrenome);

printf("\n%d Anos\nNasceu em %d\nPretende viver ate %d\n",idade,ano,expec);

formulario_nome();

formulario_idade();

return(0);

}

Uma ajudinha cairia bem, valeu ae pessoal :)

Edited by Cristhoffer
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Olá Fera, primeiramente parabéns pela sua iniciativa de querer aprender.. Vamos por partes em relação ao teu código.

1) Do jeito que você postou, está gerando erro dentro do main(), porque não existe variavel chamada "nome" e "sobrenome", declarada la dentro(main). Elas existem apenas dentro da função , isso quer dizer que variaveis do main são diferentes das variaveis da função(uma não enxerga a outra).

int main()
{
   printf("\n%s %s\n",nome,sobrenome);                                    //aqui está errado.
   printf("\n%d Anos\nNasceu em %d\nPretende viver ate %d\n",idade,ano,expec);        //aqui está errado. 
   formulario_nome();
   formulario_idade();
}
2) Para ler um nome(string) você utiliza scanf, dai tudo bem está correto. Mas tem uma maneira para ler uma string composta, um exemplo disso é o nome de uma pessoa: ex: "Joao da Silva", note que no exemplo existem 3 strings com espaço em branco entre elas. Para isso você utilize um comando chamado fgets, que le uma string, mesmo contendo espaço entre elas. Exemplo do comando:
int formulario_nome() {

   char nome[100];

   printf("Informe Nome Completo:");      
   fflush(stdin);
   fgets (nome,100,stdin);
   fflush(stdin);
}
3) Sua lógica está um pouco confusa, no seu exercicio você criou uma função e leu os dados dentro delas, e chamou elas dentro do main e quis imprimir no main mesmo. Não está correto. Uma das maneiras de você fazer seria: Criar uma função simples ler e imprimir dentro dela, e no main apenas chama-la. Exemplo:
#include <stdio.h>
#include <stdlib.h>

int formulario_nome()
{
   int idade,ano,expec;
   char nome[100];
   
    printf("Informe Nome Completo:");      
    fflush(stdin);
    fgets (nome,100,stdin);
    fflush(stdin);     
    printf("Digite sua idade: ");
    scanf("%d",&idade); 
    printf("Digite o ano em que nasceu: ");
    scanf("%d",&ano);
    printf("Ate quantos anos pretende viver? ");
    scanf("%d",&expec);
     
    printf("\n\n"); 
    
    printf("Nome Completo: %s",nome,100,stdin);  
    printf("Idade: %d\n",idade);
    printf("Ano de Nascimento: %d\n",ano);
    printf("Expectativa de Vida: %d\n",expec);
    printf("\n\n");  
}

int main()
{
   formulario_nome();
    
   system("pause");
   
   return(0);

}

Espero que possa ter te ajudado.Abraço

Edited by Prog_Junior
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...