Ir ao conteúdo
  • Cadastre-se

Ajuda com C


Posts recomendados

Primeiramente peço desculpas por encomendar com duvidas que para vocês devem ser ridículas, mas, comecei aprender C literalmente ontem

.Desde já agradeço!

 

Bom eu estou fazendo um código simples que simula uma conversa porém não esta funcionando corretamente qual seria meu erro?

 

#include <stdio.h>
#include <stdlib.h>
 
int main ()
{
int estado;
int s=1;
int n=0;
 
//Saudações
printf("Ola tudo bem? S/N\n");
scanf("%i", &estado);
if(estado=1){
printf("Que otimo!\n");
}
if(estado<1){
printf("Que pena!\n");
}
return 0;
}
 
 
Outra duvida como faria para fazer outra pergunta sem interferir esta? Por exemplo, a idade?
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Samuel Rocha da Silva

 

As variáveis s e n não estão sendo utilizadas pra nada aí. Retire-as.

printf("Ola tudo bem? S/N\n");scanf("%i", &estado);

Como a pessoa vai responder S ou N se o scanf vai guardar um inteiro?

Ou ela responde 1 ou 2 ou deixe assim e crie um if else pra identificar o que ela escreveu e atribua um número.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Como já falaram acima as variáveis 's' e 'n' não estão servindo para nada, pois você não está associando o valor delas com a variável 'estado'. Outro erro que você está cometendo é em relação ao '=', toda vez que tu quiser comparar o valor de duas variáveis você usa '==' e não '=', pois este serve para atribuir um valor a uma variável e não comparar.

 O código refeito está logo a seguir  e comentado...

 

#include <stdio.h>                      //#include <stdlib.h>                    // Inclusão de bibliotecas com funções prontasint main (){char s,n,estado;                            //Variáveis do tipo char (caracteres)//Saudaçõesprintf("Ola tudo bem? S/N\n");          // Imprime na  tela 'Ola tudo bem? S/N\n'scanf("%c", &estado);                   // Armazena o que foi digitado na variável 'estado'if(estado== 's'){                        // Se 's' for digitado....printf("Que otimo!\n");                   // Imprime na tela 'Que ótimo!'}if(estado == 'n'){                            // Se 'n' for digitado...printf("Que pena!\n");                       // Imprime na  tela 'Que pena!!'}return 0;                                       // Retorna o valor 0}
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

 

Como já falaram acima as variáveis 's' e 'n' não estão servindo para nada, pois você não está associando o valor delas com a variável 'estado'. Outro erro que você está cometendo é em relação ao '=', toda vez que tu quiser comparar o valor de duas variáveis você usa '==' e não '=', pois este serve para atribuir um valor a uma variável e não comparar.

 O código refeito está logo a seguir  e comentado...

 

#include <stdio.h>                      //#include <stdlib.h>                    // Inclusão de bibliotecas com funções prontasint main (){char s,n,estado;                            //Variáveis do tipo char (caracteres)//Saudaçõesprintf("Ola tudo bem? S/N\n");          // Imprime na  tela 'Ola tudo bem? S/N\n'scanf("%c", &estado);                   // Armazena o que foi digitado na variável 'estado'if(estado== 's'){                        // Se 's' for digitado....printf("Que otimo!\n");                   // Imprime na tela 'Que ótimo!'}if(estado == 'n'){                            // Se 'n' for digitado...printf("Que pena!\n");                       // Imprime na  tela 'Que pena!!'}return 0;                                       // Retorna o valor 0}

 

Muito obrigado! consegui compreender.

Link para o comentário
Compartilhar em outros sites

Melhorou, mais ainda não está 100%.

voce declarou duas variaveis (s e n) do tipo char, mas não as usa em nenhum momento.

Observe também que voce nao as inicializa ( nao atribui nada a elas ) então elas ficam com "lixo de memoria".

O código está correto, mas veja se é isso que voce pensou:

char s='s',n='n',estado;if(estado == s)if(estado == n)

Neste caso, voce estaria comparando duas variáveis do tipo char.

É muito bom que você desde cedo já comenta seu código, continue com essa boa prática, mas lembre-se também de endentar o código.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!