题目要求把随意输入的三个浮点数按照从大到小的顺序排列,我就想把三个浮点数存入数组,然后递归一下求最大值和最小值,然后去三个数相加再减去最大值和最小值求中间值(见注释部分),但是不知道怎么把浮点数存入数组,貌似没有float类型的浮点数吧,用string貌似也不行,string存入的不是一个字符串吗,char就更不用提了,能不能帮忙操作一下,源代码在下边,已经跑过了,把if操作的abc按顺序排列注释掉就可以自己操作了。
#include
#include
#include
#include
using namespace std;
int main(){
float a,b,c,d;
cin >> a >> b >> c;
/* float a[3]={a,b,c}; //怎么把浮点存入数组再拿出来计算
string a[3]={a,b,c};
int max=a[0],min=a[0];
for(int i=0;i<3,i++){
max=((max+a[i]+abs(max-a[i]))/2;
min=((min+a[i]-abs(min-a[i]))/2;
}
b=(a+b+c-max-min)/2;
a=max;
c=min;
*/
if(a>=b){
if(b>=c)
;
else if(a>=c){
d=b;
b=c;
c=d;
}else{
d=a;
a=c;
c=b;
b=d;
}
}else {
if(b<=c){
d=a;
a=c;
c=d;
}else if(a<=c){
d=b;
b=c;
c=a;
a=d;
}
else{
d=b;
b=a;
a=d;
}
}
if(b+c<=a)
cout << "NAO FORMA TRIANGULO" << endl;
else {
if(a*a==b*b+c*c)
cout << "TRIANGULO RETANGULO" << endl;
else if(a*a>b*b+c*c)
cout << "TRIANGULO OBTUSANGULO" << endl;
else
cout << "TRIANGULO ACUTANGULO" << endl;
}
if(b+c>a){
if(a==b && b==c)
cout << "TRIANGULO EQUILATERO" << endl;
if(a==b && a!=c || a==c && a!=b || b==c && b!=a)
cout << "TRIANGULO ISOSCELES" << endl;
}
}
这样啊, 注意数组名不能和a变量重名
float a,b,c,d;
cin >> a >> b >> c;
float arr[3];
arr[0]=a;
arr[1]=b;
arr[2]=c;
貌似没有float类型的浮点数??
这是啥意思啊?
float a[3] 不就是浮点数的数组??
你是想用双精度的浮点数double??
https://blog.csdn.net/dyw_666666/article/details/81784944
直接使用float数组来接收数据即可,代码参考如下:
int main() {
float a[3];
cin >> a[0] >> a[1] >> a[2];
float t;
for (int i = 0; i < 2; i++) {
for (int j = i + 1; j < 3; j++) {
if (a[i] < a[j]) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
if (a[0] >= a[1] + a[2]) {
cout << "NAO FORMA TRIANGULO" << endl;
} else {
if (a[0] * a[0] == a[1] * a[1] + a[2] * a[2]) {
cout << "TRIANGULO RETANGULO" << endl;
} else if (a[0] * a[0] > a[1] * a[1] + a[2] * a[2]) {
cout << "TRIANGULO OBTUSANGULO" << endl;
} else if (a[0] * a[0] < a[1] * a[1] + a[2] * a[2]) {
cout << "TRIANGULO ACUTANGULO" << endl;
}
if (a[0] * a[0] == a[1] * a[1] && a[0] * a[0] == a[2] * a[2]) {
cout << "TRIANGULO EQUILATERO" << endl;
} else if (a[0] * a[0] == a[1] * a[1] || a[0] * a[0] == a[2] * a[2] || a[1] * a[1] == a[2] * a[2]) {
cout << "TRIANGULO ISOSCELES" << endl;
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!