【问题标题】:Displaying grades in a graph在图表中显示成绩
【发布时间】:2014-10-06 01:46:14
【问题描述】:

我应该在图表中显示成绩,显示每个区间 0-10、10-20、20-30 等中有多少成绩。通过在区间中为每个成绩添加 *。我唯一的问题是,当数组 grade[] 有 1、2、3 或 5 个插槽时,它会在 0-10 间隔中放置一个额外的 *。它适用于所有其他数量的插槽。

void sort_grades(int grades[],int students) 

    cout << endl << endl;
    cout << " THE GRADES GRAPH"<< endl;
    cout << "=============================="<<endl;

    const int max_grade = 100;
    const int interval=10;

    for (int j = 0; j < max_grade; j+=10)
    {
        cout << j << " - " << (j+interval) << " : ";

        for (int k = 0; k <= students; k++)
        {
            if (j==90 && grades[k] ==(j+interval)  )
            {
                cout<< "*";
            }
            else if (grades[k] < (j+interval) && grades[k] >= j)
            {
                cout<< "*";
            }
        }
        cout << endl;
    }

【问题讨论】:

  • 您是否尝试在调试器中运行您的代码?

标签: c++ paragraph


【解决方案1】:

我假设students 是数组grades[] 的大小。

在这种情况下,您在以下循环中访问了太多元素:

for (int k = 0; k <= students; k++)

该行应改为:

for (int k = 0; k < students; k++)

此问题不会仅在 grade[] 的大小为 1、2、3 或 5 的情况下发生。您只能看到该大小的问题,因为输出取决于数组的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多