电子学会一级-3算术表达式与顺序执行

1.3 算术表达式与顺序执行

06 甲流疫情死亡率

题解

在C++中,两个整数相除的结果仍然是整数(除数不能为0),整数相除会舍弃小数部分

例如:

int val=21/6=3

整数相除如果需要得到小数的情况,需要保证除数和被除数必须有一个是浮点数

#include<bits/stdc++.h>
using namespace std;

int main(){
	int a,b;
	float c;
	cin>>a>>b;
	c=b*1.0/a*100;
	printf("%.3f%%",c);
}

07 计算多项式的值

题解

浮点数定义

scanf 输入浮点数

  1. 数据类型字符:用于表示输入数据的类型,表 1 列出了其格式字符和意义。
格式字符 输出示例 意义
d scanf("%d",&Int); 输入十进制整数
u scanf("%u",&Int); 输入无符号十进制整数
o scanf("%o",&Int0); 输入八进制整数
x scanf("%x",&Int0x); 输入十六进制整数
f scanf("%f",&Float); 输入小数形式的实数
e scanf("%e",&Float); 输入指数形式的实数
c scanf("%c",&Char); 输入单个字符
s scanf("%s",String); 输入字符串
  1. 数据宽度:用十进制整数指定输入数据的宽度(即字符数),若输入字符数超出指定值,超出部分被截去。例如:scanf("%5f",&Pi); 输入3.1415925,scanf( ) 只是把 3.141 这 5 个字符存储在了变量中,其余部分被截去。即用printf("%f",Pi);显示变量 Pi 的值为3.141000。

  2. 数据长度:长度格式符有 l 和 h 两种。l 表示输入长整型数(如 %ld )或双精度浮点数(如 %lf )。h 表示输入短整型数或单精度浮点数

#include<bits/stdc++.h>
using namespace std;

int main(){
	double a,b,c,d,x,ans;
	scanf("%lf %lf %lf %lf %lf",&x,&a,&b,&c,&d);
	ans = a*x*x*x+b*x*x+c*x+d;
	printf("%.7f",ans);
}

09 与圆相关的计算

题解

输入 scanf

输出 printf

#include<bits/stdc++.h>
using namespace std;

int main(){
	double r,d,p,s;
	scanf("%lf",&r);
	d=2*r;
	p=2*3.14159*r;
	s=3.14159*r*r;
	printf("%.4lf %.4lf %.4lf",d,p,s);
}

15 苹果和虫子

题解

由题意知:

如果刚好把某个苹果吃完,则剩余苹果数=总苹果数-吃的小时数/每小时吃的个数

n-y/x

如果某个苹果吃不完,则剩余苹果数=总苹果数-吃的小时数/每小时吃的个数-1

n-y/x-1

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,x,y;
	cin>>n>>x>>y;
	if(y%x==0){
		cout<<n-y/x;
	}else{
		cout<<n-y/x-1;
	}
}

y/x 如果不能整数 舍去小数 也可以算出小数后向上取整

例如:

9/4=2

9*1.0/4=2.25

ceil(9*1.0/4)=3

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,x,y;
	cin>>n>>x>>y;
	if(y%x==0){
		cout<<n-y/x;
	}else{
		cout<<n-ceil(y*1.0/x);
	}
}

floor ceil round

floor 向下取整
ceil 向上取整
round 四舍五入

例如:

cout<<ceil(2.5)<<endl;
cout<<floor(2.5)<<endl;
cout<<round(2.4)<<endl;
cout<<round(2.5)<<endl;

3
2
2
3

负数:

cout<<ceil(-2.5)<<endl;
cout<<floor(-2.5)<<endl;
cout<<round(-2.4)<<endl;
cout<<round(-2.5)<<endl;

-2
-3
-2
-3

posted @ 2022-02-25 15:03  new-code  阅读(89)  评论(0编辑  收藏  举报