大家好,我是深鱼~
目录
前言:
今天是更新刷题篇的第三天,对于初学者而言,题目在不断的变难,希望大家可以坚持下去,刷完这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)学会灵活运用取余(取模)
结语: 彼方尚有荣光在,少年不惧岁月长
感觉笔者写的还可以,或者自己有些许收获的时候,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢