1. 主页
  2. 文档
  3. Level1题解(1-10)
  4. 第9课 顺序结构

第9课 顺序结构

Q1.三角形面积

平面上有一个三角形,它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少,精确到小数点后两位。

这个任务看上去很麻烦,本质上就是根据题目中的描述一步一步转化成代码即可,全程需要很细心。

//求得每条边长,要搞懂如何根据两点的坐标求两点之间线段长度,自己用坐标图画一画,回忆一下老师的讲解
a=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));    //a、b、c分别表示三条边长,sqrt()函数属于<cmath>库
b=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));    
c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
	
p=(a+b+c)/2.0;     //根据边长,求半周长p照搬上面题目中的公式
area=sqrt(p*(p-a)*(p-b)*(p-c));    //根据上面S的计算方法求面积,照搬上面题目中的公式

Q2.等差数列末项计算

给出一个等差数列的前两项a1,a2,求第n项是多少。

这是一道数学题:

公差=第2项-第1项

末项=首项+公差×(项数-1)

所以第n项=a1+(a2-a1)*(n-1)

Q3.A×B问题

输入两个正整数A和B,求A×B的值。注意乘积的范围和数据类型的选择。

unsigned   int   0~4294967295   

int   -2147483648~2147483647 

unsigned long 0~4294967295

long   2147483648~2147483647

long long的最大值:9223372036854775807      long long的最小值:-9223372036854775808

unsigned long long的最大值:18446744073709551615

注意输入和输出的数据类型,这个题目我们可以定义为long long类型,确保计算处理的数据范围更大。

long long a,b;    //声明a,b为long long类型
scanf("%lld%lld",&a,&b);     //占位符是%lld
printf("%lld",a*b);  

尝试输入两个10位数来相乘,看看结果是什么?想一想为什么出现这样的结果?

Q4.计算2的幂

给定非负整数n,求2n的值,即2的n次方。

printf("%.0lf",pow(2,n));  //pow()函数属于<cmath>库,返回的结果是double数据,输出的2的n次数都是整数

如果输入的n较大,看看结果是什么?想一想为什么出现这样的结果?

Q5.计算得分

总成绩计算方法是:总成绩=作业成绩X20%+小测成绩X30%+期末考试成绩X50%。

即总成绩=a * 0.2 + b * 0.3 + c * 0.5 //a表示作业成绩,b表示小测成绩,c表示期末成绩