各位大佬看一下我的代码有问题吗

P5735 【深基7.例1】距离函数

qiaoruiyu @ 2022-02-10 12:32:34


#include<iostream>
#include<math.h>
class distance{
    private://类定义数据成员     
            int x1,x2,x3,y1,y2,y3;
            int z=2;
            int a ; 
    public:
        int dis(){//成员函数
            printf("输入第一个坐标") ;
            scanf("%d%d",&x1,&y1)   ;
            printf("输入第二个坐标") ;
            scanf("%d%d",&x2,&y2)   ;
            printf("输入第三个坐标") ;
            scanf("%d%d",&x3,&y3)   ; 
            a=sqrt(abs((x1 - x2) * (x1 - x2)) + abs((y1 - y2) * (y1 - y2)));
            printf("%.2lf",a);         
        }
};
int main(){//主函数 
    distance d;
    d.dis();
}``` 

by lucas_jy @ 2022-02-10 12:35:14

@qiaoruiyu

你这个printf("输入第…个坐标") ;没有必要啊,应改为

#include<iostream>
#include<math.h>
class distance{
    private:   
            int x1,x2,x3,y1,y2,y3;
            int z=2;
            int a ; 
    public:
        int dis(){
            scanf("%d%d",&x1,&y1)   ;
            scanf("%d%d",&x2,&y2)   ;
            scanf("%d%d",&x3,&y3)   ; 
            a=sqrt(abs((x1 - x2) * (x1 - x2)) + abs((y1 - y2) * (y1 - y2)));
            printf("%.2lf",a);         
        }
};
int main(){ 
    distance d;
    d.dis();
}

by 5k_sync_closer @ 2022-02-10 12:40:53

@qiaoruiyu 不是没有必要,是不能有。

算法竞赛中要求的输出格式中,不能有多余的内容,这也包括了“请输入整数 a 和 b” 这一类的提示用户输入信息的内容。若包含了这些内容,将会被认为是 Wrong Answer,即洛谷上的 WA。 --P1001


by Li2021 @ 2022-02-10 12:42:15

不要输出其他的东西,而且你这个只计算了一个点和另一个点的距离啊。。。

改成这样你试试

#include<iostream>
#include<math.h>
class distance{
    private:
            int x1,x2,x3,y1,y2,y3;
            int z=2;
            double a ; 
    public:
        int dis(){
            scanf("%d%d",&x1,&y1)   ;
            scanf("%d%d",&x2,&y2)   ;
            scanf("%d%d",&x3,&y3)   ; 
            a=sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)) + sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2)) + sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
            printf("%.2lf",a);         
        }
};
int main(){
    distance d;
    d.dis();
}

by streaminging @ 2022-02-10 13:21:16

SSD


by qiaoruiyu @ 2022-02-14 11:47:07

@Li2021 谢谢啦??


by Zjxrhy @ 2022-02-19 20:18:17

@5k_sync_closer 大佬帮我也看一下好吗,全wa了,但我又觉得没啥错误,实在是看不出来了

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x1,x2,x3,y1,y2,y3;
    scanf("%lf %lf",&x1,&y1);
    scanf("%lf %lf",&x2,&y2);
    scanf("%lf %lf",&x3,&y3);
    double s1,s2,s3;
    s1=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
    s2=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
    s3=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y2-y3));
    double ans=s1+s2+s3;
    printf("%.2lf",ans);
    return 0;
}

|