从零开始学习嵌入式----结构体struct和union习题回顾

一、 通过结构体和自定义函数实现成绩从大到小的排序,要求在主函数内定义结构体数组。

cs 复制代码
#include <stdio.h>
//定义一个结构体类型
typedef struct Student
{
    int age;
    char name[32];
    float score;
} STU;
//定义一个函数实现成绩从小到大的排序
void fun(STU *p, int num)
{
    //通过冒泡排序实现成绩从大到小的排序
    for (int i = 0; i < num - 1; i++)
    {
        for (int j = 0; j < num - 1 - i; j++)
        {
            if (p[j].score > p[j + 1].score)
            {
                STU t = p[j];//定义一个临时结构体变量实现参数的交换
                p[j] = p[j + 1];
                p[j + 1] = t;
            }
        }
    }
}
int main(int argc, char const *argv[])
{
    //在主函数内定义结构体数组
    STU stu[3] = {{1, "zhang", 23.5}, {2, "wang", 45.7}, {76, "li", 87.6}};
    STU *sp = stu;//定义一个结构体指针
    fun(sp, 3);//从小到大排序
    //打印输出数据
    for (int i = 0; i < 3; i++)
    {
        printf("%d %s %.2f\n", stu[i].age, stu[i].name, stu[i].score);
    }
    return 0;
}

二、 通过union联合体判断计算机是大端存储还是小端存储。

cs 复制代码
#include <stdio.h>
union demo
{
  int a;
  char b;
};

int main(int argc, char const *argv[])
{
  union demo d1;
  d1.a=0x12345678;
  printf("%#x\n",d1.b);//0x78
  return 0;
}
相关推荐
数模竞赛Paid answer1 小时前
2025年MathorCup数学建模A题汽车风阻预测解题文档与程序
算法·数学建模·mathorcup
candyTong6 小时前
一觉醒来,大模型就帮我排查完页面性能问题
前端·javascript·架构
魔术师Grace6 小时前
我给 AI 做了场入职培训
前端·程序员
Old Uncle Tom7 小时前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆7 小时前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移7 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
玩嵌入式的菜鸡7 小时前
网页访问单片机设备---基于mqtt
前端·javascript·css
前端一小卒7 小时前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
智者知已应修善业7 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
滑雪的企鹅.8 小时前
HTML头部元信息避坑指南大纲
前端·html