(18-07-2011 14:39)helder fortunato Escreveu: ok obrigado,vou esperimentar assim,pensso que com essas correçoes vai ficar bom
Em alternativa tem este pequeno substituto, este faz uso do
switch case:
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int duplo_light_flex,duplo_digital,triplo_10m,triplo_10m_digital;
enum{a=80,b=90,c=100,d=110,e=125};
printf("80%% \n90%% \n100%% \n110%% \n125%% \ndigita a tua percentagem:\n");
int opcao=a; //coloque o respectivo numero sem '%'
scanf("%d", &opcao);
switch (opcao)
{
case a: duplo_light_flex=2;
duplo_digital=5;
triplo_10m=7;
triplo_10m_digital=9;
break;
case b: duplo_light_flex=4;
duplo_digital=7;
triplo_10m=9;
triplo_10m_digital=11;
break;
case c: duplo_light_flex=8;
duplo_digital=12;
triplo_10m=15;
triplo_10m_digital=18;
break;
case d: duplo_light_flex=10;
duplo_digital=14;
triplo_10m=18;
triplo_10m_digital=22;
break;
case e: duplo_light_flex=12;
duplo_digital=16;
triplo_10m=20;
triplo_10m_digital=26;
break;
default: printf("\nEssa opcao nao esta disponivel!\n\n");
exit(0);
break;
}
int soma=0;
printf(" digite quantos duplo_light_flex\n");
scanf("%d",&duplo_light_flex);
printf("digite quantos duplo_digital\n");
scanf("%d",&duplo_digital);
printf("digite quantos triplo_10m\n");
scanf("%d",&triplo_10m);
printf("digite quantos triplo_10M_digital\n");
scanf("%d",&triplo_10m_digital);
soma=duplo_light_flex+duplo_digital+triplo_10m+triplo_10m_digital;
printf("resultado: %d\n" ,soma);
system("PAUSE");
return 0;
}
@off topic: Para que é que está a introduzir valores iniciais, se ao pedir ao utilizador irá reescrever esses mesmos valores?
Ainda se houvesse um pedido ao utilizador se quer usar os valores padrão ou se quer introduzir uns novos, isso assim, já era compreensível!!!
(18-07-2011 15:41)helder fortunato Escreveu: boas amigo,já estive a esperimentar o programa e já nao dá erro fincou bem melhor (funciona) mas só nao está a dár o resultado que eu esperava...
se esperimentares o codigo ele vai me dar a soma dos contratos que eu fiz,mas eu queria que ele somasse era os pontos,
tipo se eu escolher a opçao 100% e escolher 2 contr. de cada tipo 2-duplo_light_flex, 2-duplo_digital etc, o programa vaime dar o resultado de 8 mas se somasse os pontos ele deveria dar o resultado de 106 mas funciona quase bem
ah, eu me perguntava porque estava a guardar o resultado em variáveis com resultados armazenados... afinal aqueles valores são constantes e o utilizador apenas insere o peso que cada constante vai ter, é isso?
ou seja, isto (para 100%):
Código:
duplo_light_flex=8;
duplo_digital=12;
triplo_10m=15;
triplo_10m_digital=18;
printf("digite quantos duplo_light_flex\n");
scanf("%d",&peso_duplo_light_flex);
printf("digite quantos duplo_digital\n");
scanf("%d",&peso_duplo_digital);
printf("digite quantos triplo_10m\n");
scanf("%d",&peso_triplo_10m);
printf("digite quantos triplo_10M_digital\n");
scanf("%d",&peso_triplo_10m_digital);
soma = (peso_duplo_light_flex*duplo_light_flex) + (peso_duplo_digital*duplo_digital) + (peso_triplo_10m*triplo_10m) + (peso_triplo_10m_digital*triplo_10m_digital);
printf("resultado: %d\n" ,soma);
Assim, desta forma, supondo que o utilizador insere 2 em cada campo, fica o seguinte em soma:
soma = (2*8) + (2*12) + (2*15) + (2*18);
É isto?
Pode ver se este código já corresponde ao que quer?
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int duplo_light_flex,duplo_digital,triplo_10m,triplo_10m_digital;
enum{a=80,b=90,c=100,d=110,e=125};
printf("80%% \n90%% \n100%% \n110%% \n125%% \ndigita a tua percentagem:\n");
int opcao=a; //coloque o respectivo numero sem '%'
scanf("%d", &opcao);
switch (opcao)
{
case a: duplo_light_flex=2;
duplo_digital=5;
triplo_10m=7;
triplo_10m_digital=9;
break;
case b: duplo_light_flex=4;
duplo_digital=7;
triplo_10m=9;
triplo_10m_digital=11;
break;
case c: duplo_light_flex=8;
duplo_digital=12;
triplo_10m=15;
triplo_10m_digital=18;
break;
case d: duplo_light_flex=10;
duplo_digital=14;
triplo_10m=18;
triplo_10m_digital=22;
break;
case e: duplo_light_flex=12;
duplo_digital=16;
triplo_10m=20;
triplo_10m_digital=26;
break;
default: printf("\nEssa opcao nao esta disponivel!\n\n");
exit(0);
break;
}
int soma=0;
int peso_duplo_light_flex,peso_duplo_digital,peso_triplo_10m,peso_triplo_10m_digital;
printf("digite quantos duplo_light_flex\n");
scanf("%d",&peso_duplo_light_flex);
printf("digite quantos duplo_digital\n");
scanf("%d",&peso_duplo_digital);
printf("digite quantos triplo_10m\n");
scanf("%d",&peso_triplo_10m);
printf("digite quantos triplo_10M_digital\n");
scanf("%d",&peso_triplo_10m_digital);
soma = (peso_duplo_light_flex*duplo_light_flex) + (peso_duplo_digital*duplo_digital) + (peso_triplo_10m*triplo_10m) + (peso_triplo_10m_digital*triplo_10m_digital);
printf("resultado: %d\n" ,soma);
system("PAUSE");
return 0;
}