7-3 输出三角形面积和周长 (15分)本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。
注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:其中s=(a+b+c)/2。
输入格式:
输入为3个正整数,分别代表三角形的3条边a、b、c。
输出格式:
如果输入的边能构成一个三角形,则在一行内,按照
area = 面积; perimeter = 周长
的格式输出,保留两位小数。否则,输出
These sides do not correspond to a valid triangle
输入样例1:
5 5 3
输出样例1:
area = 7.15; perimeter = 13.00
输入样例2:
1 4 1
输出样例2:
These sides do not correspond to a valid triangle
参考代码如下:
#include
#include
int main()
{
int a,b,c;
float area,perimeter,s;
scanf("%d %d %d",&a,&b,&c);
if(a
{
s=(a+b+c)/2.0;
/* 注意如果算子都为整型则结果为整型,由于a、b、c都为整形,因此要 2 要写为 2.0(浮点型),或者写为(float)(a+b+c)/2 */
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area = %.2f; perimeter = %.2f",area,perimeter);
}
else
printf("These sides do not correspond to a valid triangle");
return 0;
}
7-4 回文数 (10分)判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。。
输入格式:
直接输入一个5位数正整数。
输出格式:
输出“yes”或“no”。此处均为小写字母
输入样例:
12521
输出样例:
yes
输入样例:
65432
输出样例:
no
参考代码如下:
#include
int main()
{
int a,b,c,d,i;
scanf("%d",&i);
a=i/10000;
b=i/1000%10;
c=i%100/10;
d=i%10;
if(a==d&&b==c)
printf("yes\n");
else
printf("no\n");
return 0;
}
/* 同学们要掌握如果取出一个整数的各个位数 */
7-5 A除以B (10分)真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。
输出格式:
在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。
输入样例1:
-1 2
输出样例1:
-1/2=-0.50
输入样例2:
1 -3
输出样例2:
1/(-3)=-0.33
输入样例3:
5 0
输出样例3:
5/0=Error
参考代码如下:
#include
int main()
{
int A,B;
scanf("%d %d",&A,&B);
if(A>=-100&&B<=100) //写代码时一定要注意层级缩进,增强程序的可读性,便于调试维护
if(B>0)
printf("%d/%d=%.2f",A,B,(double)A/B);
else if(B<0)
printf("%d/(%d)=%.2f",A,B,(double)A/B);
else if(B==0)
printf("%d/%d=Error",A,B);
return 0;
}
7-6 出租车计价 (15分)本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.6 2
输出样例1:
10
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
参考代码如下:
#include
int main(){
float km,charge=0 ; //定义变量时,变量名要取有意义的名字,增强可读性。
int min ;
scanf("%f %d",&km,&min);
//scanf中的格式符%f,不能有精度的前缀,有写同学写%.1f是错的
if(km<=3)
charge = 10;
else if(km<=10)
charge = 10+2*(km-3);
else if(km>10)
charge = 24+3*(km-10);
charge += min/5*2;
printf("%.0f",charge); // %.0f 会只保留整数部分,并自动进行四舍五入。
return 0;
}