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

[Novato] O que há de errado com as minhas funções?


RumblefishX

Pergunta

Olá pessoal!

Eu já programo em java, estou estudando C... porém, não consigo navegar no sistema sem que o programa trave.

O que pode estar errado nas funções? já olhei varios exemplos e não percebo nada de errado.

#include <stdio.h>

char nome[4] = {"João"};
int idade=13;
void mostrarNome();
void cadastrarNome();

int main(){
int valida=200;

while(valida != 0){
   printf("\n Menu \n\n 1* Cadastrar Nome \n 2* Mostrar Nomes\n\n");
   scanf("%d",valida);
             if(valida == 2)
             mostrarNome();
             else if(valida == 1)
             cadastrarNome();
}

return(0);
}

void mostrarNome(){
printf("\n\nNome: %s",nome);
printf("\nIdade: %d",idade);    
main();
}

void cadastrarNome(){
     printf("\n\nDigite um nome qualquer:\n");
     scanf("%s",nome);
     printf("\nDigite a idade do individuo\n");
     scanf("%d",idade);
     main();
     }

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Não entendo muito de C e sou novato em C++. Não sei o que tá errado seu código em C, mas fiz usando C++ e funciona perfeitamente. Talvez ajude. Mudei a posição do vetor char para 6 caracteres, pois estava dando erro. Abraço

#include <iostream>

using namespace std;

char nome[6] = {"João"};
int idade=13;
void mostrarNome();
void cadastrarNome();

int main()

{
int valida=200;

while(valida != 0)

{

   cout<<"\n \nMenu \n 1* Cadastrar Nome \n 2* Mostrar Nomes\n\n";
   cin>>valida;

             if(valida == 2)
             mostrarNome();
             else
             cadastrarNome();
}

}

void mostrarNome(){
cout<<"\n\n Nome: "<<nome;

}

void cadastrarNome()
{
     cout<<"\n\nDigite um nome qualquer: ";
cin>>nome;
     cout<<"\nDigite a idade do individuo: ";
  cin>>idade;

     }

Editado por Diogo Rupolo
Link para o comentário
Compartilhar em outros sites

  • 0

Você declarou nome como nome[4] porque o nome é João na primeira função. Mas e depois? Olhe a sua segunda função.

Att.,

Pedro

Editado por PedroCunha
Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde,

repare, nesse trecho do seu código:

void cadastrarNome(){
     printf("\n\nDigite um nome qualquer:\n");
     scanf("%s",nome);
     printf("\nDigite a idade do individuo\n");
     scanf("%d",idade);
     main();
     }
No seus scanf você tá armazenando o valor na variável, tá errado. Não esqueça de armazenar assim: &nomedavariável; Outra coisa, seu vetor foi declarado assim:
char nome[4] = {"João"};

O [4] indica que o vetor vai ter 4 elementos, e só tem um.

Isso é só uma dica, beleza!? ;)

W. Rodrigo

Universidade de Brasília - UnB

Graduando - CiC

Link para o comentário
Compartilhar em outros sites

  • 0

Só complementando a resposta do Rodrigo, a declaração

char[4] = {"Joao"};

ocorre porque são 4 chars, ou seja, um vetor de chars, que é basicamente uma string. Logo, não tem 4 elementos, e sim 4 letras.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...