建立动态数组,输入5个学生成绩,另外用一个函数检查其中有无低于60分的,输出不合格成绩

建立动态数组,输入5个学生成绩,另外用一个函数检查其中有无低于60分的,输出不合格成绩

一个实现,供参考:

#include <stdio.h>
#include <stdlib.h> //提供malloc原型 
//获取5个学生成绩输入 
int * getScores(){
    //为存储5个学生成绩分配内存空间,让一个int指针指向这块内存, 如果需要改为浮点数类型,可以进行相应修改 
    int * scores=(int *)malloc(5*sizeof(int)); 
    
    int i=0;
    //从输入获取5个学生成绩 
    while(i<5) {
        printf("请输入第%d个学生的成绩:",i+1);
        scanf("%d",&scores[i]);
        i++;
    }
    
    return scores;  //返回指向5个学生成绩的指针 
} 

//显示成绩不及格学生的信息 
void showNoPass(int * scores){
    
    int i=0;
    int nopass=0;
    while(i<5){
        //存在低于60分的成绩就打印信息 
        if(scores[i]<60){
            if(nopass==0){
                printf("低于60分的分数如下:\n");
            }
            printf("%d ",scores[i]);
            nopass++;
        }
        i++;
    }
    
    //不存在低于60分的成绩也输出提示信息,也可以删去下面这段代码 
    if(nopass==0){
        printf("没有分数低于60分的成绩。\n"); 
    } 
}

int main(void){
    
    //执行获取成绩输入的函数 
    int * scores =getScores();
    //执行显示成绩不合格学生的信息的函数 
    showNoPass(scores);
    
    return 0;
    
}

img