郑州轻工业学院acm解析大全13001315.docx
《郑州轻工业学院acm解析大全13001315.docx》由会员分享,可在线阅读,更多相关《郑州轻工业学院acm解析大全13001315.docx(11页珍藏版)》请在冰豆网上搜索。
郑州轻工业学院acm解析大全13001315
1300
整数a+b
描述;计算两个整数的和,输入两个32位有符号的整数a,b,两个整数之间用空格隔开,输出为两个整数的和,单独占一行example
11-2
#include
intmain()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("%d",sum);
printf("\n");
return0;
}
1301
求两个实数的绝对值
描述;由键盘输入任意两个双精度数据,输出其平均值。
输出为一实数,保留两位小数,单独咱一行。
Example12.5645.8929.23
#include
intmain()
{
doublea,b,average;
scanf("%lf%lf",&a,&b);
average=(a+b)/2;
printf("%.2lf",average);
return0;
}
补充;float表示为单精度,double表示为双精度,int表示定义的是整型;
%.2lf表示的是保留两位小数%10d表示的是总共占有十个空格,右对齐,%f默认的是保留六位小数,
1302
温度转换
描述;输入一个摄氏温度,要求输出华氏温度公式是f=1.8*c+32
要求;输入一个双精度实数,输出数据小数点后面保留两位有效数字example3595.00
#include
intmain()
{
doublec,f;
scanf("%lf",&c);
f=1.8*c+32;
printf("%.2lf",f);
return0;
}
1303
求等差数列的和
描述;给出三个整数,分别表示第一项最后一项和公差,求改数列的和,
注意;输入三个数中间用空格隔开。
第一个数作为首项,第二个数作为末项,第三个数作为公差,输出占一行,包含一个整数,为该等差数列的和example211326
#include
intmain()
{
inta,b,d;
doublesum;
scanf("%d%d%d",&a,&b,&d);
sum=(((b-a)/d)+1)*(a+b)/2;
printf("%.0lf",sum);
return0;
}
1304
求圆的周长和面积
描述;输入圆的半径,求圆的周长和面积。
要求定义如下宏常量#definePI3.14159
要求;数据保留两位小数。
#include
#definePI3.14159
intmain()
{
doubler,perimeter,area;
scanf("%lf",&r);
perimeter=2*PI*r;
area=PI*r*r;
printf("%.2lf%.2lf",perimeter,area);
return0;
}
1305
求平均分
已知某学生的数学,英语计算机课程的成绩,求平均分保留两位小数
#include
intmain()
{
doublea,b,c,average;
scanf("%lf%lf%lf",&a,&b,&c);
average=(a+b+c)/3;
printf("%.2lf",average);
return0;
}
1306
两个整数的四则运算
输入两个整数num1num2,输出它们的和差积商以及余数其中商保留两位小数其余为整数数据之间用空格隔开
#include
#include
intmain()
{
intnum1,num2,a,b,c,e;
doubled;
scanf("%d%d",&num1,&num2);
a=num1+num2;
b=num1-num2;
c=num1*num2;
d=(num1*1.00)/num2;
e=num1%num2;
printf("%d%d%d%.2lf%d",a,b,c,d,e);
return0;
}
Int是实型,double是双精度的,float是单精度的假如想要输出小数部分,则前加float即可,或者是*1.000
1307
求绝对值
描述;求实数的绝对值
要求:
结果保留两位小数
Example:
-234.00—234.00
#include
#include
intmain()
{
doublea,b;
scanf("%lf",&a);
b=fabs(a);
printf("%.2lf",b);
printf("\n");
return0;
}
绝对值函数
1;求整数的绝对值
用abs函数
Inti=-3,j;
J=abs(i);
2;求实数的绝对值
用fabs
Doublea=-4531,b;
b=fabs(a)
1308
求前驱和后继
描述;输入一个大写字母,求对应的的小写字母的前驱和后继
要求;输出小写字母的额前一个字母和后一个字母,之间用空格分开。
如果没有,用一个减号代替。
如输入A则输出为;-b
#include
intmain()
{
chara,b,c;
scanf("%c",&a);
b=a+31;
c=a+33;
if(a==65)
printf("-%c\n",c);
elseif(a==90)
printf("%c-\n",b);
else
printf("%c%c\n",b,c);
return0;
}
说明;Voidmain()
是指没有返回值
Intmain;
有返回值后面加上return0
当时数去字母是定义字母用char输入地址用%c
1309
时间间隔
描述;从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:
分钟:
秒”表示
输入包括两行第一行是时间点1,第二行是时间点2,时间均以“HH:
MM:
SS”的格式输入。
测试数据保证时间点1早于时间点2
Example12:
01:
12
13:
09;43
输出01:
08:
31
注意:
要输出01:
08;31中的额占位符0,scanf中的格式控制用%02d
#include
intmain()
{
inta,b,c,d,e,f,g,h,i;
scanf("%d:
%d:
%d",&a,&b,&c);
scanf("%d:
%d:
%d",&d,&e,&f);
g=((d*3600+e*60+f)-(a*3600+b*60+c))/3600;
h=(((d*3600+e*60+f)-(a*3600+b*60+c))-g*3600)/60;
i=(((d*3600+e*60+f)-(a*3600+b*60+c))-g*3600)-h*60;
printf("%02d:
%02d:
%02d",g,h,i);
printf("\n");
return0;
}
注意:
当表示时间时,占两字符时地址表示为%02d
2、当表示整数时用int表示求的是整数
1310
求三个数里的最大数与最小数
描述:
从三个整数中取最小数和最大数的程序
输入三个整数,用空格隔开
输出最小数和最大数,用空格隔开。
输出最小数和最大数。
Example;371min=1,max=7
要求,用条件运算符实现
#include
intmain()
{
inta,b,c,min,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{min=b;
max=a;}
else
{min=a;
max=b;}
if(c>max)
max=c;
elseif(cmin=c;
printf("min=%d,max=%d",min,max);
return0;
}
注意:
在三个数比较时条件运算符ifelse的使用必须是具有较强的逻辑关系还有因果关系三个数的排序问题先按顺序排列或者是先比较两个再比较剩下的一个
1311
求两点之间的距离
描述;
给定A(x1,y1),B(X2,y2)两点坐标,计算它们之间的距离。
输入包含四个实数x1,x2,y1,y2,分别用空格隔开含义如描述。
其中0《=x1,x2,y1,y2《=100.
输入包含一行,包含一个实数d,表示A,B两点之间的距离。
结果保留两位小数。
Example
1122
1.41
#include
#include
doublemain()
{
doublex1,x2,y1,y2,d,a;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
a=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);
d=sqrt(a);
printf("%.2lf",d);
return0;
}
注意;变量的初始化,就是给变量赋值;&x1
开方的函数式sqrt(a)
1312
求三角形的面积
描述;给出三角形的三条边求三角形的面积
输入三角形的三条边长(实数),数据之间用空格隔开。
输出三角形的面积,结果保留两位小数
Example
2.545
4.96
用海伦公式或其他方法均可
#include
#include
intmain()
{
doublea,b,c,d,s;
scanf("%lf%lf%lf",&a,&b,&c);
d=(a+b+c)/2;
s=sqrt(d*(d-a)*(d-b)*(d-c));
printf("%.2lf",s);
return0;
}
注意:
海伦公式,如图所示
1313
正整数的逆序数
描述;从键盘输入三位正整数,编程计算并输入它的逆序数。
例如,输入123,应输出321
#include
intmain()
{
inta,b,c,d,e;
scanf("%d",&a);
b=a/100;
c=(a/10)%10;
d=a%10;
e=d*100+c*10+b;
printf("%d",e);
return0;
}
注意求余用%比如对十求余A%10,对100求余a%100
1314
银行利率
描述;设银行定期存款的年利率rate为2.25%,已知存款期为N年存款年金为capital元,试编程计算并输出n年后的本利之和deposit
输入一个正整数和一个双精度实数,分别代表存款期和存款本金
输出一个双精度实数,小数点后保留六个有效数字
2100
104.550625
#include
#include
intmain()
{
intn;
doublecapital,deposit;
scanf("%d%lf",&n,&capital);
deposit=pow(1.0225,n)*capital;
printf("%.6lf",deposit);
return0;
}
注释;
求一个数的幂函数为pow(n,m)表示为n的m次方
1315
二次方程的实根
描述;编程计算输出一元二次方程ax^2+bx+c=0的两个实根,其中a,b,c的值由用户从键盘输入,假设a,b,c,的值不能保证方程有两个不相等的实根
输入三个实数,以空格隔开输出两个实数,每个数据占7列、小数点后保留两位小数,不足7列的右对齐
Example
261
-0.18-2.82
注意使用数学的有关函数,在程序首部加#include,注意%m.nf的使用
#include
#include
intmain()
{
doublea,b,c,d,e;
scanf("%lf%lf%lf",&a,&b,&c);
d=(sqrt(b*b-4*a*c)-b)/(2*a);
e=(-sqrt(b*b-4*a*c)-b)/(2*a);
printf("%7.2lf%7.2lf",d,e);
return0;
}
注释;
%7.2lf是指的右对齐7数列然后有两个小数部分;左对齐是就是%-7.2lf前面加上-便可;