从零开始学习嵌入式----结构体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;
}
相关推荐
子兮曰6 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰6 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
倒头就睡的小比特6 小时前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!6 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万6 小时前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝6 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋7 小时前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
猎头南楼7 小时前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
卡布鲁7 小时前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
旖旎夜光8 小时前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控