嵌入式学习(Day14)

本文介绍了如何使用C语言中的结构体、函数和条件判断来管理学生的学习情况,包括计算平均分、找出不及格和优秀学生的信息。
摘要由CSDN通过智能技术生成

有一个班的5个学生,有3门课程。 1、求第一门课的平均分; 2、找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分 3、找出平均分在90分以上或全部课程成绩在85分以上的学生。 分别编写三个函数来实现以上三个要求

#include<stdio.h>
struct student
{
	char name[32];
	int xue;
	int yv;
	int shu;
	int wai;
};

int getfirstpj(struct student *pj, int len)
{
	int i = 0;
	int sum = 0;
	for (i = 0; i <len; i++)
	{
		printf("%d ",pj[i].yv);
		sum += (pj[i].yv);
	}
	printf("yv平均成绩 = %d\n",sum/len);
	return 0;
}

int nopass(struct student *no, int len)
{
	int i = 0;
	int j = 0; 
	printf("不及格学生:\n");
	for (i =0; i < len; i++)
	{
		j = 0;
		if((no[i].yv) < 60) j++;
		if((no[i].shu) < 60) j++;
		if((no[i].wai) <60) j++;
		if(j > 1) {printf("name:%s xue: %d yv:%d shu:%d wai:%d ",no[i].name,no[i].xue,no[i].yv,no[i].shu,no[i].wai);
					printf("pj = %d\n",(no[i].yv+ no[i].shu+no[i].wai)/3);
				  }
	}
}

int youxiu(struct student *y, int len)
{
	printf("优秀学生:\n");
	int i = 0;
	for(i = 0; i <len; i++)
	{
		if((((y[i].yv+y[i].shu+y[i].wai)/3) >90) || ((y[i].yv > 85)&& (y[i].shu > 85)&& (y[i].wai > 85)))
		{
			printf("%s ",y[i].name);
		}
	
	}
	
	return 0;
}

int main()

1.结构体:
    1.结构体类型定义
    2.结构体变量的定义
    3.结构体元素的访问
    4.结构体的存储:
        内存对齐:
            char   按照1字节对齐
            short  按照2字节对齐
            int    按照4字节对齐
            double 按照4字节对齐

        结构体整体的大小必须为最大基本类型长度的整数倍
    5.结构体作为函数参数
        练习:定义一个学生的类型,封装一个函数GetStuInfo获得学生信息放入结构体中,
            再封装一个函数PutStuInfo打印学生信息
                struct student 
                {
                    char name[32];
                    char sex;
                    int age;
                    int score;
                };

    6.结构体数组:
        struct student s[5];

2.共用体:
    union 共用体名 
    {
        数据类型1 成员变量1;
        数据类型2 成员变量2;
        数据类型3 成员变量3;
        ...
    };

    共用体所有成员变量共享同一片空间

    内存大小端:
        1.内存小端:
            内存低地址存放低数据位
            内存高地址存放高数据位

        2.内存大端:
            内存低地址存放高数据位
            内存高地址存放低数据位

3.枚举:
    enum 枚举类型名 
    {
        枚举常量1,
        枚举常量2,
        枚举常量3,
        ..
    };

    1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值
    2.枚举常量的值总是前一个枚举常量的值+1,第一个默认为0值
    3.枚举常量默认为int类型,可以直接在程序中使用

4.位运算运算符:
    &   按位与
    |   按位或
    ^   按位异或        相同为0 相异为1
    ~   按位取反
    >>  右移            右移n位 等价于 让该数 / 2^n 
    <<  左移            左移n位 等价于 让该数 * 2^n 

    与0得0
    或1置1
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值