Jump to content

Dúvida sobre Vectores utilizando Switch


Rui M.
 Share

Recommended Posts

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.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other 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

Link to comment
Share on other 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;
	}
}
Link to comment
Share on other 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!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.