Programa para votar

Essa do continue fica melhor, sim sr. Quanto às variáveis globais, eu sou um Java man, estou habituado a variáveis de classe :P

BTW, Agora vejo que fizeste isso mal...


Código:
else if(strcmp(line, "Quit") != 0) {
           printf("Comando invalido, tente novamente.\n");
           continue;
        }

else  continue; //volta à cabeça, isto é, teste o while de novo

Assim o Quit nunca funciona. Deveria ser algo do género:

Código:
else if(strcmp(line, "Quit") == 0) {
           return 0
        }

else{
          printf("Comando invalido, tente novamente.\n");
          continue;
}
 
pois java xD

funciona o quit, que é no else e volta a cabeça e termina o ciclo para nao fazer returns pois depois pode querer fazer algo depois do ciclo, mas pode melhorar isso depois ele, aos poucos vai trabalhando o código agora ele sozinho porque se não quem está aqui a aprender somos nós xD

cumpz
 
Obrigado pela ajuda
tipo com estes comandos estava a tentar fazer um programa em que se fazia uma pergunta por exemplo qual e a capital de portugal e depois recebia-se a resposta mas so me davam erros no compilador
fiz este programa e nao deu..
Código:
#include <stdio.h>
#include <string.h>
int certo,errado;
int main(){
 printf("qual é a capital de Lisboa?");
 gets(line);
 if(strcmp(line,"Lisboa")==0){
  }
  else
  printf("errado");
  }
}
Nao sei o que se passa
Cumps ir0n
 
O correcto será assim:

Código:
#include <stdio.h>
#include <string.h>

int main() {
    printf("Qual a capital de Portugal?");
    char line[50];
    gets(line);
    if (strcmp(line,"Lisboa")==0)
        printf("certo");
    else
        printf("errado");
    return 0;
}
 
Código:
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
int main( void){
    int certo=0, errado=0;
    char line[1024];

        printf("\nQual é a capital de Portugal\n");
        gets(line);
        if(strcmp(line, "Lisboa") == 0){
            printf("esta certo");
        }
        else printf("esta errado");
        Sleep(2000);
        return 0;
}
Pronto consegui acertar com o codigo mas por exemplo se eu quiser por mais perguntas como faco?
so aparece está certo e depois nao acontece mais nada
 
ja escrevi mas depois de aparecer esta errado fica 2 seg parado e depois vai abaixo
olha
Código:
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
int main(){
        int certo, errado;
        char line[1024];
        printf("\nQual é a capital de Portugal\n");
        certo++;
        gets(line);
        if(strcmp(line, "Lisboa") == 0)
        printf("esta certo");
        else
        printf("esta errado");
        errado++;
        Sleep(2000);
        printf("qual é o maior sapo do mundo?");
        return 0;
}
pus a pergunta qual e o maior sapo do mundo e nao da nada
PS.no fim do program vou por um printf que mostra o certo e errado
 
Repara numa coisa. Estás a declarar 2 variáveis: certo e errado. No entanto não lhe estás a atribuir nenhum valor inicial (o que queres, certamente será 0 para as duas). O que acontece é que elas ficam inicializadas com valores desconhecidos, podendo resultar em coisas inesperadas como certo=1231.
Depois estás a incrementar a variável "certo" após a pergunta. Mas penso que o que queres é incrementar se for dada a resposta certa. Assim, tens de mudar certo++ de sítio, colocando-o a seguir ao printf do "está certo". Não te esqueças que, como vais passar a ter 2 instruções dentro da condição de sucesso do if, tens de as englobar por chavetas.
Quanto aos sapos, a pergunta não te aparece porque se calhar a janela desaparece logo a seguir à execução do sleep(2000). Já que estás a usar o sleep para ver o resultado, experimenta mover a pergunta para antes do sleep.
 
Back
Topo