Ir ao conteúdo
  • Cadastre-se
Alexsandro Ferreira

RESOLVIDO programa de perguntas e respostas C++ C-Free

Recommended Posts

Ola, to tendo dificuldades para desenvolver esse programa, parecido com um show do milhão.

to fazendo técnico de informatica  então não sei muito ainda... qualquer ajuda é bem vinda ! 

to com problema no menu, queria que quando escolhe-se a opção 2 ou 3 aparecesse a mensagem e em seguida encerra-se o programa, e tmb na var cont no final ela não tá dando o valor certo de acertos e nem de erros. 

 

 

 

 

#include <stdio.h>#include <stdlib.h>main(){int n, r, cont=0;printf("****** SHOW DO MILHAO ******\n\n");printf("1-INICIAR JOGO\n");printf("2-CREDITOS\n");printf("3-SAIR\n\n");printf("DIGITE SUA OPCAO:");scanf("%i",&n);system("cls");switch (n){case 1:            printf("*** VAMOS PARA A PRIMEIRA RODADA ***\n\n");        break;        case 2:printf("*** CREDITOS ***\n\n BY: ALEXSANDRO\n\n");break;case 3:printf("*** ACABOU O JOGO ***\n\n");break;default:printf("*** Obrigado por usa nosso sistema ***\n");}if (n==1);else (n==2) && (n==3);system("pause");system("cls"); printf("1-QUEM DESCOBRIU A AMERICA FOI CRISTOVAO CO...\n\n");printf("1- PICANHA\n");printf("2- LOMBO\n");printf("3- ALCATRA\n");    printf("4- PATINHO\n\n");   scanf("%i",&r);   switch(r)   {    case 2:     cont++;     break;}if (r==2)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");system("cls"); printf("1-QUEM DESCOBRIU O BRASIL FOI PEDRO ALVES CA...\n\n");printf("1- BRAL\n");printf("2- BREL\n");printf("3- BRIL\n");    printf("4- BROL\n\n");   scanf("%i",&r);   switch(r)   {    case 1:     cont++;     break;}if (r==1)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}         system("pause");     system("cls"); printf("2- QUANTOS PAISES irão PARTICIPAR DA COPA DO MUNDO DE 2014\n\n");printf("1- 40\n");printf("2- 38\n");printf("3- 30\n");    printf("4- 32\n\n");   scanf("%i",&r);   switch(r)   {    case 4:     cont++;     break;}     if (r==4)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}   system("pause");       system("cls"); printf("3- QUAL SELECAO VENCEU A ULTIMA COPA DO MUNDO?\n\n");printf("1- BRASIL\n");printf("2- ARGENTINA\n");printf("3- ESPANHA\n");    printf("4- URUGUAI\n\n");   scanf("%i",&r);   switch(r)   {    case 3:     cont++;     break;}if (r==3)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");          system("cls"); printf("4- MIGRACOES ________ SAO REALIZADAS DE UM PAIS PARA O OUTRO.\n\n");printf("1- EXTERNA\n");printf("2- INTERNA\n");printf("3- TEMPORARIA\n");    printf("4- NDA\n\n");   scanf("%i",&r);   switch(r)   {    case 1:     cont++;     break;}if (r==1)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");system("cls"); printf("5- QUAL DESSES PERSONAGENS NÃO VESTEM UMA CAPA?\n\n");printf("1- SUPER HOMEM\n");printf("2- BATMAN\n");printf("3- CORINGA\n");    printf("4- ZORRO\n\n");   scanf("%i",&r);   switch(r)   {    case 3:     cont++;     break;}if (r==3)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");system("cls"); printf("6- QUANTOS CENTIMETROS EQUIVALE A UM METRO?\n\n");printf("1- 10\n");printf("2- 100\n");printf("3- 1000\n");    printf("4- 1200\n\n");   scanf("%i",&r);   switch(r)   {    case 2:     cont++;     break;}if (r==2)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");system("cls"); printf("7- QUAL ERA O DESTINO DO NAVIO TITANIC QUANDO SAIU DA INGLATERRA?\n\n");printf("1- CANADA\n");printf("2- EUA\n");printf("3- BRASIL\n");    printf("4- ARGENTINA\n\n");   scanf("%i",&r);   switch(r)   {    case 2:     cont++;     break;}if (r==2)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause"); system("cls"); printf("8- QUAL CARTA LIBERTAVA OS ESCRAVOS ANTES DA LEI AUREA?\n\n");printf("1- CARTA DE RECLAMACAO\n");printf("2- CARTA DA LIBERDADE\n");printf("3- CARTA DE HABILITACAO\n");    printf("4- CARTA DE ALFORRIA\n\n");   scanf("%i",&r);   switch(r)   {    case 4:     cont++;     break;}if (r==4)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");system("cls"); printf("9- ACONCAGUA E?\n\n");printf("1- UMA PEDRA\n");printf("2- UM LAGO\n");printf("3- UMA PRAIA\n");    printf("4- UM VULCAO\n\n");   scanf("%i",&r);   switch(r)   {    case 4:     cont++;     break;}if (r==4)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}system("pause");system("cls"); printf("10- QUAL É O FRUTO CONHECIDO NO NORDESTE DO BRASIL COMO JERIMUM?\n\n");printf("1- CAJU\n");printf("2- MANGA\n");printf("3- PERA\n");    printf("4- ABOBORA\n\n");   scanf("%i",&r);   switch(r)   {    case 4:     cont++;     break;}if (r==4)   {printf("PARABENS voce ACERTOU ! ! !\n\n");   }else{printf ("voce ERROU ! ! ! \n\n");}     printf("%i",&cont);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá legal, você é realmente um iniciante rsrs, vou te dar umas dicas para organizar melhor o código, no primeiro 'switch', você poderia criar uma função para caso a escolha seja 1, no caso das outras, você só mostra uma mensagem com o 'printf' e encerra o programa, agora, a forma como faz as perguntas é muito repetitiva, você usa  switch() e logo depois faz um novo teste com o mesmo valor usando 'if'(isso vale para o menu inicial do jogo),utilize apenas o 'if' ou a 'switch' e faça tudo o que tem de fazer dentro dele.

printf("%i",&cont);

isso é o que deveria mostrar o número de acertos, mas quando você utiliza o '&' antes de uma variável, você não está acessando seu valor, na verdade está pedindo o endereço de memória onde ela esta gravada, por isso aparece esse número estranho na sua tela. Agora as perguntas: depois que tiver concertado as perguntas e estiver utilizando apenas o 'if' ou a 'switch', se olhar bem para o código perceberá uma coisa intrigante, as perguntas se assemelham bastante quanto a estrutura, então deixo aqui uma dica para a sua próxima aventura:  http://pt.wikibooks.org/wiki/Programar_em_C/Fun%C3%A7%C3%B5es.

 

Uma dica a parte: não tenha medo de ultrapassar o que já foi dito em sala de aula, nunca se contenha.  :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou sim Shoxsz kkk'  comecei recentemente o curso na ETEC.

 mas então tentei seguir as suas dicas e conseguir eliminar os if e trabalhei apenas com o swicth, mas mesmo assim não conseguir fazer com que o programa encerre após selecionar a opção 2 ou 3 e trabalhando com o switch não sei como coloco o cont++ na resposta certa, tentei de varias formas e não consegui, se tiver como da mais uma forcinha agradeço dez de já rss' 

 

#include <stdio.h>#include <stdlib.h>main(){int n, r, cont=0;printf("****** SHOW DO MILHAO ******\n\n");printf("1-INICIAR JOGO\n");printf("2-CREDITOS\n");printf("3-SAIR\n\n");printf("DIGITE SUA OPCAO:");scanf("%i",&n);system("cls");switch (n){case 1:            printf("*** VAMOS PARA A PRIMEIRA RODADA ***\n\n");        break;        case 2:        printf("*** CREDITOS ***\n");        break;        case 3:        printf("*** BYE BYE ***\n");        break;default:printf("*** Obrigado por usa nosso sistema ***\n");}system("pause");system("cls"); printf("1-QUEM DESCOBRIU A AMERICA FOI CRISTOVAO CO...\n\n");printf("1- PICANHA\n");printf("2- LOMBO\n");printf("3- ALCATRA\n");    printf("4- PATINHO\n\n");   scanf("%i",&r);   switch(r)   {    case 2:     printf("PARABENS voce ACERTOU ! ! !\n\ncont++");     break;     default:     printf("QUE PENA, voce ERROU ! ! !\n\n");}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na switch você pode colocar mais de uma instrução:

switch(n){    case 1:        printf("primeira\n");        printf("segunda\n");        ...        printf("n-ésima\n");        minha_variavel = 10;        minha_variavel++;    break;}

assim, e também, você colocou o 'cont++' dentro de uma string, o que não funciona, string usada dessa forma é puro texto, se colocar o nome de uma variável dentro desse texto ela não será reconhecida, pode colocar o 'cont++' logo abaixo do 'printf' igual fazia no 'if'.

 

Agora quanto a encerrar o programa, em C o encerramento normal e mais usual de uma função se da de três maneiras: 

1ª - A função executa a última instrução e encerra.

2ª - A função retorna algum valor, isso quer dizer que ela nem sempre irá executar todo o código escrito nela, pois podem ocorrer desvios no código.

3ª - A função chama a função 'exit', esta função não encerra apenas a função atual, ela encerra o programa todo!

 

Então, como o que vem depois da 'switch' é o jogo inteiro, quando escolher as opções 2 ou 3, você pode chamar a função 'exit' ou usar um return, no caso sua função main é void, mas ainda assim pode usar assim:

case 2/*ou 3*/:    printf("mensagem de saída...");    return; //ou exit(0);break;

e por último uma pequena e eficiente explicação sobre a função 'exit': http://www.br-c.org/doku.php?id=exit.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×