微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

今天困扰着我的C ++

如何解决今天困扰着我的C ++

正确的解决方案是什么? 什么是正确的解决方案? 正确的解决方法是什么?

我的代码(显然是错误的):

<iostream><fstream>包括在内。

int main() {

    int num = 0;
    int totalCount = 0;
    std::ifstream inFile;
    double average = 0.0;
    int totalTwo = 0;
    double total = 0.0;
    const double VALUE_ONE = 858.5;

    std::cout << "What is the number?  ";
    std::cin >> num;
    std::cout << std::endl;

    inFile.open("numbers.txt");
    while (inFile >> num) {

        totalCount += num;
    }

    total =  num * VALUE_ONE;
    average = total/totalCount;
    totalTwo = total * num;

   

    inFile.close();

    return 0;
}

numbers.txt

解决方法

执行此操作时:

std::cin >> num;
std::cout << std::endl;

inFile.open("numbers.txt");
while (inFile >> num) {

    totalCount += num;
}

您正在读num,然后立即用输入文件中的数据覆盖它。为两个输入使用两个变量。

,

您的代码与指令中所说的不符。

您正在将用户选择的乘数读入num,然后又将文本文件中的数字读入num,从而丢失了乘数。而且,您没有跟踪从文件中读取多少个数字,这是计算average所需要的。

您需要在代码中添加更多变量以分隔内容。另外,根本不需要VALUE_ONE常量。

尝试更多类似的方法:

#include <iostream>
#include <fstream>

int main()
{
    int multiplier = 0;
    int total = 0,totalTwo = 0;
    int quantity = 0;
    int num = 0;
    double average = 0.0;

    std::cout << "After all numbers are read,what number would you like to multiply the total by?  ";
    std::cin >> multiplier;
    std::cout << std::endl;

    std::ifstream inFile("numbers.txt");

    while (inFile >> num) {
        total += num;
        ++quantity;
    }

    inFile.close();

    average = double(total) / quantity;
    totalTwo = total * multiplier;

    std::cout << "Total = " << total << "\n" << "Average = " << average << "\n" << "Total * " << multiplier << " = " << totalTwo;

    return 0;
}

Live Demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。