14 solutions
-
2
由于存储方式,浮点数表达大数或者某些小数有精度误差,输出可能用科学计数法浮点类型(float、double)在内存中如何存储?-腾讯云开发者社区-腾讯云
int 4 个字节 -2,147,483,648 到 2,147,483,647(231-1) long long 8 个字节 -9,223,372,036,854,775,807 到 9,223,372,036,854,775,807 (263-1) float 4 个字节 +/- 3.4e +/- 38 (~7 个数字)(大约提供7位十进制有效数字) double 8 个字节 +/- 1.7e +/- 308 (~15 个数字) A1061 求整数的和与均值
分析题目数据范围,读入n(1≤n≤10000)个整数,每个整数的绝对值均不超过10000。所以加法求和最多9位数字,int就足够。
int sum = 0; for (int i = 1; i <= n; i++) { cin >> t; sum += t; }
但为了处理均值小数很多同学想用double(乘除法时确实容易产生移位溢出所以用浮点数,这题求和最多九位有效数字杜绝了float可能)。
但是double在面对输出31256427会处理成3.12564e+007,我们需要强制输出格式。
double sum = 31256427; cout<<sum<<endl<<fixed<<setprecision(0)<<sum<<endl; //3.12564e+007 //31256427仅保留一位小数即可
-
1
#include <bits/stdc++.h> using namespace std; int main(){ int a,n; double b=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a; b+=a; } //cout<<b<<" "; printf("%.0lf ",b); printf("%.5lf",b/n); }
#include <bits/stdc++.h> using namespace std; int main(){ int a,n; double b=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a; b+=a; } //cout<<b<<" "; printf("%.0lf ",b); printf("%.5lf",b/n); }
-
-3
A1061. 求整数的和与均值
什嚒水题首先,利用for循环做输入部分,并累加到一个新的变量中
模板:
for(int i=0;i<n;++i) { cin>>a; sum+=a; }
模板中的sum储存各数的和,利用加法赋值
+=
进行累加最后,计算各数平均值,用和除以个数即可
模板:
avg=(double)sum/n;//强制类型转换获得小数
保留小数输出模板:
printf("%.位数f",一个float变量);
或
printf("%.位数lf",一个double变量);
或者不用double,直接转化
printf("%.位数lf",sum*1.0/n);
或
printf("%.位数lf",double(sum)/n);
完整代码懂的都懂(qwq)
愣着干啥?写代码去!
- 1
Information
- ID
- 549
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 511
- Accepted
- 121
- Uploaded By