一、通过结构体和自定义函数实现成绩从大到小的排序,要求在主函数内定义结构体数组。
#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联合体判断计算机是大端存储还是小端存储。
#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;
}