c - 显示分数以及每个分数获得的次数

标签 c arrays count

我的名字是 Adriel,是该网站和编程的新手。无论如何,我的任务需要一些帮助和指导。我将用 C 创建一个程序,允许用户输入最多 5000 个考试成绩。然后给用户 5 个选项,分别是获取平均成绩、从高到低显示所有考试、将考试曲线向上 5 或向下 5 AND 我不能做的就是显示分数以及获得分数的次数。

这是我的代码:

main() {

    //Declared variables
    char choice;
    int i, j, a, n;
    int examScore = 0, HIGH = 0, LOW = 0, AVG = 0, count = 0, sum = 0, scoreCount = 0;
    int highlow[5000], highExam, lowExam;

    do{//Begin do while #1
        CLS;
        FLUSH;
        printf("=========================\n");
        printf("===== Score program =====\n");
        printf("=========================\n");
        printf("A. Exam scores\n");
        printf("B. Exams average\n");
        printf("C. Exam score High - Low\n");
        printf("D. Times scores obtained\n");
        printf("E. Curved up 5 pts\n");
        printf("F. Curved down 5 pts\n");
        printf("Q. Exit program\n");
        printf("=========================\n");
        printf("Enter your choice: ");
        scanf(" %c", &choice);
        choice = toupper(choice);
        switch (choice){//Begin switch
        case 'A':
            CLS;
            printf("Please Enter The Number of exams:\n");
            scanf("%d", &n);

            printf("Please Enter %d Numbers\n", n);
            for (i = 0; i < n; i++){
                scanf("%d", &highlow[i]);
            }//end for loop
            highlow[examScore];
            count++;
            sum = sum + examScore;
            AVG = sum / count;
            highExam = examScore + 5;
            lowExam = examScore - 5;
            CLS;
            for (i = 0; i < n; i++)
            {
                for (j = i + 1; j<n; ++j)
                {
                    if (highlow[i]<highlow[j])
                    {
                        a = highlow[i];
                        highlow[i] = highlow[j];
                        highlow[j] = a;
                    }
                }
            }


            PAUSE;
            break;

        case 'B':
            CLS;
            printf("Exam average is: %i\n", AVG);
            PAUSE;
            break;

        case 'C':
            CLS;
            printf("The numbers arranged in descending order are given below\n");

            for (i = 0; i < n; ++i)

            {

                printf("%i\n", highlow[i]);
            }
            PAUSE;
            break;

        case 'D':
            CLS;
            printf("Amount of times scored was obtained: %i-%i\n", examScore, count);
            PAUSE;
            break;

        case 'E':
            CLS;
        //  printf("Exam scores curved up by 5 pts: %i\n", highExam);
            PAUSE;
            break;

        case 'F':
            CLS;
        //  printf("Exam scores curved down by 5 pts: %i\n", lowExam);
            PAUSE;
            break;

        case 'Q':
            CLS;
            printf("Quitting program. Goodbye.\n");
            PAUSE;
            break;

        default:
            printf("- Invalid entry -\n");
            PAUSE;
            break;

        }//End switch

    } while (choice != 'Q');//End do while #1


}//End main

正如你所见,我还远远没有完成,但其他部分对我来说并不是一个大问题。任何帮助和建议将不胜感激。

最佳答案

为什么计算每个分数在 highlow 中出现的次数这么困难?数组?

我正在考虑一种不同的方法,直到我注意到您有一个已排序的分数数组,因此任何重复的分数将彼此相邻。查看 highlow[0] 的值应该很容易。然后将其与 highlow[1] 进行比较看看是否 highlow[0]是重复的。您只需这样做,直到发现下一个不是重复的,然后开始查找下一个数字的重复。

关于c - 显示分数以及每个分数获得的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460994/

相关文章:

facebook-graph-api - 如何计算 iOS sdk 中 Facebook 好友的数量?

c - fgets() 在 C 中无法正常工作

c - 使用 exec() 函数在 C 中调用 Linux 命令

c - 返回结构

c - qsort 反转字符串的顺序

r - 计算R中的一组变量中值的出现次数(每行)

C boolean 无效值处理

java - 可变长度参数可以替代一维数组吗?

php:将数组与 mysql 结果合并并按数组键对它们进行排序

python - 如何计算列表python,django中元素的重复