是否可以在 for 循环中添加两个浮点数?

Is it possible to add two float inside the for loop?

我正在用 C++ 创建一个简单的成绩计算器,我只是 C++ 的新手,我正在练习它,但是我的方法或代码有问题,希望你能帮助我和这个一起出去。我不知道是否可以在 for 循环方法中添加用户输入(使用浮点数)并将其打印出来。谢谢你,新年快乐!

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    float sum = 0.00, avg, grades [10], i;

    cout << "\n Enter your grades on each subject\n";
    cout << "-----------------------------------------------";
    cout << "\n Chemistry for Engineers Laboratory: ";
    cin >> grades [0];
    cout << "\n Chemistry for Engineers: ";
    cin >> grades [1];
    cout << "\n Computer Aided Drafting: ";
    cin >> grades [2];
    cout << "\n Calculus";
    cin >> grades [3];
    cout << "\n Kontekstwalisadong Komunikasyon sa Filipino at sa Iba't-ibang Larangan: ";
    cin >> grades [4];
    cout << "\n Science Technology and Society: ";
    cin >> grades [5];
    cout << "\n Mathematics in the Modern World: ";
    cin >> grades [6];
    cout << "\n Movemement Enhancement (Physical Education): ";
    cin >> grades [7];
    cout << "\n Readings in Philippine History: ";
    cin >> grades [8];
    cout << "\n Undertanding the Self: ";
    cin >> grades [9];

    for ( i = 0; i < 10; i++) {
        printf ("%.1f + %.1f\n", sum , avg, sum+avg);
    }
    cout << "----------------------------------------";
    cout << "Total Grade: " << sum;
    avg = sum / 10;
    cout << "\n GWA: " << avg;
    cout << "\n Rating: ";

    if ( avg > 1.00) {
        cout << "Excellent";
    } else if ( avg > 3.00 && avg <= 2.00) {
        cout << "Passed";
    } else if ( avg > 4.00 && avg <= 3.00) {
        cout << "Conditional Passing";
    } else {
        cout << "Failed";
    }
    return 0;
}

您不能使用 printf 来计算成绩总和。您可以使用循环来计算 sum,如下所示:

for (i = 0; i < 10; i++) {
  sum = sum + grades[i];
}

printf 是将格式化输出发送到标准输出(您的屏幕)的库函数。

这可能会解决您的问题。

for(int i=0;i<10;++i)
{
    sum += grades[i];
    avg = sum / (i+1);
    printf ("After adding lecture %u --> sum: %.1f + average: %.1f\n", i+1,sum , avg);
}
  1. printf 的意思是将结果写入 stdout.
  2. 等级评估的条件检查不正确平均等级超过 1.0 被视为优秀

下面的代码片段显示了 for-loop

的正确用法
    #include <vector>
    #include <string>
    #include <array>
    #include <iostream>

    int main()
    {
        std::vector<float> grades;
        const std::vector<std::string>  subjects = {
            "Chemistry for Engineers Laboratory",
            "Chemistry for Engineers", 
            "Computer Aided Drafting",
            "Calculus",
            "Kontekstwalisadong Komunikasyon sa Filipino at sa Iba't-ibang Larangan"
            //Extend the subjects
        };

        int TotlaSubject = subjects.size();

        std::cout << "\n Enter your grades on each subject\n";
        std::cout << "-----------------------------------------------\n";
        for (int i = 0; i < TotlaSubject; i++)
        {
            std::cout << subjects[i] << " : ";
            float InputGrade;
            std::cin >> InputGrade;
            grades.push_back(InputGrade);
//          ^^^^^ here pushing data into the in a loop
        }

        float total =0.0;
        for (auto grade : grades){
            total += grade;  //Adding grades in a loop
         }

        float avg = total / grades.size();
        std::cout << "Total : " << total << " Avg : " << avg << std::endl;        
        return 0;
    }