《算法竞赛入门经典》CH1 程序设计入门 习题

来源:互联网 发布:网络推广代理 编辑:程序博客网 时间:2024/04/29 05:58

习题1-1 平均数(average)

题目:输入3个整数,输出他们的平均值,保留3位小数。

 

#include <stdio.h>int main(){     int a,b,c;     scanf("%d%d%d",&a,&b,&c);     printf("%.3lf\n",(double(a)+b+c)/3);     return 0;}


 

习题1-2 温度(temperature)

题目:输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c = 5(f-32)/9。

 

#include <stdio.h>int main(){      double f,c;     scanf("%lf",&f);     c=5.0/9*(f-32);     printf("%.3lf\n",c);     return 0;}


 

习题1-3 连续和(sum)

题目:输入正整数n,输出1+2+3+……+n的值。提示:目标是解决问题,而不是练习编程。

 

#include <stdio.h>int main(){     int n,sum;     scanf("%d",&n);     sum=n*(1+n)/2;     printf("%d\n",sum);     return 0;}


 

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

题目:输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。

 

#include <stdio.h>#include <math.h>int main(){     int n;     const double PI=3.141592653;     scanf("%d",&n);     printf("%lf %lf\n",cos(n/180.0*PI),sin(n/180.0*PI));     return 0;}


 

习题1-5 距离(distance)

 

题目:输入4个浮点数x1, y1, x2, y2,输出平面坐标系点(x1, y1)到点(x2, y2)的距离。


 

#include <stdio.h>#include <math.h>int main(){     double x1,y1,x2,y2;     scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);     printf("%lf\n",sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));     return 0;}



习题1-6 偶数(odd)

题目:输入一个整数,判断它是否为偶数。如果是,则输出"yes",否则输出"no"。提示:可以用多种方法判断。

 

#include <stdio.h>#include <math.h>int main(){     int a;     scanf("%d",&a);     if(a%2==0)           printf("yes\n");     else           printf("no\n");     return 0;}


 

习题1-7 打折(discount)

题目:一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。

 

#include <stdio.h>int main(){     int n;     scanf("%d",&n);     if(95*n>=300)         printf("%.2lf\n",95*n*0.85);     else         printf("%.2lf\n",double(95*n));     return 0;}



习题1-8 绝对值(abs)

题目:输入一个浮点数,输出它的绝对值,保留两位小数。

 

#include <stdio.h>#include <math.h>int main(){     double a;     scanf("%lf",&a);     printf("%.2lf\n",fabs(a));     return 0;}


 

习题1-9 三角形(triangle)

题目:输入三角形三边长度值(均为正整数),判断它是否能为直角三角形的三个边长。如果可以,则输出“yes”,如果不能,则输出“no”。如果根本无法构成三角形,则输出“not a triangle”。

 

#include <stdio.h>#include <math.h>int main(){     int a,b,c;     scanf("%d%d%d",&a,&b,&c);     if(!(a+b>c&&abs(a-b)<c))         printf("not a triangle\n");     else if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)         printf("yes\n");     else         printf("no\n");     return 0;}


 

习题1-10 年份(year)


题目:输入年份,判断是否为闰年。如果是,则输出“yes”,否则输出“no”。提示:简单地判断除以4的余数是不够的。

 

#include <stdio.h>int main(){     int year;     scanf("%d",&year);     if(year%4==0&&year%100!=0||year%400==0)         printf("yes\n");     else         printf("no\n");     return 0;}




 


 

原创粉丝点击