假期编程

此博客链接:https://www.cnblogs.com/ping2yingshi/p/12243098.html

1.两点间距离(10min)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2001

Problem Description
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
Output
对于每组输入数据,输出一行,结果保留两位小数。
Sample Input
0 0 0 1
0 1 1 0
Sample Output
1.00
1.41
Author

题解:

此题需要知道两点间距离公式:|

设两个点A、B以及坐标分别为
,则A和B两点之间的距离为:
代码如下:
#include<stdio.h>
#include<math.h>
int main(void)
{
    double x1,x2,y1,y2;
    double dis;
    double temp;
    while(~scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2))
    {
       dis=0;
       temp=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
       
       dis=sqrt(temp);
       printf("%0.2lf\n",dis);
    
    }
  
    return 0;
    
}

2.第几天(24min)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2005

Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
题解:此题难点在于要判断年份是平年还是润年,平年二月份28天,但是润年二月份29天。
平年润年判断方法:
润年是能被4整除但是不能被100整除的是润年,或者是能被400整除的是润年,其他情况均是平年。
代码如下:
#include<stdio.h>
#include<math.h>
int main(void)
{
    int year;
    int month;
    int day;
    int i; 
    int month1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年 
    int month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//润年 
    while(~scanf("%d/%d/%d",&year,&month,&day))
    {
       int days=0;
       if((year%4==0&&year%100!=0)||year%400==0)//判断润年 
       for(i=0;i<month;i++)
       days=days+month2[i];
       else 
       for(i=0;i<month;i++)
       days=days+month1[i];
       days=days+day;
       printf("%d\n",days);
    
    }
  
    return 0;
    
}

 

posted @ 2020-01-30 16:45  萍2樱释  阅读(170)  评论(0编辑  收藏  举报