码迷,mamicode.com
首页 > 编程语言 > 详细

《算法竞赛入门经典》1.5.6上机练习

时间:2014-12-27 01:26:43      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

习题1-1 平均数(average)

1 #include<stdio.h>
2 int main()
3 {
4     int a,b,c;
5     scanf("%d%d%d",&a,&b,&c);
6     printf("%0.3lf",(a+b+c)/3.0);
7     return 0;
8 }

本题重点在于格式输出,类型转化……

不过在

printf("%0.3lf",(a+b+c)/3);时如输入1 1 2则输出0,这个我还真的搞不清楚了,int型的不是得到1再转double吗……

习题1-2 温度(temperature)
1 #include<stdio.h>
2 int main()
3 {
4     float f,c;
5     scanf("%f",&f);
6     printf("%0.3f",5*(f-32)/9.0);
7     return 0;
8 }

这个在

scanf("%f",&f);将%f改成%d,输入32同样出现错误,结果输出:-17.778.正常不是应该为0吗……虽然有int与float的转化,但是感觉不会啊。。。

我搜了一下网页http://tieba.baidu.com/p/88194315
为什么我 
float a=3; 
printf("a=%d\n",a) 
结果a=0啊? 
虚心求教

由于你把a定义成folat型了,可是你输出是int型。输出式计算机就自动把float型的值转换成int型,就是把float的后16位赋给int数。而在这题中float数的后16位全是零。所以输出的是0。 
或者进行强制类型转换。或者用%f型输出??

感觉这个说的在理。

习题1-3 连续和(sum)

1 #include<stdio.h>
2 int main()
3 {
4     int n;
5     scanf("%d",&n);
6     printf("%d",n*(n+1)/2);
7     return 0;
8 }

 

习题1-4 正弦和余弦(sincos)

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5     const float pi=4.0*atan(1.0);
 6     int n;
 7     scanf("%d",&n);
 8     printf("%lf  %lf",sin(n*pi/180),cos(n*pi/180) );
 9     return 0;
10 }

关键在于数学……

 

习题1-5 距离(distance)

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5     float x1, x2, y1, y2;
 6     float s;
 7     scanf("%f%f%f%f",&x1,&y1,&x2,&y2);
 8     s=sqrt( (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) );
 9     printf("%f", s);
10     return 0;
11 }

 

 

 
 

 

 

《算法竞赛入门经典》1.5.6上机练习

标签:

原文地址:http://www.cnblogs.com/LzKlyhPorter/p/4187892.html

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