Ir ao conteúdo

Posts recomendados

Postado

Alguém pode me ajudar ? então estava escrevendo esse codigo e la no final do switch adicionei um default, porém não sei como faço pra que quando o numeros digitado pelo usuario for diferente de n1,n2,n3 ele escreva erro  !! alguém poderia me dar uma luz?! 

            default:
            num != &n1, &n2, &n3;
            Printf("ERRO!!!\n");
            break;

 

 

 

 

 

#include<stdio.h>

int main(){
	
	int num=0, n1=1, n2=2, n3=3;
	
	printf("----------------------------\n");
	printf("Escreva um numero de 1 a 3 :\n");
			scanf("%d", &num);
	
	switch (num){
		case 1:
			printf("Numero incorreto!\n", &n1);
			break;
		case 2:
			printf("Numero incorreto!\n", &n2);
			break;
		case 3:
			printf("Parabens numero correto!\n", &n3);
			break;
		default:
			num != &n1, &n2, &n3;
			Printf("ERRO!!!\n");
			break;
		
		    	
			
		      	
	}
}

 

Postado

@mylla1206 O controle vai ser transferido pra instrução do default se `num` não corresponder à nenhum dos valores das expressões dos cases.

 

35 minutos atrás, mylla1206 disse:
num != &n1, &n2, &n3;

Você inventou essa linha, não dá pra programar sem saber o que se está fazendo.

Dê uma lida na documentação do switch.

  • Curtir 1
Postado
3 horas atrás, Lucca Rodrigues disse:

@mylla1206 O controle vai ser transferido pra instrução do default se `num` não corresponder à nenhum dos valores das expressões dos cases.

 

Você inventou essa linha, não dá pra programar sem saber o que se está fazendo.

Dê uma lida na documentação do switch.

eu retirei essa linha dps de perceber q não fazia sentindo e coloquei assim como mostrei ai em baixo, mais mesmo desse jeito não vai, estou aprendendo agr a mexer com linguagem c pois na faculdade estamos so usando ela então não sei mexer direito! 

#include<stdio.h>

int main(){
	
	int num=0, n1, n2, n3;
	
	printf("----------------------------\n");
	printf("Escreva um numero de 1 a 3 :\n");
			scanf("%d", &num);
	
	switch (num){
		case 1:
			printf("Numero incorreto!\n", &n1);
			break;
		case 2:
			printf("Numero incorreto!\n", &n2);
			break;
		case 3:
			printf("Parabens numero correto!\n", &n3);
			break;
		default:
			Printf("ERRO!!!\n");
			break;
	
		    	
			
		      	
	}
}

 

Postado

Você tem um livro? Uma apostila? Um manual? Usa Linux?

 

scanf() e printf() foram escritas pelas mesmas pessoas e usam convenções parecidas. 

 

  • Seu compilador não mostrou as mensagens de erro e as linhas? Não leu? Ele escreve em português as mensagens ou em outra lingua que você entenda?
  • Onde estão os especificadores de printf()?
  • Porque não testou  retorno de scanf()? É ingenuo seguir pra ler um segundo número se não ler o primeiro, por exemplo.
  • Porque não mostrou os números que leu antes de tentar fazer algo com eles? Pode ter surpresas... Como vai saber se o diagnõstico está certo se não mostrar o que leu???
  • pra que chamar duas vezes a mesma função para fazer a mesma coisa? Vai demorar dezenas de vezes mais...
  • Se leu um número só como pode dizer algo sobre os outros 2????
  • não mude de linha ao fazer uma pergunta. Todo mundo espera o cursor na mesma linha
  • Printf não é a mesma coisa que printf()
  • & é um operador e traz o endereço do que vem a seguir, &n1 significa o endereço de n1. E está também errado nas chamadas a printf.

Seu programa não faz sentido. Que diabo é n1 n2 e n3?

 

Compare com o simples

 

#include<stdio.h>

int main(void)
{
	int num = 0;
	int n1 = 0;
	int n2 = 0;
	int n3 = 0;

	printf("\
----------------------------\n\
Escreva um numero de 1 a 3 : ");

	int res = scanf("%d", &num);
	if (res != 1) return -1; // não leu nada
	printf("\nLeu '%d'\n", num);

	switch (num)
	{
	case 1:
		printf("Numero incorreto! n1 = %d\n", n1);
		break;
	case 2:
		printf("Numero incorreto! n2 = %d\n", n2);
		break;
	case 3:
		printf("Parabens numero correto! n3 = %d\n", n3);
		break;
	default:
		printf("ERRO!!!\n");
		break;
	}; // switch

	return 0;
}

 

 

  • Curtir 2
Postado

@arfneto então realmente não estava fazendo sentido então fiz de novo, tenho livros sim e os acompanho porém esse codg não esta em nenhum livro foi eu mesma q inventei. Pode estar parecendo confuso pra você ou sem sentido mais so estou estudando a 1 semana sobre a linguagem e quis fazer algo por mim mesmo. Obrigado pela sua ajuda e tentarei fazer um novo codigo seguindo sua dicas! segue a forma como eu fiz e rodou da forma que eu queria:

#include<stdio.h>

int main(){
	
	int num=0, n1, n2, n3;
	
	printf("----------------------------\n");
	printf("Escreva um numero de 1 a 3 :\n");
			scanf("%d", &num);
	
	switch (num){
		case 1:
			printf("Numero incorreto!\n", &n1);
			break;
		case 2:
			printf("Numero incorreto!\n", &n2);
			break;
		case 3:
			printf("Parabens numero correto!\n", &n3);
			break;
		default:
			printf("ERRO!!!\n");
			break;			
		      	
	}
}

 

Postado

porque não corrigiu TODOS os erros que listei pra você?

 

Não rodou sequer o programa que eu escrevi?

Não respondeu quase nada do que eu perguntei e manteve vários dos problemas mesmo tendo recebido o seu programa com várias correções. Não entendo.

 

Seus livros falam sobre scanf() e printf()?

 

 

 

 

  • Curtir 1
Postado

@arfneto Rodei sim o programa que o sr escreveu, sim meus livros falam sobre ambos, porém não quis fazer como o sr colocou ai porque se não seria copiar e colar estou tentando fazer sozinha anotei sua dicas e o proximo farei como você descreveu a cima. Obrigada !

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!