[ajuda C] IF e Else | ZWAME Fórum
[ajuda C] IF e Else
Discussão em 'Programação' iniciada por Andre14w, 3 de Dezembro de 2008. (Respostas: 20; Visualizações: 1213)
printf("Tudo bem?\n");
scan("%c",&a);
if(a==sim) printf("porreiro\n");
else printf("olha... azar\n");
pelo menos sei que é muita coisa
1) Falta aí um 'f' no scanf.
2) O que estás a fazer é ler um caracter (ou seja, um dígito ou uma letra) para a variável 'a' que é do tipo char. Mas estás a comparar com algo que não é nada ou, quando muito, seria uma variável, que é o 'sim'. Ora visto da perspectiva que tu queres, o que pretendes é comparar a frase que introduzes com a palavra "sim", ou seja, tu queres é comparar strings (cadeias de caracteres) e não apenas um caracter. Tens de rectificar o tipo de 'a' para ser uma string e depois usar a função strcmp() para comparar com a string "sim". Tens de incluír o header <string.h>. http://www.cplusplus.com/reference/clibrary/cstring/strcmp.html
Começa logo no inicio. Tens que especificar o tipo da função. No caso de main(), metes sempre
O erro seguinte é na função scan, que não é scan, é scanf. Depois a não pode conter 3 caracteres que queres para escrever "Sim", apenas pode levar um.
Por fim, e dado que estás a dizer que a função main() vai devolver um int, no final do código antes da chaveta final tens que ter
O 0 aqui diz ao sistema operativo que correu tudo bem
Caso não estejas a incluir bibliotecas (que nao estás a mostar), também tens que fazer antes de tudo tudo, o seguinte comando:
eu fizesse codigo á pressa nem vi q me faltou o F no scan.. mas tirando isso
if(a=="sim")
printf("porreiro\n");
printf("olha... azar\n");
se tirar as aspas do IF ele da erro...
mas se as puser funciona so que só lê o printf do ELSE, isso quer dizer q se eu independentemente do que eu puser.. se for SIM ou outra coisa ele vai acabar por fazer o printf("olha... azar\n"); e nunca faz o printf("porreiro\n");
Já te disse que a comparação de strings se faz com a função strcmp.
mas o problema é q eu nem sei o q é isso... nao percebo nada disto ainda so aprendi os prints scans e ifs
podes fazer algo assim, fica mais simples:
printf("\nTudo bem? (S/N): ");
printf("\nporreiro!\n");
printf("\nolha... azar!\n");
gets(a); //Ou podes usar scanf("%s",a);
if(strcmp(a,"sim")==0)//Compara string se forem iguais devolve 0
Um bocadinho de pesquisa não te fazia mal !
bem obrigado mas ainda falta uma coisa.. eu nao queria um S/N .. queria mesmo a palavra SIM e NAO. nem q me ponham o codigo com outras coisas sem ser IF's porque se o puserem aqui eu olho e entendo a logica do codigo e fico logo a saber para outras alturas
Atenção eu pus o código de boa vontade, mas lembrate que aqui não vais encontrar muitas almas caridosas, aliás o nosso objectivo é dar luzes sobre os problemas que as pessoas metem e tentamos ajudar por forma a essas pessoas conseguirem resolver os problemas por eles próprios, dai que se tivesses pesquisado um bocadinho terias obtido o resultado que querias!
S0ul muito obrigado! era mesmo isso
eu tenho andado a responder aos topicos enquanto outros vao aparecendo e so vejo depois de fazer reply...
ta certo e eu apoio isso ao máximo.. mas é que eu pesquisei mas nem sabia muito bem o que pesquisar, e so comecei a programar ha uns dias nao percebo nada disto ainda
estás a aprender, certo? começa pelo principio e por principio quero dizer tipos de dados. tens mesmo de aprender isso caso contrário vais continuar a ter dúvidas do género desta.
para encontrares a solução para esta dúvida no google podias pesquisar por "string compare C" e encontravas muita coisa. mas parece-me que não tens noção do que são strings em C nem de como as abordar minimamente. é que a tua dúvida era bastante simples: como nativamente não existem strings em C não existe um operador '==' para as comparar. tens de recorrer a uma função de outra biblioteca.
ya tou a ver informaçao sobre strings e bibliotecas muito obrigado a todos pelas dicas
if(a=='S' && b =='i' && c=='m' )
if(strcmp(a,"Sim")==0)
Hehehe gostei. Solução à engenheiro...
A bem ou a mal, vais funcionar!
Engenharia Power
Aproveitando aqui o topico:
é possivel substituir uma variavel de tipo inteiro por uma do tipo caracter?
nao sei se isto te ajuda.. tenta dar um exemplo, tenho 16 anos e comecei agora a dar programação nao sei muito ainda.. o máximo que fiz foi uma calculadora em linha de comandos.