• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rui M.

Dúvida sobre Vectores utilizando Switch

10 mensagens neste tópico

Preciso de saber se existe alguma forma de, através de um switch, fazer o case com um vector.

Por exemplo: Switch(abc[ i ])

                    case abc[ i ]=1: printf...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Preciso de saber se existe alguma forma de, através de um switch, fazer o case com um vector.

Por exemplo: Switch(abc[ i ])

                    case abc[ i ]=1: printf...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e que tal guardar o resultado de abc[ i]  numa variável antes e depois usá-la no switch? não percebi bem a tua dúvida

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tipo, eu preciso de fazer um printf caso o primeiro vector seja igual a 1. note-se que o vector abc é abc[150]. Apenas pus o "i" porque antes tem um for.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assumo que isto seja C.

for(i = 0; i < 150; i++){
switch(abc[i]){
  case 1:
   printf("ois");
   break;
  case 2:
   printf("outra coisa");
   break;
}
}

Isto vai verificar se os vários abc são == 1, 2, etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu preciso de conseguir por este for com switch a bombar desta maneira:

	for(i=0;i<cont2;i++)

	crl[ i ]=memo;
	switch(memo, ali[ i ])
	{
	case memo=1: printf("Carnes          %d€\n", ali[ i ]); break;
	case memo=2: printf("Lacticinios     %d€\n", ali[ i ]); break;
	case memo=3: printf("Cereais         %d€\n", ali[ i ]); break;
	case memo=4: printf("Massas          %d€\n", ali[ i ]); break;
	case memo=5: printf("Bebidas         %d€\n", ali[ i ]); break;
	case memo=6: printf("Congelados      %d€\n", ali[ i ]); break;
	}

só que nem com o memo nem com o crl eu consigo por o case porque dá "case expression not constant".

Alguma ideia sff

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mesmo so com o memo ele n aceita, dizendo que tem de ser uma variavel constante. e eu em cima ja estou a passar o valor do vector para a variavel int memo.

basicamente a função é assim:

factura(int ali[150], int crl[150], int cont2)
{
int i, memo;
printf("ARTIGO\t\tPRECO\n\n");
for(i=0;i<cont2;i++)

	crl[i]=memo;
	switch(memo, ali[i])
	{
	case memo=1: printf("Carnes          %d€\n", ali[i]); break;
	case memo=2: printf("Lacticinios     %d€\n", ali[i]); break;
	case memo=3: printf("Cereais         %d€\n", ali[i]); break;
	case memo=4: printf("Massas          %d€\n", ali[i]); break;
	case memo=5: printf("Bebidas         %d€\n", ali[i]); break;
	case memo=6: printf("Congelados      %d€\n", ali[i]); break;
	}
}

onde o vector ali tem guardado o preço e o vecotr crl tem guardado a posição da casa para corresponder o preço com o tipo de alimento

-------------------------------------------------

factura(int ali[150], int crl[150], int cont2, int f)
{
int i, memo;
printf("ARTIGO\t\tPRECO\n\n");
for(i=0;i<cont2;i++)

	crl[i]=memo;
	switch(memo, ali[ i ])
	{
	case memo=1: printf("Carnes          %d€\n", ali[ i ]); break;
	case memo=2: printf("Lacticinios     %d€\n", ali[ i ]); break;
	case memo=3: printf("Cereais         %d€\n", ali[ i ]); break;
	case memo=4: printf("Massas          %d€\n", ali[ i ]); break;
	case memo=5: printf("Bebidas         %d€\n", ali[ i ]); break;
	case memo=6: printf("Congelados      %d€\n", ali[ i ]); break;
	}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, Rui.

caso nao te tenhas apercebido, estás a atribuir um valor duma variavel.....a um vector?

quanto muito terias de especificar a casa onde querias k o valor ficasse guardado.

Mas pq eq no switch tens o ali[ i] ??  nao te serve de nada.

outra coisa é teres 'case memo=1'

a estrutura switch so te aceita constantes no case, logo, quanto muito poderias ter case 1 ...ou case 2 ...por ai adiante.

espero ter-te sido util, mas se quiseres realmente por isso a funcionar (sem andares com a stora Marta a chatear-te a cabeça por causa dos switch) aconselho.te a fazeres um pouco de leitura. Acho que o livro do Damas pode-te ajudar, pois explica isso de forma simples.

Bom trabalho!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora