ช่วยตรวจสอบโค้ดให้หน่อยค่ะ oop in c++

กระทู้คำถาม
ต้องออกตัวก่อนว่าไม่ได้เรียนสายไอที แล้วก็งายโค้ดดิ้ง โปรแกรมมิ่งไม่ใช่อาชีพที่อยากทำเลยค่ะ แต่เจ้าตัววิชา oop in c++ ดันเป็นวิชาที่ต้องเรียนนี่สิ แล้วทีนี้มีการบ้านมา นอนตีสามเพราะการบ้านนี้มาสามคืนแล้วค่ะ หาเออเร่อไม่ได้ คอมไพล์ไม่ผ่าน ไม่รู้ทำไม
ข้อแรกค่ะ

#include <fstream>
#include <iostream>
#include <cmath>
#include <algorithm> // std::max
#include <string>
using namespace std;

int main()
{
    ifstream infile("num.txt");
    float num;
    float total = 0.0f;
    unsigned int count = 0;

    float sumDiffSqr;
    float stdDev;

    float sum = 0, max = 0, min = 0;

// While infile successfully extracted numbers from the stream
    while (infile >> num)
        {
            total += num;
            ++count;
            sum += num;

        if (min > num) min = num;
        if (max < num) max = num;
        }
// don't need the file anymore, close it
        infile.close();

// test to see if anything was read (prevent divide by 0)
    if (!count) {
    std::cerr << "Couldn't read any numbers!" << std::endl;
    return 1;
    }

// give the average

sumDiffSqr = 0.;

for (num = 0; num < count; num++)
    {
        sumDiffSqr = sumDiffSqr + pow((num - (total / count)), 2);
    }

    stdDev = sqrt(sumDiffSqr/count);

    std::cout << "The average is: " << total / count << std::endl;
    std::cout << "The maximum is: " << max << std::endl;
    std::cout << "The minimum is: " << min << std::endl;
    std::cout << "The standard deviation is: " << stdDev << std::endl;
    std::cout << "" << std::endl;
    std::cout << "Press any key to continue... " << std::endl;

    // pause the console
    std::cin.sync();
    std::cin.get();
    getchar();
    return 0;
}
เป็นโปรแกรมอ่านข้อมูลจากไฟล์ที่เป็นตัวเลข รับค่าได้ไม่จำกัด จากนั้นคำนวณหาค่า max min sd mean

สำหรับอันนี้ ตอนแรกเออเร่อคือเปิดไฟล์ไม่ได้เลย เลยลองลบบรรทัดนี้ไปค่ะ
// test to see if anything was read (prevent divide by 0)
    if (!count) {
    std::cerr << "Couldn't read any numbers!" << std::endl;
    return 1;
    }
ปรากฏว่ารันได้ แต่ข้อมูลตรงค่า min เป็น The minimum is 0 ทั้งๆ ที่ไฟล์ข้อมูลไม่มี 0 ค่ะ

ข้อสอง ให้เขียนโปรแกรมที่รับข้อมูลผ่านไฟล์ txt โดยให้แสดงผลออกมาทางหน้าจอ จากนั้นก็ให้คิดเกรดเฉลี่ยรวมของข้อมูลนั้นโดยให้ต่อท้ายข้อมูลเดิม
#include <iostream>
#include <fstream>
#include<iomanip>
using namespace std;

int main()
{
    int array_size = 500;
    char * array = new char[array_size];
    int position = 0;
    float g1, cr, gpa;

    g1 = (1*4*6)+(0.5*4*4)+(0.5*3)+(2*4)+(1.5*3.5)+(1.5*3)+(1.5*4);
    cr = (1*6)+(0.5*5)+(1.5*3)+2;
    gpa= g1/cr;

    ifstream fin("student2.txt");

    if(fin.is_open())
    {
        while(!fin.eof() && position < array_size)
        {
            fin.get(array[position]);
            position++;
        }
        array[position-1] = '\0';

        for(int i = 0; array[i] != '\0'; i++)
        {
            cout << array[i];
        }

        cout << setprecision(2)<<fixed;
        fstream myFile;
        myFile.open("studentGPA.txt", ios::in);
        myFile << "Your gpa is " << gpa << endl;
        myFile.close();

    }
    else
    {
        cout << "File could not be opened." << endl;
    }
    return 0;

}
อันนี้รันไม่ขึ้น gpa ที่คำนวณให้ค่ะ
รบกวนหน่อยนะคะ ขอบคุณมากน้าา
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่