前言:
今天是更新刷题篇的第三天,对于初学者而言,题目在不断的变难,希望大家可以坚持下去,刷完这130题,我们一定会有很大的进步,冲冲冲!!!
1.计算三角形的周长和面积
题目:
题解:本题只要学习两点:
<1>知道三角形的三条边怎么计算三角形的面积:海伦公式S=sqrt(p*(p-a)*(p-b)*(p-c)),其中p为三角形周长的一半,即p=(a+b+c)/2
<2>sqrt这个函数是开平方的意思,它作用于double类型的变量,用这个函数要引头文件#include<math.h>
拓展:在C语言中怎么计算次方,这里介绍一个函数:pow(double x,double y),它的返回值也是double类型,eg:pow(2.0,6.0)=64,同样这是数学中的,所以用这个函数之前要引头文件#include<math.h>
#include <stdio.h> #include<math.h> int main() { double a=0.0; double b=0.0; double c=0.0; //输入 scanf("%lf %lf %lf",&a,&b,&c); //计算 double circumference=(a+b+c);//周长 double p=circumference/2; double area=sqrt(p*(p-a)*(p-b)*(p-c)); //输出 printf("circumference=%.2lf area=%.2lf",circumference,area); return 0; }
2. 计算球体的体积
题目:
题解:本题应注意:
<1>定义pi的时候不能写成float类型,因为float类型只能到小数点后6-7位,而double类型可以到小数点后15-16位
<2>计算体积的时候不能写成4/3,这样就算的结果之间就是1,那么本题的真实结果就会相差很大,解决办法就是写为4.0/3或者4/3.0,或者把/3写在整个表达式的后面eg:4
*pi*n*n*n/
3
#include <stdio.h> int main() { double r=0.0; double v=0.0; double pi=3.1415926; //输入 scanf("%lf",&r); //计算 v=4/3.0*pi*r*r*r; printf("%.3lf",v); return 0; }
3.成绩输入输出
题目:
题解1:
#include <stdio.h> int main() { int s1=0; int s2=0; int s3=0; scanf("%d %d %d",&s1,&s2,&s3); printf("score1=%d,score2=%d,score3=%d\n",s1,s2,s3); return 0; }
题解2:如果输入的数据很多,采用数组输入
#include <stdio.h> int main() { int score[3]={0}; int i=0; for(i=0;i<3;i++) { scanf("%d",&score[i]); } printf("score1=%d,score2=%d,score3=%d\n",score[0],score[1],score[2]); return 0; }
4.变种水仙花
题目:
题解:
拿12345举个例子,怎么取出各个数
1*2345 - (12345/10000 )*(12345%10000)
12*346 - (12345/1000) *(12345%1000)
123*45 - (12345/100) * (12345%100)
1234*5 - (12345/10) * (12345%10)
所以就是一个数i,(i除以10的次方)和(i取10的次方的模)的乘积
(i/j)*(i%j)
#include <stdio.h> #include<math.h> int main() { int i=0; for (i = 10000; i <= 99999; i++) //取出五位数 { //判断i是否为Lily Number int j=0; int sum=0; for(j=10;j<=10000;j*=10) { sum+=(i/j)*(i%j); } if (sum == i) printf("%d ", i); } return 0; }
5.kiki算数
题目:
题解:这题主要是考查取余
#include <stdio.h> int main() { int a=0; int b=0; //输入 scanf("%d %d",&a,&b); //计算 int sum =(a+b)%100;//这里也可以写成a%100+b%100 //输出 printf("%d",sum); return 0; }
6.浮点数的个位数字
题目:
题解1:本题主要学会(int)(double)强制转化类型,要转换啥类型直接在变量或常量前面写上(想转的类型)
#include <stdio.h> int main() { double a=0; scanf("%lf",&a); int n=(int)a; printf("%d\n",n%10); return 0; }
题解2:直接输入时13.141,但是程序录入只取整数部分
#include <stdio.h> int main() { int a=0; scanf("%d",&a); printf("%d\n",a%10); return 0; }
7. 你能活多少秒
题目:
题解:本题要学会10的7次方怎么写?
<1>3.156*pow(10,7)
<2>3.156e7(e表示的是底数为10的科学计数法的表示形式)
还要注意631200000太大了,不能用int类型,得用long long类型来存储,打印的时候是%lld
#include <stdio.h> #include<math.h> int main() { int age=0; //输入 scanf("%d",&age); //计算 long long time=3.156*pow(10,7)*age; //或者这样写long long time=3.156e7*age; //输出 printf("%lld",time); return 0; }
8. 时间转换
题目:
题解:本题就是净值换算的一个题 3600s等于1h,seconds%3600就是除了3600以后的余数,用这个余数再除以60就是分钟,取余就是秒
#include <stdio.h> int main() { //输入 int seconds=0; int h=0; int m=0; int s=0; scanf("%d",&seconds); //计算 h=seconds/3600; m=seconds%3600/60; s=seconds%3600%60; //输出 printf("%d %d %d\n",h,m,s); return 0; }
9.总成绩和平均分计算
题目:
题解1:
#include <stdio.h> int main() { double arr[3] = {0};//三科成绩 //输入 scanf("%lf %lf %lf", &arr[0], &arr[1], &arr[2]); //计算 double sum=arr[0] + arr[1] + arr[2]; double avg=sum/3.0; //输出 printf("%.2lf %.2lf",sum , avg); return 0; }
题解2:边输入边计算
#include <stdio.h> int main() { double score=0.0; double sum=0.0; //输入并计算 int i=0; for(i=0;i<3;i++) { scanf("%lf",&score); sum+=score; } //输出 printf("%.2lf %.2lf",sum ,sum/3); return 0; }
10.KiKi和酸奶
题目:
题解1:当总时间正好被喝一瓶所用时间整除,直接减就可以,如果没有被整除,就需要再减一瓶
#include <stdio.h> int main() { int m = 0;//给的酸奶瓶数 int n = 0;//喝一瓶所用的时间 int h = 0;//总共时间 while ((scanf("%d %d %d", &n, &h, &m) != EOF)) { if (m % h) printf("%d", n - m / h - 1); else printf("%d", n - m / h); } return 0; }
题解2:简化(int)强制类型转换
#include <stdio.h> int main() { float m, n, h = 0; scanf("%f %f %f", &n, &h, &m); printf("%d", (int)(n - m / h) ); return 0; }
总结:
(1)这些编程初学者训练的思路一般都是:输入,计算,输出
(2)sqrt和pow的作用和返回值都是double类型,都要引头文件#include<math.h>
(3)float类型只能到小数点后6-7位,分数计算的时候记得带上小数点,不然会直接取整eg:4/3.0
(4)水仙花变种:(i/j)*(i%j) j为pow(10,n)
(5)次方运算有两种方法:<1>pow(x,y) <2>en(以10为底数的科学计数法)
(6)学会灵活运用强制转换(类型)
(7)学会灵活运用取余(取模)
结语: 彼方尚有荣光在,少年不惧岁月长
感觉笔者写的还可以,或者自己有些许收获的时候,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢