我的项目是关于QT的成绩管理,所以我有一个'N‘学生的输入和每个学生的成绩,对于输出,我应该给出最大和最小的平均值。这是我写的代码:
#include "gestion_des_notes.h"
#include "ui_gestion_des_notes.h"
Gestion_Des_Notes::Gestion_Des_Notes(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Gestion_Des_Notes)
{
ui->setupUi(this);
ui->label_2->setVisible(false);
ui->line_Note->setVisible(false);
}
Gestion_Des_Notes::~Gestion_Des_Notes()
{
delete ui;
}
void Gestion_Des_Notes::on_pushButton_clicked(){
//hide the students total number request and show the point edit line and label
ui->label->setVisible(false);
ui->line_Enum->setVisible(false);
ui->label_2->setVisible(true);
ui->line_Note->setVisible(true);
//////////////////////////////////////////////////////////////////////////////
int N = ui->line_Enum->text().toInt();
int Num_Etud = ui->label_Etud->text().toInt();
float Note_list [N];
float Max = 0 ,Min = 9999,Sum = 0 ;
if (Num_Etud < N){
float Note = ui->line_Note->text().toInt();
Note_list[Num_Etud] = Note;
ui->label_Etud->setText(QString::number(Num_Etud+1));
}
//I think the Problem start here because every time i get a wrong max and min and average
else {
ui->pushButton->setEnabled(false);
ui->line_Note->setText("***");
for (int i=0 ; i <N ; i++){
Sum += Note_list[i];
if (Note_list[i] > Max) Max = Note_list[i];
if (Note_list[i] < Min) Min = Note_list[i];
}
ui->line_Max->setText(QString::number(Max));
ui->line_Min->setText(QString::number(Min));
ui->line_Moy->setText(QString::number(Sum/N));
}
}你能帮帮忙吗,因为我不知道问题出在哪里。我总是得到(指数式的东西或0)。
发布于 2017-11-13 01:43:05
在计算最小值、最大值和平均值时,数组Note_list包含随机值。您在if语句中填充此数组,但在else中使用它。
https://stackoverflow.com/questions/47251331
复制相似问题