• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

输入学号,名字,年龄进行排序。(可控人数)(结构体)利用年龄进行排序。

#include <stdio.h>
#include <math.h>
#include <string.h>
#define N 5


typedef struct student
{
  char num[10];
  char name[20];
  int age;
}stu;

void swap_student(stu *a, stu *b)
{
	stu tmp;
	tmp = *a;
	*a = *b;
	*b = tmp;
}

void sort_soap(struct student list[], int len)
{
    int i, j;
    for (j = 0; j < len-1; j++) 
	{
        for (i = 0; i < len-j-1; i++) 
		{
            if (list[i].age > list[i+1].age) 
			{
				//交换相邻的两个数
				swap_student(&list[i], &list[i + 1]);
			}
		}
    }
}

void main(void)
{
	//初始化数据
	int i;
	int x;
	stu list[128];
	printf("输入想要进行排序的人数:");
	scanf("%d",&x);
	for(i=0;i<x;i++)
		scanf("%s%s%d",&list[i].num,&list[i].name,&list[i].age);
	//排序
    sort_soap(list, x);

	//打印
    for(i = 0; i < x; ++i) {
        printf("%s %s %d\n",list[i].num, 
			list[i].name, list[i].age);
    }
}

 

posted on 2022-04-12 20:03  王陈锋  阅读(95)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3