C 向现有代码中添加3个基本功能

C 向现有代码中添加3个基本功能,c,C,我有一个我一直在构建的成绩册程序,它运行良好,但现在我想在现有代码中插入3个新函数。我不能让我的大脑围绕着我需要采取的逻辑路径运转。我需要一个简单的方法也得到最高,最低,平均成绩打印在最后。这是我的节目 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define MAX_GRADE_COUNT 200 int main() { int grade[MAX_

我有一个我一直在构建的成绩册程序,它运行良好,但现在我想在现有代码中插入3个新函数。我不能让我的大脑围绕着我需要采取的逻辑路径运转。我需要一个简单的方法也得到最高,最低,平均成绩打印在最后。这是我的节目

#include <stdio.h>    
#include <stdlib.h>    
#include <ctype.h>    
#define MAX_GRADE_COUNT 200

int main() {
    int grade[MAX_GRADE_COUNT];
    int i;
    int count = 0;
    char continueResponse;

    printf("Welcome to Gradebooker!\n\n");
    for(i = 0; i < MAX_GRADE_COUNT; i++) {
        printf("Please enter grade (0-100): ");
        scanf(" %d", &grade[i]);
        count++;
        printf("Do you have more grades to enter?(Y/N): ");
        scanf(" %c", &continueResponse);
        if(toupper(continueResponse) != 'Y') {
            printf("\n >> Thank you for using Gradebooker! <<\n");
            break;
        }
    }
    printf("\n\nCurrent Gradebooker listings: \n\n");

    for(i = 0; i < count; i++) {
        printf("\t%5d\n", grade[i]);
    }

    return 0;
}
#包括
#包括
#包括
#定义最大等级计数200
int main(){
整数等级[最大等级计数];
int i;
整数计数=0;
连续反应;
printf(“欢迎使用成绩册!\n\n”);
对于(i=0;iprintf(“\n>>感谢您使用Gradebooker!我看不到您的所有代码(它似乎在底部被截断),但是获取C中的平均值、最大值和最小值的基本过程如下所示:

int running_total = 0;
int count_grades  = 0;
int max_so_far    = 0;
int min_so_far    = 999;
while( -1 ){ // infinite loop
    // get input (a grade)
    // if input is done, break
    count_grades++;
    running_total += iCurrentGrade; // (iCurrentGrade should be defined during input phase)
    if( iCurrentGrade > max_so_far ) max_so_far = iCurrentGrade;
    if( iCurrentGrade < min_so_far ) min_so_far = iCurrentGrade;
}
printf( "avg: %d  min: %d  max: %d\n", (int)(running_total / count_grades), min_so_far, max_so_far );
int-running_-total=0;
int count_grades=0;
int max_so_far=0;
int min_so_far=999;
而(-1){//无限循环
//获取输入(a等级)
//如果输入完成,则中断
计算分数++;
运行_total+=iCurrentGrade;//(iCurrentGrade应在输入阶段定义)
如果(iCurrentGrade>max_so_far)max_so_far=iCurrentGrade;
如果(iCurrentGrade
程序需要计算第二个循环中的最大值、最小值和平均值,如下所示:

int sum = 0;
int minimum = INT_MAX;
int maximum = 0;
for(i = 0; i < count; i++) {
    printf("\t%5d\n", grade[i]);
    sum += grade[i];
    if(grade[i] < minimum) minimum = grade[i];
    if(grade[i] > maximum) maximum = grade[i];
}
float average = (float)sum / count;
printf("min grade: %d\n", minimum);
printf("max grade: %d\n", maximum);
printf("average: %f\n", average);
int和=0;
最小整数=最大整数;
int最大值=0;
对于(i=0;i最大值)最大值=等级[i];
}
浮动平均=(浮动)总和/计数;
printf(“最低等级:%d\n”,最小值);
printf(“最大等级:%d\n”,最大值);
printf(“平均值:%f\n”,平均值);
最小值以大于列表中所有值的值开始(
INT\u MAX
例如,是
INT
可以采用的最大值)。然后,对于数组中的每个等级,如果它小于
最小值
变量中当前的等级,它将用该等级替换它。这样
最小值
最终将包含最小等级

最大值相同,但相反

对于平均值,它累加所有等级的总和(
sum
需要在开始时初始化为0),然后除以最后的等级数。这将在
average
中给出算术平均值


使用
float
,它将平均值计算为一个浮点数(因此平均值可以是非整数)。需要
(float)和/计数
,以便它首先将
转换为浮点数,并在其上进行浮点除法。否则,使用
和/计数
is将进行整数除法(返回一个向下舍入的整数),然后将其作为浮点值存储在
平均值
变量中。

查找最大值的方法是:首先声明一个变量(比如MAXX)存储最大值并以尽可能最小的值初始化,然后遍历数组,如果发现数组中的任何值大于MAXX变量的当前值,则使用该值更新MAXX的值


查找最小值的想法是:首先声明一个变量(比如MINN)来存储最小值,并用尽可能大的值初始化它,然后遍历数组,如果发现数组中的任何值大于MINN变量的当前值,则用该值更新MINN的值

求平均值的想法:将所有分数相加,然后将总和除以分数

请参阅下面的实现以更好地理解:

int max_grade = 0;//for storing maximum grade
/*
Minimum possible value should be initialize here.
Best option to write here is:
int max_grade = INT_MIN; 
But to use INT_MIN <limits.h> file must be included.
*/
int min_grade = 10000000;//for storing maximum grade
/*
Maximum possible value should be initialize here.
Best option to write here is:
int min_grade = INT_MAX; 
But to use INT_MAX <limits.h> file must be included.
*/
int total_grade = 0;//for counting all the grade
for(i = 0; i < count; i++) {
    if(grade[i] > max_grade){
        max_grade = grade[i];
    }
    if(grade[i] < min_grade){
        min_grade = grade[i];
    }
    total_grade += grade[i];
}
printf("Max grade = %d\n" max_grade);
printf("Min grade = %d\n" min_grade);
printf("Avg grade = %d\n" total_grade/count);
int max_grade=0;//用于存储最大坡度
/*
最小可能值应在此处初始化。
在此处书写的最佳选项是:
int max_grade=int MIN;
但要使用INT_MIN,必须包含文件。
*/
int min_grade=10000000;//用于存储最大坡度
/*
最大可能值应在此处初始化。
在此处书写的最佳选项是:
最小积分=最大积分;
但要使用INT_MAX,必须包含文件。
*/
int total_grade=0;//用于计算所有等级
对于(i=0;i最大等级){
最高等级=等级[i];
}
if(等级[i]<最低等级){
最低等级=等级[i];
}
总等级+=等级[i];
}
printf(“最大坡度=%d\n”最大坡度);
printf(“最低等级=%d\n”最低等级);
printf(“平均品位=%d\n”总品位/计数);

好的,请不要发布文本的图像或链接。阅读和可能会让您受益,或者您只会获得向下投票和“关闭”请求。提示:在发布之前在文本编辑器中准备问题。这样您就不会“丢失我的文本”"令人失望。关于MCVE,当您编辑、编译并运行要发布的代码时,请复制并粘贴它。最后,您的编译器是否根据您的代码图片工作?不!我们的也不工作。请参阅不要发布代码或错误的图像!这是格式化帮助:如果格式化帮助不能解决您将代码显示为错误的问题,请参阅格式化帮助文本,然后是的,请再次在此处键入所有文本。如果太长,则无论如何它都不是一个文本。或者将代码作为糟糕的字符块发布。相信我,这里的人更喜欢文本图片,有些人可能会帮你将其编辑成适当的格式。他们永远不会使用文本图片分机。在OP提出可接受的问题之前,请不要回答可关闭的帖子,并使用您的特权投票关闭