1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Dúvida] C

Discussão em 'Programação' iniciada por JGGRD, 15 de Novembro de 2012. (Respostas: 3; Visualizações: 483)

  1. Boas pessoal,
    Sou novo por aqui, apesar de conhecer há muitos anos o fórum.

    Ando a fazer um programa em C, pois estou-me a iniciar nesta linguagem.

    Código:
    while (peso1+peso2+peso3 != 100) {
                printf("\nA soma de todos os pesos tem de ser menor que 100\%.");
                
                printf("Peso Nota 1: ");
                scanf("%f",&peso1);
                while ((peso1 = 0) || (peso1 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 1: ");
                    scanf("%f",&peso1);
                    }
                
                printf("Peso Nota 2: ");
                scanf("%f",&peso2);
                while ((peso2 = 0) || (peso2 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 2: ");
                    scanf("%f",&peso2);
                    }
                
                printf("Peso Nota 3: ");
                scanf("%f",&peso3);
                while ((peso3 = 0) || (peso3 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 3: ");
                    scanf("%f",&peso3);
                    }
                }
    Antes disto, pede os valores dos pesos claro, mas mesmo que a soma de todos os pesos seja 100, ele dá sempre o erro que aí está.
     
    Última edição: 15 de Novembro de 2012
  2. dagas46

    dagas46 Power Member

    Posta aqui o código completo e explica o que queres fazer pois é mais fácil de ajudar
     
  3. Código:
    #include <stdio.h>
    
    
    main()
    {
          float nota1,nota2,nota3,peso1,peso2,peso3,media;
          
          // Introdução das notas
              // Nota 1
              printf("Nota 1: ");
              scanf("%f",&nota1);
              while ((nota1 > 20) || (nota1 < 0))  {
                    printf("\nErro na nota (Volte a introduzir as notas)");
                    printf("Nota 1: ");
                    scanf("%f",&nota1);
                    }
              
              // Nota 2
              printf("Nota 2: ");
              scanf("%f",&nota2);
              while ((nota2 > 20) || (nota2 < 0))  {
                    printf("\nErro na nota (Volte a introduzir as notas)");
                    printf("Nota 2: ");
                    scanf("%f",&nota2);
                    }
              
              // Nota 3
              printf("Nota 3: ");
              scanf("%f",&nota3);
              while ((nota3 > 20) || (nota3 < 0))  {
                    printf("\nErro na nota (Volte a introduzir as notas)");
                    printf("Nota 3: ");
                    scanf("%f",&nota3);
                    }
          
          
          // Introdução Peso das Notas
              // Peso 1
              printf("Peso Nota 1: ");
              scanf("%f",&peso1);
              while ((peso1 = 0) || (peso1 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 1: ");
                    scanf("%f",&peso1);
                    }
                    
              // Peso 2
              printf("Peso Nota 2: ");
              scanf("%f",&peso2);
              while ((peso2 = 0) || (peso2 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 2: ");
                    scanf("%f",&peso2);
                    }
                    
              //Peso 3
              printf("Peso Nota 3: ");
              scanf("%f",&peso3);
              while ((peso3 = 0) || (peso3 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 3: ");
                    scanf("%f",&peso3);
                    }
          
          while (peso1+peso2+peso3 != 100) {
                printf("\nA soma de todos os pesos tem de ser menor que 100\%.");
                
                printf("Peso Nota 1: ");
                scanf("%f",&peso1);
                while ((peso1 = 0) || (peso1 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 1: ");
                    scanf("%f",&peso1);
                    }
                
                printf("Peso Nota 2: ");
                scanf("%f",&peso2);
                while ((peso2 = 0) || (peso2 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 2: ");
                    scanf("%f",&peso2);
                    }
                
                printf("Peso Nota 3: ");
                scanf("%f",&peso3);
                while ((peso3 = 0) || (peso3 > 100)){
                    printf("\nErro no peso (Volte a introduzir as notas)");
                    printf("Peso Nota 3: ");
                    scanf("%f",&peso3);
                    }
                }
                
                // Output
                media = (nota1*(peso1/100))+(nota2*(peso2/100))+(nota3*(peso3/100));
                printf("Media Ponderada: %.1f",media);
                
                scanf(" ");
    }
    Vê lá se consegues entender o que se pretende pelo código, basicamente mete-se 3 notas e o peso de cada uma em percentagem para se calcular a média.
     
  4. Pirikato

    Pirikato Hard BOINC

    Boas, estás a atribuir ás variaveis peso1/2/3 o valor 0 em vez de comparares com 0.
     

Partilhar esta Página