7-21 三角形面积
请编写程序,输入三角形的底 b 和高 h,计算并输出三角形的面积 a。
输入格式
b 和 h
输出格式
a
输入样例
19.77 48.36
输出样例
478.04
#include<stdio.h>
int main()
{
double b,h,a;
scanf("%lf%lf",&b,&h);
a=(b*h)/2;
printf("%.2lf",a);
return 0;
}
7-22 求序列平方和 部分正确
请编写程序,输入正整数 n,计算平方和 s=12+22+32+⋯+n2。
输入格式
整数 n
注:n 在 int 类型范围内,格式限定符采用 %d。
输出格式
实数 s
注:s 在 double 类型范围内,格式限定符采用 %.15g。
输入样例
100
输出样例
338350
//部分正确 #include<stdio.h>
// int main(){
// int n,m;
// double s;
// scanf("%d",&n);
// for(m=1;m<=n;m++)
// s=m*m+s;
// printf("%.15g",s);
// return 0;
// }
#include <stdio.h>
int fun(int n)
{
return n*n;
}
int main()
{
int i,n;
double s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=fun(i);
printf("%.15g\n",s);
return 0;
}
7-23 求序列立方和 部分正确
编写程序,输入正整数 n,计算立方和 s=13+23+33+⋯+n3。
输入格式
整数 n
注:n 在 int 类型范围内,格式限定符采用 %d。
输出格式
实数 s
注:s 在 double 类型范围内,格式限定符采用 %.15g。
输入样例
40
输出样例
672400
#include<stdio.h>
int main(){
int n,m;
double s;
scanf("%d",&n);
for(m=1;m<=n;m++)
s=m*m*m+s;
printf("%.15g\n",s);
return 0;
}
// #include <stdio.h>
// int fun(int n)
// {
// return n*n*n;
// }
// int main()
// {
// int i,n;
// double s=0;
// scanf("%d",&n);
// for(i=1;i<=n;i++)
// s+=fun(i);
// printf("%.15g",s);
// return 0;
// }
7-24 书香节 部分正确
当当网每年书香节都推出购书优惠活动:每满100元就减50元。请编写程序,输入你购书的金额,计算并输出可减金额和付款金额。
输入格式
购书金额
输出格式
可减金额
付款金额
样例输入1
228.76
样例输出1
100.00
128.76
样例输入2
1000.0
样例输出2
500.00
500.00
#include<stdio.h>
int main(){
double a;
double b,m;
scanf("%lf",&a);
b=a/100*50;
m=a-b;
printf("%.2lf\n%.2lf\n",b,m);
return 0;
}
// #include <stdio.h>
// int main()
// {
// double a,m,s;
// scanf("%lf",&a);
// m=a/100*50;
// s=a-m;
// printf("%.2lf\n%.2lf",m,s);
// return 0;
// }
7-25 买U盘(误差修正版)
IT 协会举办程序设计竞赛,准备购买 U 盘作奖品。请编写程序,根据活动经费和 U 盘单价预估可购买 U 盘的最大数量。
输入格式
活动经费和 U 盘单价
输出格式
可购买 U 盘的最大数量
输入样例
660.8 47.2
输出样例
14
输入样例2
504.9 19.8
输出样例2
25
要求:考虑实数的误差。
#include<stdio.h>
int main()
{
double a,b;
int max;
scanf("%lf%lf",&a,&b);
max= a/b;
printf("%d\n",max);
return 0;
}
7-26 聪明的高斯
著名德国数学家高斯(Gauss)上小学时,老师让大家计算:
1+2+3+4+⋯+100= ?
当大家都还在埋头做加法时,高斯却最先算出了答案。你知道他是怎么算的吗?
请编写程序,输入正整数 n,计算 s=1+2+3+4+⋯+n,输出 s 的值。
输入格式
n
输出格式
s
输入样例
100000
输出样例
5000050000
提示:本题要使用 long long int 类型。
//变量用long %lld
#include<stdio.h>
int main()
{
long long int n,s;
scanf("%lld", &n);
s=n*(n+1)/2;
printf("%lld", s);
return 0;
}
7-28 何时空仓
某仓库现存货物 s 箱,每天上午出货 m 箱、下午进货 n 箱,若s≥m>n≥0,则第 k 天将会出现空仓的情况。请你帮仓库管理员编写程序,输入s、m 和 n,计算并输出 k。
输入格式
s,m,n (s≥m>n≥0)
输出格式
k
输入样例
4705 268 193
输出样例
61
#include<stdio.h>
int main()
{
int s,m,n,k=0;
scanf("%d %d %d",&s,&m,&n);
while(s>0){
k++;
s=s-m;
if(s<=0)
break;
s=s+n;
}
printf("%d\n",k);
return 0;
}
7-29 烟囱的高度
已知人离烟囱的距离为 a,人的眼睛离地高度为 b,人看烟囱顶时的仰角为 θ,求烟囱的高度 h。
输入格式
a b θ
注:a、b 的单位为米,均为小数。仰角 θ 的单位为角度,包括度、分和秒数,其中度、分为整数,秒数为小数。
输出格式
h
注:h 的单位为米。
要求:输出2位小数,末位四舍五入。
输入样例
27.8 1.2 32 48 59.5
输出样例
19.13
#include <stdio.h>
int main(){
double a,b,m,n,s,h;//,h1,h2;
double p=3.1415926;
scanf("%lf %lf",&a,&b);
scanf("%lf %lf %lf",&m,&n,&s);
h=m+(n/60)+(s/3600);
h=h*(p/180);
//h2=a*((sin*h1)/(cos*h1))+b;
//printf("%.2lf",h2);
printf("%.2lf",a*(sin(h)/cos(h))+b);
return 0;
}
7-30 求矩形面积
已知一个矩形的长和宽,计算该矩形的面积。矩形的长和宽用整数表示,由键盘输入。
输入格式:
输入在一行中给出2个绝对值不超过1000的整数A和B,表示矩形的长和宽。
输出格式:
在一行中输出矩形的面积。
输入样例:
4 3
输出样例:
12
#include <stdio.h>
int main()
{
int a,b,s;
scanf("%d %d",&a,&b);
s=a*b;
printf("%d\n",s);
return 0;
}
7-31 求圆周长和面积
已知一个圆的半径,计算该圆的周长和面积,结果保留2位小数。半径用实数表示,由键盘输入。设圆周率等于3.14159。
输入格式:
输入在一行中给出1个实数r,表示圆的半径。
输出格式:
在一行中输出圆的周长和面积,结果保留2位小数。数据之间留一个空格。
输入样例:
3
输出样例:
18.85 28.27
#include <stdio.h>
int main()
{
int r;
double s, c;
double p=3.14159;
scanf("%d", &r);
s = p*r*r;
c = 2*p*r;
printf("%0.2lf %0.2lf", c, s);
return 0;
}
7-32 交换两实数的整数部分
输入两个实数,将其整数部分交换后输出,结果保留2位小数。
输入格式:
输入2个实数A和B。
输出格式:
输出交换整数部分之后的两个实数。数据之间以一个“,”分隔。
输入样例:
23.45 54.22
输出样例:
54.45,23.22
#include<stdio.h>
int main()
{
double A,B,e,f,m,n;
int a,b;
scanf("%lf %lf",&A,&B);
a=(int)A;
b=(int)B;
e=A-a;
f=B-b;
m=b+e;
n=a+f;
printf("%.2lf,%.2lf\n",m,n);
return 0;
}
7-33 温度转换
输入一个华氏温度f(整数),要求根据公式c=5(f-32)/9计算并输出摄氏温度,其中f由键盘输入,结果保留1位小数。
输入格式:
输入在一行中给出1个绝对值不超过1000的整数f,表示华氏温度。
输出格式:
在一行中输出摄氏温度,结果保留1位小数。
输入样例:
100
输出样例:
37.8
#include<stdio.h>
int main()
{
double f;
double c;
scanf("%lf", &f);
c = 5*(f-32)/9;
printf("%.1lf\n", c);
return 0;
}
7-34 反序显示一个四位数
从键盘上输入一个四位整数,将结果按反序显示出来。
输入格式:
输入在一行中给出1个四位整数a。
输出格式:
在一行中输出a的反序数。
输入样例:
1234
输出样例:
4321
#include<stdio.h>
int main()
{
int n,a,b,c,d;
scanf("%d",&n);//1234
a=n/1000;//1
b=(n%1000)/100;//2
c=((n%1000)%100)/10;//3
d=(((n%1000)%100)%10);//4
n= d*1000+c*100+b*10+a;
printf("%d",n);
return 0;
}
7-35 英文字母的大小写转换
输入一个大写字母c1和一个小写字母c2,把c1转换成小写,c2转换成大写,然后输出。
输入格式:
输入在一行中给出2个字母,第1个是大写字母c1,第2个是小写字母c2。
输出格式:
在一行中输出把c1转换成小写,c2转换成大写后的结果。数据之间留一个逗号。
输入样例:
Y e
输出样例:
y,E
int main()
{
char a,b;
scanf("%c %c",&a,&b);
if(a >= 'a' && a <= 'z')
a -= 32;
else if(a >= 'A' && a <= 'Z')
a += 32;
if(b >= 'a' && b <= 'z')
b -= 32;
else if(b >= 'A' && b <= 'Z')
b += 32;
printf("%c,%c",a,b);
return 0;
}
7-36 4位整数的数位和
输入一个4位数的整数,求其各数位上的数字之和。
输入格式:
输入在一行中给出1个4位的正整数n。
输出格式:
在一行中输出n的各数位上的数字之和。
输入样例:
1234
输出样例:
10
#include<stdio.h>
int main(){
int a,m,n,t,f;
scanf("%d",&a);
m=a%10;
n=a/10%10;
t=a/100%10;
f=a/1000%10;
printf("%d",(m+n+t+f));
return 0;
}
7-37 5门课的平均分
输入5门课程成绩(整数),求平均分(结果保留1位小数)。
输入格式:
输入在一行中给出5个整数,表示5门课成绩。
输出格式:
在一行中输出5门课的平均分(结果保留1位小数)。
输入样例:
66 77 88 99 79
输出样例:
81.8
#include <stdio.h>
int main()
{
float a,b,c,d,e,m;
scanf("%f %f %f %f %f",&a,&b,&c,&d,&e);
m=(a+b+c+d+e)/5;
printf("%0.1f",m);
return 0;
}
7-38 等边三角形面积
数学基础对于程序设计能力而言很重要。对于等边三角形面积,请选择合适的方法计算之。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入1个实数表示等边三角形的边长。
输出格式:
对于每组测试,在一行上输出等边三角形的面积,结果保留2位小数。
输入样例:
1.0
2.0
输出样例:
0.43
1.73
//s=sqrt(3)a*a/4等边三角形的面积
#include <stdio.h>
#include <math.h>
int main()
{
float a,t,s;
while(scanf("%f",&a)!=EOF)
{
s=sqrt(3)*a*a/4;
printf("%.2f\n",s);
}
return 0;
}
7-39 程序改错:温度转化
以下程序的功能是:输入一个华氏温度,求出对应的摄氏温度是多少。两种温度之间的关系为C=5/9(F-32),其中的C和F分别代表摄氏温度和华氏温度。#
include <stdio.h>;
int main(void);
{int f,c;
scanf("%d%d",f,c);
c=5/9(f-32);
printf("摄氏温度=%d\n",c);
return 0
}
调试运行该程序,改正程序中所有的语法错误和逻辑错误。
输入格式:
输入一个代表华氏温度的数。
输出格式:
输出摄氏温度的值,保留两位小数,最后换行。
输入样例:
100
输出样例:
37.78
#include<stdio.h>
int main()
{
float f,c;
//double c;
scanf("%f", &f);
c = 5*(f-32)/9;
printf("%.2lf", c);
return 0;
}
7-40 统计闰年个数
现行格里高利历法的置闰规则可以概括为:四闰百不闰,四百闰。编程序实现:输入一个年份,求出到这一年的年末总共经历了多少个闰年,限定不能使用循环结构。假定从公元第一天开始,就实施格里高利历法。
(提示:求出经历了多少个4年、多少个100年、多少个400年。
1.假如所有能被4整除的年份都是闰年,那么到第n年的年末总共经历了多少个闰年?
2.假如所有能被100整除的年份都不是闰年,那么到第n年的年末总共减少多少个闰年?
3.假如所有能被400整除的年份都是闰年,那么到第n年的年末总共增加多少个闰年?)
输入格式:
输入一个代表年份的正整数。
输出格式:
输出闰年个数,最后换行。
输入样例:
2020
输出样例:
490
#include<stdio.h>
int main()
{
int x,y,z,m,n;
scanf("%d",&x);
m=x/400;
z=x/100;
n=x/4;
y=m+n-z;
printf("%d",y);
return 0;
}