码迷,mamicode.com
首页 > 其他好文 > 详细

first day~

时间:2014-08-01 04:43:51      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   java   os   strong   

it‘s been a long time without practicing~ almost everything about the C programming language.

learn today: 1/ read the problem carefully.

                  2/no blank between two input (scanf(“%d %d", &a, &b);

prac: 2001(http://acm.hdu.edu.cn/showproblem.php?pid=2001)

计算两点间的距离

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 95055    Accepted Submission(s): 36510

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
lcy
 
Source
 
Recommend
JGShining   |   We have carefully selected several similar problems for you:  2003 2002 2004 2000 2005 
 
 first try: output limit exceeded
 
#include<stdio.h>
#include<math.h>

int main(){
    int x1, y1, x2, y2;
    double result;
    while(scanf("%d %d %d %d", &x1, &y1, &x2, &y2)!=EOF){
        result = sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
        printf("%.2f\n", result);
    }
    return 0;
}


why?:题目的输入格式中明确说明了每组测例的输入是4个实数,而不是4个整数。scanf("%d", &n);这样的写法,在输入中有非数字和空格的字符出现时,读入会失败,但不报错,也不会跳过失败处的字符。所以楼主的程序在遇到第一个小数点的时候就一直重复输入最后一次正确读入的测例的结果了,最终造成输入超限。

 

second try: accepted

#include<stdio.h>
#include<math.h>

int main(){
    double x1, y1, x2, y2, result;
    while(scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2)!=EOF){
        result = sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
        printf("%.2lf\n", result);
    }
    return 0;
}

 

first day~,布布扣,bubuko.com

first day~

标签:des   style   blog   http   color   java   os   strong   

原文地址:http://www.cnblogs.com/comeonleo/p/3883865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!