帮忙解释下这个顺序存储结构

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:01:13
#include <stdio.h>
#include <stdlib.h>
#define max 50
int N=0;
struct student {
char name[50];
int num;
};
void reorder(student str[])
{
student temp;
for(int i=0;i<N;i++)
{
for(int j=i;j<N;j++)
{
if(str[i].num>str[j].num)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
printf("reorder string is:\n");
for(i=0;i<N;i++)
{
printf("%s,%d\n",str[i].name,str[i].num);
}
}
void findout(student str[],int n)
{
int low,hight,avg;
int flag=0;
low=0;
hight=N-1;
while(str[low].num<str[hight].num)
{
avg=(hight-low)/2;
if(n==str[avg].num)
{
printf("Find the student's name is:%s\n",str[avg].name);
flag=1;
break;
}

#include <stdio.h>
#include <stdlib.h>
#define max 50 //常数声明
int N=0;
struct student {
char name[50];
int num;
}; //结构声明

void reorder(student str[]) //过程声明
{
student temp; /定义temp 变量为 student 类型

for(int i=0;i<N;i++)
{
for(int j=i;j<N;j++)
{
if(str[i].num>str[j].num)
{
temp=str[i];
str[i]=str[j];
str[j]=temp; //以上三句实现str[i]、str[j]值的对换
}
}
}
//两个循环实现对结构str中所有数据遍历访问,并按str中num的值从小到大排列(下沉法)

printf("reorder string is:\n");
for(i=0;i<N;i++)
{
printf("%s,%d\n",str[i].name,str[i].num);
}
}
//打印结构体中所有数据

void findout(student str[],int n)
{
int low,hight,avg;
int flag=0;
low=0;
hight=N-1;
while(str[low].num<str[hight].num)
{
avg=(hight-low)/2;
if(n==str[avg].num)
{
printf(