Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Ajuda em C

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Ajuda em C

    Ola, eu estou aprendendo a programar em c e estou usando o livro Use a cabeça: C. Estou nesse exercício e não consigo faze-lo funcionar não sei o que esta de errado. O GCC compila mas com ressalvas. O código esta como no livro. Se alguém puder me ajudar eu agradeço

    obrigado

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {

    char card_name[3];
    puts("Entre com o nome da carta: ");
    scanf("%2s", card_name);
    int val = 0;
    if (card_name[0] == "K")
    {
    val = 10;
    }
    if (card_name[0] == "Q")
    {
    val = 11;
    }
    if (card_name[0] == "J")
    {
    val = 12;
    }
    if (card_name[0] == "A")
    {
    val = 1;
    }
    else
    {
    val = atoi(card_name);
    }
    printf("A carta vale: %i\n", val);
    return 0;
    }

  • Font Size
    #2
    Cara se o código está igual ao livro pode trocar de livro. O código correto seria:

    Código:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
    
    	char card_name[3];
    	puts("Entre com o nome da carta: ");
    	scanf("%2s", card_name);
    	int val = 0;
    	if (card_name[0] == 'K'){
    		val = 10;
    	}else if (card_name[0] == 'Q'){
    		val = 11;
    	}else if (card_name[0] == 'J'){
    		val = 12;
    	}else if (card_name[0] == 'A'){
    		val = 1;
    	}else{
    		val = atoi(card_name);
    	}
    	printf("A carta vale: %i\n", val);
    	return 0;
    }
    Primeiro as letras K, J e A devem está dentro de (') aspas simples. Uma letra, número ou símbolo que está dentro de aspas duplas é considerado uma string.
    Segundo se vc não usar else, a não ser que vc informe 'A' a linha val = atoi(card_name); vai tentar converter o valor informado em inteiro.

    Comment


    • Font Size
      #3
      Observação

      Só uma observação... Sei que funciona, porém, a linguagem C++ teve algumas "atualizações", assim como as bibliotecas. Por exemplo: o antigo stdio.h é agora cstdio. Assim, como ao invés de usar char[3], agora podemos usar string (Não estou dizendo que não é correto o uso do char[3], só dizendo). Enfim, um livro que contempla essa e muitas outras novidades e aborda com exercícios muito bem é "Treinamento em linguagem C++" de Viviane Mizrah da editora Persona. Mas atente para a edição. Somente a segunda que contempla as novidades.

      Bom estudo!
      sigpic

      Decidi deixar de ser usuário e virar desenvolvedor

      Comment

      X
      Working...
      X