c++ 一个void函数,打印两个用户给定数字之间的总和和平均值[关闭]

vptzau2j  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(112)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
18小时前关门了。
Improve this question
我尝试了下面的代码,但我最终得到的总和和平均值与20100相同:

#include <iostream>
using namespace std;

void gus(int num1, int num2) {
    int sum = 0, average = 0;
    for ( num1 ; num1 < num2 ; num1++ ) {
        sum = num2 *(num2 + 1) / 2;
        average = sum / (num2 - num1);
    }
    cout<<"The sum between these numbers is "<<sum<<endl;
    cout<<"The average between these numbers is "<<average<<endl;
}

int main() {
    int num1,num2;
    cin>>num1>>num2;
    gus(num1,num2);
    return 0;
}

个字符
我做错了什么?
我尝试让用户输入两个数字,然后从第一个数字到第二个数字进行循环,以获得用户给出的两个数字之间的所有数字。
我预计总数是15100,平均数是150。

2ledvvac

2ledvvac1#

代码中的问题在于你计算总和和平均值的方式。在for循环中,你在每次迭代中重新计算总和的方式并没有实际累加num1和num2之间的值。此外,你对平均值的计算是不正确的。这就是你如何从下面的代码中计算它的方法。

#include <iostream>
using namespace std;

void gus(int num1, int num2) {
    if (num1 > num2) {
        swap(num1, num2);
    }

    int sum = 0;
    for (int i = num1; i <= num2; i++) {
        sum += i;
    }

    // Calculate the average
    int count = num2 - num1 + 1; // Total numbers between num1 and num2, inclusive
    double average = static_cast<double>(sum) / count;

    cout << "The sum between these numbers is " << sum << endl;
    cout << "The average between these numbers is " << average << endl;
}

int main() {
    int num1, num2;
    cin >> num1 >> num2;
    gus(num1, num2);
    return 0;
}

字符串

相关问题