Ir ao conteúdo

Posts recomendados

Postado

Gostaria que me ajudassem com um problema. Estou cursando ADS e comecei a ver sobre linguagem C.

Tenho alguns exercícios para fazer, e aconteceu um erro em um deles. O erro é o seguinte: incompatible types in assignment of 'const char [7]' to 'char [20]'

e também: 'else' without a previous 'if'

 

Aqui está o código, agradeço muito quem me ajudar:

 

#include<stdio.h>
#include<stdlib.h>
main(void)
{
    int idade;
    char nome[30], classe, situacao[20];
    printf("Nome:\n");
    scanf("%s\n", &nome);
    printf("Classe:\n");
    scanf("%c\n", &classe);
    printf("Idade:\n");
    scanf("%i\n", &idade);
    if(idade>=18);
    {
        situacao="Adulto";
    }
    else
    {
        if(idade>=12)
        {
            situacao="Adoloscente";
        }
        else
        {
            if(idade>=0)
            {
                situacao="Crianca";
            }
            else
            {
                situacao="Idade Invalida";
            }
        }
    }
    printf("\nNome: %s", nome);
    printf("\nClasse: %c", classe);
    printf("\nIdade: %i", idade);
    printf("\nSituacao: %s", situacao);
    system("pause");
}

Postado

Seu código está logicamente correto.
Existem apenas alguns erros de sintaxe e de tratamento de string.

 

Fiz os ajustes e adicionei comentários ao lado de cada um deles:

 

Spoiler

#include <stdlib.h>
#include <stdio.h>
#include <string.h> /* Utilizar a biblioteca string.h para funções que tratam string (ex: strcpy() ) */

int main(void)
{
    int idade;
    char nome[30], classe, situacao[20];

    printf("Nome: ");
    scanf(" %s", nome); /* Removida a quebra de linha */

    printf("Classe: ");
    scanf(" %c", &classe); /* Removida a quebra de linha */

    printf("Idade: ");
    scanf(" %i", &idade); /* Removida a quebra de linha */

    if ( idade >= 18 ) /* Removido o ponto e virgula */
    {
        strcpy(situacao, "Adulto"); /* Utilizar funcao "strcpy()" para copiar string em uma variável */
    }
    else
    {
        if ( idade >= 12 )
        {
            strcpy(situacao, "Adoloscente"); /* Utilizar funcao "strcpy()" para copiar string em uma variável */
        }
        else
        {
            if ( idade >= 0 )
            {
                strcpy(situacao, "Crianca"); /* Utilizar funcao "strcpy()" para copiar string em uma variável */
            }
            else
            {
                strcpy(situacao, "Idade Invalida"); /* Utilizar funcao "strcpy()" para copiar string em uma variável */
            }
        }
    }

    printf("\n\n\n");

    printf("Nome: %s\n", nome);
    printf("Classe: %c\n", classe);
    printf("Idade: %i\n", idade);
    printf("Situacao: %s\n", situacao);

    system("pause");
  
    return 0;
}

 

 

  • Curtir 1
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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!