• 1000 Итак, моя проблема в том, что первое «если» работает идеально, но второе «если» выводит только первую строку (Voce tem o valor dos 3 lados? (S ou n) :), и программа перестает работать, я не могу найти где моя ошибка, если кто-то может мне помочь, это было бы хорошо, и если португальский затрудняет, дайте мне знать, и я переведу это. спасибо.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void triangulo(){
int angulo;
float a, b, c, s, area, base, altura, seno, rad;
char resposta1, resposta2;
printf("Voce tem os valores da base e da altura? (s ou n): ");
scanf("%c", &resposta1);
if (resposta1 == 's'){
printf("Digite a base do triangulo : ");
scanf("%f", &base);
printf("Digite a altura do triangulo : ");
scanf("%f", &altura);
area = (base * altura)/2;
printf("A area do triangulo eh : %f", area);
}
else{
if(resposta1 == 'n'){
printf("Voce tem o valor dos 3 lados? (s ou n): ");
scanf("%c", &resposta2);
if(resposta2 == 's'){
printf("Digite o valor do lado : ");
scanf("%f", &a);
printf("Digite o valor do lado : ");
scanf("%f", &b);
printf("Digite o valor do lado : ");
scanf("%f", &c);
s = (a + b + c)/2;
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("A area do triangulo eh : %f", area);
}
else{
if(resposta2 == 'n'){
printf("Digite o lado : ");
scanf("%f", &a);
printf("Digite o outro lado : ");
scanf("%f", &b);
printf("Digite o angulo entre esses dois lados : ");
scanf("%d", &angulo);
rad = 3.14159265358979323846/180;
seno = sin(rad * angulo);
area = (a * b * seno)/2;
printf("A area do triangulo eh : %f", area);
}
}
}
}
return;
}
int main (void){
triangulo();
return 0;
}