习题1-1 平均数(average)
输入3个整数,输出它们的平均值,保留3位小数。
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%.3f\n",(a+b+c)/3.0); //必须除以3.0
return 0;
}
习题1-2 温度(temperature)
输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。
#include <stdio.h>
int main()
{
double f;
scanf("%lf",&f);
printf("%.3f\n",5*(f-32)/9);
return 0;
}
习题1-3 连续和(sum)
输入正整数n,输出1+2+…+n的值。提示:目标是解决问题,而不是练习编程。
#include <stdio.h>
int main()
{ int n;
scanf("%d",&n);
printf("%d\n",n*(n+1)/2); //等差数列求和公式
return 0;
}
习题1-4 正弦和余弦(sin和cos)
输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。
#include <stdio.h>
#include<math.h>
#include PI acos(-1.0) //根据反余弦函数求PAI
int main()
{
int n;
scanf("%d",&n);
printf("%f %f\n",sin(n/180.0*PI),cos(n/180.0*PI));
return 0;
}
习题1-5 打折(discount)
一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。
#include <stdio.h>
int main()
{ int n;
scanf("%d",&n);
printf("%.2f\n",95.0*n>300.0?95.0*n*0.85:95.0*n);
return 0;
}
习题1-6 三角形(triangle)
输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以,则输出yes,如果不能,则输出no。如果根本无法构成三角形,则输出not a triangle。
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("yes\n");
else
printf("no\n");
}
else
printf("not a triangle\n");
return 0;
}
习题1-7 年份(year)
输入年份,判断是否为闰年。如果是,则输出yes,否则输出no。提示:简单地判断除以4的余数是不够的
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%400==0||(n%4==0&&n%100!=0)) //四年一润,百年一润,四百年再润
printf("yes\n");
else
printf("no\n");
return 0;
}
该篇博客提供了《算法竞赛入门经典》第一章的习题解答,包括计算平均数、华氏到摄氏温度转换、连续和、正弦余弦函数值、打折计算、直角三角形判断以及闰年检测等算法问题,涉及c语言编程和算法应用。
2172





