– Boa tarde! Não consigo entender onde está o erro?
#import <stdio.h>
#import <locale.h>
void main(){
setlocale(LC_ALL, “Portuguese”);
char estado[10];
printf(“Em que estado do Brasil voce nasceu? “);
fflush(stdin);
gets(estado);
if (estado == “sp”){
printf(“Paulista”);
} else {
if (estado == “ba”){
printf(“Baiano”);
}
}
}
Não é possível fazer comparação de strings com “==”, é necessário utilizar a função strcmp(estado,"sp") == 0. Essa função retorna um inteiro, ele será -1 se a primeira string for “menor” que a segunda, 0 se forem iguais e 1 se a primeira string for “maior” que a segunda. Para utilizada é necessário incluir a biblioteca #import <string.h>
No else, está sendo feito um if, porém pelo contexto pode ser usado o else if, tente utiliza-lo no seu código. Essa parte não está errada mas imaginando uma situação com mais estados causaria problemas.
Espero ter ajudado, se o erro persistir, volte a entrar em contato que lhe ajudaremos.
Obrigado! fiz o teste e está funcionando, vou fazer o exercício mais elaborado exemplo testado e aprovado abaixo:
#import <stdio.h>
#import <locale.h>
#import <string.h>
void main() {
setlocale(LC_ALL, “Portuguese”);
char estado[3];
scanf(“%s”, estado);
if(strcmp(estado,”SP”)== 0 || strcmp(estado,”sp”)==0){
printf(“Paulista”);
}else if(strcmp(estado,”RJ”)==0){
printf(“Carioca”);
}else if(strcmp(estado,”AC”)==0){
printf(“Acreano”);
}
}
Mais uma vez Grato!
Autor
Posts
Visualizando 2 respostas da discussão
Você deve fazer login para responder a este tópico.
O Estudonauta utiliza cookies e outras tecnologias semelhantes para melhorar a sua experiência em nossos serviços, personalizar publicidade e recomendar conteúdo de seu interesse. Ao utilizar nossos serviços, você concorda com tal monitoramento. Com esta autorização estamos aptos para coletar tais informações e utilizá-las para tais finalidades. Você pode consultar nossa política de privacidade e política de cookies.OkVeja mais