Colocar Resposta 
 
Avaliação do Tópico:
  • 2 votos - 5 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Linguagem C - Dicas e ajuda para iniciantes
18-07-2011, 15:45 (Esta mensagem foi modificada pela última vez a: 18-07-2011 16:05 por wolfytuga.)
Mensagem: #35
RE: Linguagem C - Dicas e ajuda para iniciantes
(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? Unsure 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!!! Neutral
(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;
}

wolfytuga
Para o que der e vier...
emachines E520 | Intel Celeron 2.0GHz | 32/64bit | RAM 2GB | HD 160GB | Intel Mobile 4 Express, 64MB → 1GB
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
RE: Linguagem C - Dicas e ajuda para iniciantes - wolfytuga - 18-07-2011 15:45

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)