Code with if and Else does not work

Asked

Viewed 127 times

0

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
main()
{

int n1, n2, n3, n4, n5, ma, mp, mav, mev, dp, p1, p2, p3, p4, p5, i, maior, menor;


printf("Escolha a operação que deseja efetuar: Média Aritmética Simples(1), Média Ponderada(2), Desvio Padrão(3), Maior Valor(4) ou Menor Valor(5)");
scanf("%d", i);



if(i == 1) {
printf("Digite o primeiro número: ");
scanf("%d", &n1);
printf("Digite o segundo número: ");
scanf("%d", &n2);
printf("Digite o terceiro número: ");
scanf("%d", &n3);
printf("Digite o quarto número: ");
scanf("%d", &n4);
printf("Digite o quinto número: ");
scanf("%d", &n5);

                  ma = (n1 + n2 + n3 + n4 + n5)/5;
                  printf("A Média Aritmética Simples é: %d", ma);
}


else if(i == 2) {
printf("Digite o primeiro número: ");
scanf("%d", &n1);
printf("Digite o segundo número: ");
scanf("%d", &n2);
printf("Digite o terceiro número: ");
scanf("%d", &n3);
printf("Digite o quarto número: ");
scanf("%d", &n4);
printf("Digite o quinto número: ");
scanf("%d", &n5);

                printf("Digite os respectivos pesos: ");
                scanf("%d %d %d %d %d", &p1, &p2, &p3, &p4, &p5);
                mp = (n1*p1) + (n2*p2) + (n3*p3) + (n4*p4) + (n5*p5);
                mp = mp/(p1+p1+p3+p4+p5);
                printf("A Média Ponderada é: %d", mp);
}




else if(i == 3) {
printf("Digite o primeiro número: ");
scanf("%d", &n1);
printf("Digite o segundo número: ");
scanf("%d", &n2);
printf("Digite o terceiro número: ");
scanf("%d", &n3);
printf("Digite o quarto número: ");
scanf("%d", &n4);
printf("Digite o quinto número: ");
scanf("%d", &n5);
            dp = sqrt(pow(n1-ma , 2) + pow(n2-ma , 2) + pow(n3-ma, 2) + pow(n4-ma, 2) + pow(n5-ma, 2));
            dp = dp/5;
            printf("O Desvio Padrão é: %d", dp);

}



else if(i == 4) {
printf("Digite o primeiro número: ");
scanf("%d", &n1);
printf("Digite o segundo número: ");
scanf("%d", &n2);
printf("Digite o terceiro número: ");
scanf("%d", &n3);
printf("Digite o quarto número: ");
scanf("%d", &n4);
printf("Digite o quinto número: ");
scanf("%d", &n5);

                if(n1>n2) {maior = n1; }
                else{maior = n2;}
                if(maior < n3) { maior = n3;}
                if(maior < n4) {maior = n4;}
                if(maior < n5) {maior = n5;}

                printf("O maior número é: %d", maior);
}




else if(i == 5)   {
printf("Digite o primeiro número: ");
scanf("%d", &n1);
printf("Digite o segundo número: ");
scanf("%d", &n2);
printf("Digite o terceiro número: ");
scanf("%d", &n3);
printf("Digite o quarto número: ");
scanf("%d", &n4);
printf("Digite o quinto número: ");
scanf("%d", &n5);



                 if(n1 < n2){ menor = n1;}
                 else{ menor = n2;}
                 if(menor > n3){ menor = n3;}
                 if(menor > n4){ menor = n4; }
                 if(menor > n5){ menor = n5;}

                printf("O menor número é: %d", menor);
}
else { printf("Impossíve!");}





}

1 answer

0

Hello there is a simple error in your code:

scanf("%d", &i);

You need "&" to reference the memory address of the variable "i". & Only not required when working with pointer. I hope I helped!

The error is therefore not in if and Else. It is in reading the input.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.