《算法竞赛入门经典(第二版)》习题(一)

习题1-1 平均数

输入3个整数,输出它们的平均值,保留3位小数。

#include<stdio.h>
int main()
{
	int a,b,c;
	double ave;
	scanf("%d%d%d",&a,&b,&c);
	ave=(a+b+c)/3;
	printf("%.3f",ave);
	return 0;
}
习题1-2 温度

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

#include <stdio.h>
int main ()
{
    double f;
    scanf("%lf",&f);
    printf ("%.3f",5.0*(f-32.0)/9.0);
    return 0;
}
习题1-3 连续和

输入正整数n,输出1+2+…+n的值。

#include<stdio.h>
int main(){
	int n,sum;
	sum=n*(n+1)/2;
	scanf("%d",&n);
	printf("%d",sum);
	return 0;
}
习题1-4 正弦和余弦

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

解析:需要先把角度值转换为弧度值,利用公式:弧度值=n/180*π。

#include <stdio.h>
#include <math.h>
int main()
{
    // 定义pi的值
    const double PI = acos(-1.0);
    int n ;
    scanf("%d", &n);
    // 数学函数使用弧度
    printf("%.3f\n%.3f\n", sin(n/180.0*PI), cos(n/180.0*PI));
    return 0;
}

习题 1-5 打折

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

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

习题 1-6 三角形

输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3条边长。如果可以,输出yes,如果不能,输出no。如果根本无法构成三角形,则输出no 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(b*b+c*c==a*a||a*a+c*c==b*b||a*a+b*b==c*c){
			printf("yes\n");}
		else
			{printf("no\n");}
	}
	else
	{printf("not a tringle\n");}
	return 0;
} 


习题 1-7 年份

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

解析:闰年需要满足2个条件:1、能被4整除,且不能被400整除。 2.能被400整除。

#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;
}


猜你喜欢

转载自blog.csdn.net/qq_41828329/article/details/86537867