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



我正在用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 subjectn";
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 + %.1fn", 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是一个库函数,可将格式化的输出发送到标准输出(您的屏幕(。

printf旨在
  1. 将结果写入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 subjectn";
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;
}

这可能会解决您的问题。

for(int i=0;i<10;++i)
{
sum += grades[i];
avg = sum / (i+1);
printf ("After adding lecture %u --> sum: %.1f + average: %.1fn", i+1,sum , avg);
}

最新更新