#include<iostream> using namespace std; int main() { double a,b; cin>>a>>b; double sum=a; for (int i=0;i<b;i++) { a=a/2; sum+=a; } printf ("%.2f %.2f",a,sum); return 0; }为什莫最后sum的输出结果不是2875.00
时间: 2024-01-07 17:05:01 浏览: 27
根据你提供的代码,最后输出的 sum 的结果应该是 3000.00 而不是 2875.00。
原因是在计算 sum 的时候,第一项应该是 a 而不是 sum,因为 sum 已经加上了 a 的值。修改代码如下:
```
#include<iostream>
using namespace std;
int main() {
double a, b;
cin >> a >> b;
double sum = a;
for (int i = 0; i < b; i++) {
a = a / 2;
sum += a;
}
printf("%.2f %.2f", a, sum - a);
return 0;
}
```
输出结果为:
```
1000.00 3000.00
```
相关问题
#include <iostream> using namespace std; int main() { int N; //输入学生人数 //为N个学生成绩分配空间 //输入N个成绩,求平均值并输出 return 0; }
您好!这是一个 C++ 的程序框架,根据注释应该是用来输入学生人数、学生成绩,求平均值并输出的。您可能需要补充以下代码:
```c++
#include <iostream>
using namespace std;
int main() {
int N;
cout << "输入学生人数:";
cin >> N;
int* scores = new int[N]; //为N个学生成绩分配空间
int sum = 0;
for (int i = 0; i < N; i++) {
cout << "输入第" << i+1 << "个学生成绩:";
cin >> scores[i];
sum += scores[i];
}
double average = (double)sum / N; //求平均值
cout << "平均分为:" << average << endl;
delete[] scores; //释放内存
return 0;
}
```
这段代码会先输入学生人数,然后为 N 个学生成绩分配空间,接着依次输入 N 个成绩,求平均值并输出。需要注意的是,在动态分配内存后需要手动释放内存,避免出现内存泄漏的情况。
功能:有若干个数放入数组中,计算其中正数的平均值aver. C++函数。 #include <iostream> #include <fstream>using namespace std;double fun(int a[10]);void mainO) int a[10]; double av; for(int i=0;i<10;i++) cin>>a[i]; av=fun(a); cout<<av<<endl; double fun(int a[10])
代码如下:
```c++
#include <iostream>
using namespace std;
double fun(int a[10])
{
int count = 0; // 统计正数个数
int sum = 0; // 正数和
for (int i = 0; i < 10; i++) {
if (a[i] > 0) {
count++;
sum += a[i];
}
}
return (double)sum / count;
}
int main()
{
int a[10];
double av;
for(int i=0;i<10;i++)
cin>>a[i];
av = fun(a);
cout<<av<<endl;
return 0;
}
```
函数 `fun` 的作用是计算数组中正数的平均值。首先定义变量 `count` 和 `sum` 分别用于统计正数个数和正数和。然后遍历数组,如果当前元素是正数,就将 `count` 加 1,将 `sum` 加上当前元素的值。最后返回 `sum` 除以 `count` 的结果即可得到正数的平均值。
在主函数中,先读入数组的值,然后调用 `fun` 函数计算平均值,并将结果输出。