对于学生成绩的封装(数组学习的总结)

对于学生成绩的封装(数组学习的总结)
一,对于数组内容的汇总
1. 没有初始化的数组,仅申请了100个整型数的内存空间,最好要初始化。
eg:int array[100]={0}

2. 如果数组中三个元素,那么分别用小标法来访问。
eg:array2[0] / 1
array2[1] /2
array2[2] /3

3. 数组中的括号【】只有定义一个数组的时候,才能表示大小,其余任何情况,都表示用下表法来标记访问数组。
4. 数组 是什么?

  • (1)数组是数据的集合
    (2)数组的数据是同类型的
    (3)数组地址是连续

5. 形式参数中,虽然写的是一个数组的样子,中括号中数组的大小是无效的。
eg:void arrayPrintf(int datas[3],int cnt)

6. C语言中的cnt的含义

  • (1)假设,cnt=8,则printf(“cnt=%d\n”,cnt) 的意思就是printf(“cnt=8\n”),\n的意思是换行,该语句的执行结果是在屏幕上输出cnt=8,然后换行。

7. 为什么需要数组?

  • (1)协议
  • (2)只需要大量数据不关心数字名称的时候
    eg:计算0~100数据和
  • (3)学生成绩管理
  • (4) 地址连续

8. 数组的基本使用

  • (1)数组的定义:类型;数组名;数组大小;int array [10]
  • (2)循环的方式遍历数组

9. 数组和函数

  • 实际参数的表示方式
    • (1)数组当作参数,传递的是数组的首地址
    • (2)第一个数组元素的地址
    • (3)数组名

二. 学生成绩封装

#include <stdio.h>
#include <stdlib.h>
void  intscores(int datas[],int size)
{
      int i;
      
        for(i=0;i<size;i++){  // 0 1 2 3 4 5 6 7 8 9
        
        //2.1.提示用户输入第多少个数
            printf("请输入第%d个学生的分数: \n",i+1);
       //2.2.获取用户的输入scanf
            scanf("%d",&datas[i]);
            if(datas[i]>100 || datas[i]<0){  //判断成绩 ,||代表的是或者的意思
               printf("你好恶心,哪里有这种神奇的分数\n");
               printf("退出程序,我的程序不给傻逼用\n");                
               system("pause");  
               exit(-1);  //退出程序
            }
     }
}    

2.1 这一段代码 主要定义了datas和size这两个函数

void printfScores(int datas[],int size)
{
     int i;
     
      for(i=0;i<size;i++){
        printf("第%d个学生的成绩是:%d\n",i+1,datas[i]);
    }	

    
}    

2.2 提示用户输入成绩

int  getMax(int datas[],int size)
{
      int i;
      int max;
      max = datas[0];
     
     for(i=0;i<size;i++){
        //printf("第%d个数据是:%d\n",i+1,scores[i]);
        if(max < datas[i]){
          max = datas[i];
        }
     }
     printf("考最高分的是:%d\n",max); 
     return max;
}    



int  getMin(int datas[],int size)
{
     int i;
     int min;
     min = datas[0];
     
     for(i=0;i<size;i++){
        //printf("第%d个数据是:%d\n",i+1,scores[i]);
        if( min  > datas[i]){
            min  = datas[i];
        }
     }
     printf("考最低分的是:%d\n",min); 
     return min;
}    

float  getAverage(int datas[],int size)
{
     int i;
     int total = 0; 
     float average;
     average = datas[0];
     
      for(i=0;i<size;i++){
          //total += datas[i];
          total =total+datas[i];
      }
      
      //5.2.求平均值
        average = (float)total/10;
        
      //6.输出结果
        printf("学生的平均成绩是:%f\n",average);  
     
     return average;
}    

2.3 这段代码主要注意int函数和float函数的使用区别

  • int型函数返回整型数据
  • void是不返回任何数据的
  • 一定写完后要检查那些数据是用返回值的那些是没有的
int main()
{
	int scores[10];
    int len;
    int max;
    int min;
    float average;
    
    len = sizeof(scores)/sizeof(scores[0]); //数据大小
    //1.初始化数组
    intscores(scores, len);
    //1.1打印数据
    printfScores(scores, len);
    //2.找到最高分
    max = getMax(scores,len);
    //3.找到最低分
    min = getMin(scores,len);
    //4.算出平均分
    average = getAverage(scores,len);
    //5.输出结果
    
	system("pause");
	return 0;
}

最后的main函数可以清晰的看到这个代码的过程

  • 首先确定数据大小,其次定义分数

三.总结

  • 学到数组这一部分可以对于简单代码进行一个封装, 掌握了函数和数组的结合,接下来继续学习指针部分

师承上官可编程 陈立臣老师

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值