ZZUIL题解1011-1020(C语言版)

1011: 圆柱体表面积

1012: 求绝对值

1013: 求两点间距离

1014: 求三角形的面积

1015: 计算时间间隔

1016: 银行利率

1017: 判断正整数位数

1018:奇数偶数

1019: 公园门票

1020: 两整数排序

1011: 圆柱体表面积

题目描述 输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量 #define PI 3.14159

输入
输入两个实数,为圆柱体的底面半径r和高h。

输出
输出一个实数,即圆柱体的表面积,保留2位小数。

样例输入 Copy
42.1 71.6
样例输出 Copy
30076.14
解题思路:
按照求解公式求解即可需要注意宏常量的定义方式

AC代码:

#include<stdio.h>
#define PI 3.14159
int main(){
    double r,high;
    scanf("%lf %lf", &r,&high);
    printf("%.2fn", 2*PI*r*r+PI*r*2*high);
    return 0;
}

1012: 求绝对值

题目描述 求实数的绝对值。 输入 输入一个实数。 输出 输出它的绝对值,结果保留两位小数 样例输入 Copy -234.00 样例输出 Copy 234.00

解题思路:
直接利用函数求解
AC代码:

#include<stdio.h>
#include<math.h>
int main(){
    double a;
    scanf("%lf", &a);
    printf("%.2fn", fabs(a));
    return 0;
} 

1013: 求两点间距离

题目描述 给定A(x1, y1), B(x2, y2)两点坐标,计算它们间的距离。 输入 输入包含四个实数x1, y1, x2, y2,分别用空格隔开,含义如描述。其中0≤x1,x2,y1,y2≤100。 输出 输出占一行,包含一个实数d,表示A, B两点间的距离。结果保留两位小数。 样例输入 Copy 1 1.5 2 2.5 样例输出 Copy 1.41

解题思路:
利用两点间距离求解公式

AC代码:

#include<stdio.h>
#include<math.h>
int main(){
    double x1,y1,x2,y2;
    scanf("%lf %lf %lf %lf", &x1,&y1,&x2,&y2);
    printf("%.2fn", sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1)));
    return 0;
} 

1014: 求三角形的面积

题目描述 给出三角形的三条边,求三角形的面积。

输入
输入三角形的三条边长(实数),数据之间用空格隔开。

输出
输出三角形的面积,结果保留2位小数。

样例输入 Copy
2.5 4 5
样例输出 Copy
4.95
解题思路:
利用海伦公式求解:
p=(a+b+c)/2
s=sqrt(p*(p-a)(p-b)(p-c));
AC代码:

#include<stdio.h>
#include<math.h>
int main(){
    double a,b,c;
    scanf("%lf %lf %lf", &a,&b,&c);//海伦公式p=(a+b+c)/2
    //s=根号(p*(p-a)*(p-b)*(p-c)) 
    double p=(a+b+c)/2;
    printf("%.2fn", sqrt(p*(p-a)*(p-b)*(p-c)));
    return 0;
} 

1015: 计算时间间隔

题目描述 读入两个用“时:分:秒”表示的时间点,计算以秒为单位的时间间隔。

输入
输入有两行,每行是一个用“时:分:秒”表示的时间点。测试数据保证第二个时间点晚于第一个时间点。

输出
输出一个整数,表示时间间隔的秒数。

样例输入 Copy
08:00:00
09:00:00

样例输出 Copy
3600
解题思路:
计算出每一个时间代表的秒的总数量,相减即可得出时间间隔的秒数
AC代码:

#include<stdio.h>
#include<math.h>
int main(){
    int hou1,min1,sec1;
    int hou2,min2,sec2;
    char ch;
    scanf("%d %c %d %c %d", &hou1,&ch,&min1,&ch,&sec1);
    scanf("%d %c %d %c %d", &hou2,&ch,&min2,&ch,&sec2);
    int sum1,sum2;
    sum1=hou1*3600+min1*60+sec1;
    sum2=hou2*3600+min2*60+sec2;
    printf("%dn", sum2-sum1);
    return 0;
}

1016: 银行利率

题目描述 设银行1年期定期存款年利率为2.25%,存款本金为capital元,试编程计算并输出n年后的本利之和。 (注: 目前银行活期存款的利息是按单利计息的。如果是定期存款,连本带息转入下一个存期,那么会继续计入定期的,相当于是复利。) 输入 输入一个正整数和一个实数,分别代表存款年数和存款本金。 输出 输出一个实数为n年后的本利之和,小数点后保留6位数字。 样例输入 Copy 2 100.0 样例输出 Copy 104.550625

解题思路:
使用一个循环,将当年的本金加利息均作为下一年的本金即可得出答案

说明a+=b表示的含义是a=a+b;
另外a++,++a分别表示当前先用后加和当前先加后用,在后面学习栈和数组的时候可能会用到;

AC代码:

#include<stdio.h>
#define APR 0.0225
int main(){
    int n,i;
    double capital,sum;
    scanf("%d%lf", &n,&capital);
    sum=capital+capital*APR;//计算第一年的后面的用循环计算计即可 
    for(i=2; i<=n; i++)
        sum+=sum*APR;
    printf("%.6fn", sum);
    return 0;
}

1017: 判断正整数位数

题目描述 给定一个不多于5位的正整数,判断它是几位数,并输出。 输入 一个不多于5位的正整数。 输出 输出正整数的位数,单独占一行。 样例输入 Copy 111 样例输出 Copy 3

解题思路:
直接使用数学函数求解详细公式见代码
AC代码:

#include<stdio.h>
#include<math.h> 
int main(){
    int n,total;
    scanf("%d", &n);
    total=(int)log10(n)+1;
    printf("%dn", total);
    return 0;
} 

1018: 奇数偶数

题目描述 输入一个整数,判断该数是奇数还是偶数。 输入 输入整数n。 输出 如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。 样例输入 Copy -3 样例输出 Copy odd

解题思路:
直接对2求余数判断等于1表示奇数否则即为偶数
AC代码:

#include<stdio.h>
#include<math.h> 
int main(){
    int n,n1;
    scanf("%d", &n);
    n1=fabs(n);
    if(n%2==0) 
    printf("evenn");
    else
    printf("oddn");
    return 0;
}

1019: 公园门票

题目描述
某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。
输入
输入一个正整数,表示购票的数量。
输出
输出一个整数,表示用户实际需要支付的金额。
样例输入 Copy
30
样例输出 Copy
1440
解题思路:
按照题意每人50元,一次购票满30张,每张可以少收2元,计算出结果即可(自己分析)
AC代码:

#include<stdio.h>
#include<math.h> 
int main(){
    int n,tatal=0;
    scanf("%d", &n);
    if(n>=30) 
    printf("%dn", 48*n);
    else
    printf("%dn", 50*n);
    return 0;
} 

1020: 两整数排序

题目描述 从键盘输入两个整数x,y,按从小到大的顺序输出它们的值。 输入 输入两个整数x,y。 输出 按从小到大的顺序输出它们的值。数据之间以空格间隔。 样例输入 Copy 20 16 样例输出 Copy 16 20

解题思路:
两个数比较大的先输出,小的后输出
题目旨在锻炼if else的使用

AC代码:

#include<stdio.h>
#include<math.h> 
int main(){
    int numb1,numb2;
    scanf("%d %d", &numb1,&numb2);
    if(numb1>numb2) 
    printf("%d %dn", numb2,numb1);
    else
    printf("%d %dn", numb1,numb2);
    return 0;
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>