pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

1. pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Gustavo
sabing

(usa Ubuntu)

Enviado em 20/07/2010 - 21:48h

#include <stdio.h>
#include <stdlib.h>
int main()
{
char name[50];
int op;
printf("LISTA DE MENU
"\n 1.CADASTRAR FUNCIONARIO"
"\n 2.LER FUNCIONARIO CADASTRADO");
printf("\n");
printf("Digite a sua escolha = ");
scanf("%d" &op);
switch(op){
case 1:
printf("Digite o nome do funcionario = ");
scanf("%s", &name);
break;
case 2:
printf("Nomes guardados são = %s", name);
break;
}
return 0;
}

pessoal quero sabe como faço o repita nessa liguagem uma ajudinha ai pessoal eu qero q ele repita o menu


  


2. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/07/2010 - 22:20h

#include <stdio.h>
#include <stdlib.h>
int main()
{
char name[50];
int op = 0;

while(op !=3){
printf("\nLISTA DE MENU\n 1.CADASTRAR FUNCIONARIO\n 2.LER FUNCIONARIO CADASTRADO\n 3.SAIR");
printf("\n");
printf("Digite a sua escolha = ");
scanf("%d", &op);
switch(op){
case 1:
printf("Digite o nome do funcionario = ");
scanf("%s", &name);
break;
case 2:
printf("Nomes guardados são = %s", name);
break;
default:
printf("Opção inválida!");
break;
}
}
return 0;
}


3. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Andi
upc0d3

(usa Gentoo)

Enviado em 20/07/2010 - 22:33h

Tu sabe que isto nao vai fazer o que tu quer neh ?!

E uma observacao muito importante para quando pedir ajuda em programacao, seja a linguagem que for, COLOCA A SAIDA DO COMPILADOR. E claro, LEIA ela neh. =)

Ateh+++


4. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Miguel Arcanjo
Miguel Arcanjo3

(usa Debian)

Enviado em 21/07/2010 - 06:50h

para fazer o while siga o exemplo acima.
Erros de sintaxe no teu codigo:

printf("LISTA DE MENU
printf("LISTA DE MENU");

scanf("%d" &op);
scanf("%d", &op);

enves de usares a funcao printf("") e depois a printf("\n") utiliza a println("")


5. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Andi
upc0d3

(usa Gentoo)

Enviado em 21/07/2010 - 08:31h

Complementando apenas, o código do "wdmatheus" está errado também.
Dica: O que acontece quando eu digitar, 3 ?!

Até.


6. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Lucas Lira Gomes
llg

(usa Arch Linux)

Enviado em 21/07/2010 - 08:57h

Bem, sobre codigo do wdmatheus, em scanf("%s", &name) eu trocaria por fgets (name , 49 , stdin), pois o scanf so pegaria uma string ate o primeiro espaco ou tab e deixaria o resto no buffer, enquanto que o fgets pegaria ate o primeiro \n do buffer e tem a vantagem de poder delimitar um tamanho, o que e uma vantagem sobre o gets(), fazendo assim que evitasse qualquer bug quando o usuario tentar colocar uma string maior que char name[50]. Eu tambem colocaria um case no switch, para quando estivesse saindo nao aparecesse uma mensagem dizendo que era opcao invalida!!!

Prototipo:

char * fgets ( char * str, int num, FILE * stream );


#include <stdio.h>
#include <stdlib.h>
int main()
{
char name[50];
int op = 0;

while(op !=3){
printf("\nLISTA DE MENU\n 1.CADASTRAR FUNCIONARIO\n 2.LER FUNCIONARIO CADASTRADO\n 3.SAIR");
printf("\n");
printf("Digite a sua escolha = ");
scanf("%d", &op);
switch(op){
case 1:
printf("Digite o nome do funcionario = ");
fgets (name , 49 , stdin);
break;
case 2:
printf("Nomes guardados são = %s", name);
break;
case 3:
printf("Saindo ...");
break;
default:
printf("Opção inválida!");
break;
}
}
return 0;
}

Atenciosamente, Lucas Lira Gomes



7. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Lucas Lira Gomes
llg

(usa Arch Linux)

Enviado em 21/07/2010 - 09:07h

Mais uma coisa, Upcode acho que voce se enganou, o codigo de wdmatheus nao esta errado. Quando op == 3 ele vai quebrar o loop, olha a condicao do while while (op !=3) { ... }, e ai acaba o progama normalmente.

Atenciosamente, Lucas Lira Gomes


8. Re: pessoal onde esta errado o que eu fiz sou iniciante [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/07/2010 - 20:39h

Bom upc0d3, como o llq disse, ao digitar 3 ocorre a quebra do loop e o programa encerra.

Só duas observações, sem criticar ninguém: Antes de eu falar que algo está errado eu testo antes, ai sim estando errado eu falo. O código que eu postei foi apenas uma correção do código do sabing, não mudei quase nada, apenas corrigi o que estava errado e como estava quase dormindo em cima do teclado não apontei os erros.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts