level 1
thermeter
楼主
#define MAX 100
#include<stdio.h>
#include<string.h>
#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
#define COMPARE(x,y) ((x)<(y)?-1:(x)==(y)?0:1)
struct student
{
char Sname[20];
int Snumber;
int Sroom;
};
int n;
/*姓名排序*/
void Name_Sort(struct student stu[],int n)
{
int num=n;
int i,j;
char Name[20];
struct student temp;
for(i=0;i<num;i++){
strcpy(Name,stu[i].Sname);
for(j=i+1;j<num;j++) {
if(strcmp(stu[j].Sname,Name)>0){
strcpy(Name,stu[j].Sname);
SWAP(stu[i],stu[j],temp);
}
}
}
}
/*按姓名输出*/
void Name_Prin(struct student stu[])
{
int i;
for(i=0;i<n;i++)
printf("%s\t%s\t%d\n",stu[i].Sname,stu[i].Snumber,stu[i].Sroom);
}
/*按姓名查找*/
int Name_Search(struct student stu[],char Name[],int n)
{
int left, right, mid;
left=0;
right=n-1;
while(left<=right){
mid=(left+right)/2;
switch(COMPARE(stu[mid].Sname,Name)){
case -1:
left=mid+1;
break;
case 0:
return mid;
case 1:
right=mid+1;
break;
}
}
return 0;
}
/*学号排序*/
void Number_Sort(struct student stu[],int n)
{
int num=n;
int i,j;
int number;
struct student temp;
for(i=0;i<num;i++){
number=stu[i].Snumber;
for(j=1;j<num-i;j++){
if(stu[j].Snumber>number){
number=stu[j].Snumber;
SWAP(stu[i],stu[j],temp);
}
}
}
}
/*按学号输出*/
void Number_Prin(struct student stu[])
{
int i;
for(i=0;i<n;i++)
printf("%s\t%d\t%d\n",stu[i].Sname,stu[i].Snumber,stu[i].Sroom);
}
/*按学号查找*/
int Number_Search(struct student stu[],int Number,int n)
2010年01月26日 03点01分
1
#include<stdio.h>
#include<string.h>
#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
#define COMPARE(x,y) ((x)<(y)?-1:(x)==(y)?0:1)
struct student
{
char Sname[20];
int Snumber;
int Sroom;
};
int n;
/*姓名排序*/
void Name_Sort(struct student stu[],int n)
{
int num=n;
int i,j;
char Name[20];
struct student temp;
for(i=0;i<num;i++){
strcpy(Name,stu[i].Sname);
for(j=i+1;j<num;j++) {
if(strcmp(stu[j].Sname,Name)>0){
strcpy(Name,stu[j].Sname);
SWAP(stu[i],stu[j],temp);
}
}
}
}
/*按姓名输出*/
void Name_Prin(struct student stu[])
{
int i;
for(i=0;i<n;i++)
printf("%s\t%s\t%d\n",stu[i].Sname,stu[i].Snumber,stu[i].Sroom);
}
/*按姓名查找*/
int Name_Search(struct student stu[],char Name[],int n)
{
int left, right, mid;
left=0;
right=n-1;
while(left<=right){
mid=(left+right)/2;
switch(COMPARE(stu[mid].Sname,Name)){
case -1:
left=mid+1;
break;
case 0:
return mid;
case 1:
right=mid+1;
break;
}
}
return 0;
}
/*学号排序*/
void Number_Sort(struct student stu[],int n)
{
int num=n;
int i,j;
int number;
struct student temp;
for(i=0;i<num;i++){
number=stu[i].Snumber;
for(j=1;j<num-i;j++){
if(stu[j].Snumber>number){
number=stu[j].Snumber;
SWAP(stu[i],stu[j],temp);
}
}
}
}
/*按学号输出*/
void Number_Prin(struct student stu[])
{
int i;
for(i=0;i<n;i++)
printf("%s\t%d\t%d\n",stu[i].Sname,stu[i].Snumber,stu[i].Sroom);
}
/*按学号查找*/
int Number_Search(struct student stu[],int Number,int n)