(2013-4-1)数据结构实验一:打印成绩最高和最低的学生信息

#include<stdio.h>
#define MAXNUM 20
typedef struct node
{
	int num;
	char name[20];
	float score;
}ElemType;

//输入数据函数
void Create(ElemType stu[],int *n)
{
	struct node *k;
	int i = 1;

	printf("Please input n=");
	scanf("%d",&*n);

	for (k = stu + 1; k <= stu + *n; k ++, i++) 
	{
		printf("please input %d\tnum\tname\tscore\n", i);

		scanf("%d%s%f",&k->num, k->name, &k->score);
	}  
}

//比较成绩高低函数
int Max(ElemType a[], int n)
{	
	float maxScore; 
	int i,x;
	
	maxScore = a[1].score;

	for(i = 1; i <= n; i++)
	{
		if(a[i].score >= maxScore)
		{
			maxScore = a[i].score;
			x = i; 
		}
	}
	return x;	
}

int Min(ElemType a[], int n)
{	
	float minScore; 
	int i,y;
	
	minScore = a[1].score;

	for(i = 1; i <= n; i++)
	{
		if(a[i].score <= minScore)
		{
			minScore = a[i].score;
			y = i; 
		}
	}

	return y;	
}

void main()
{
  ElemType a[MAXNUM+1];
  int i,n;

  int k,j;//标记最值的下标
 
  Create(a,&n);

  printf("\nCreate is completed!\n----The data is----\n num\t name\t\t score\n");
  
  for (i = 1;i <= n; i++) 
  {
	  printf("%d\t%s\t\t%f\n",a[i].num, a[i].name, a[i].score);
  }
 

  k = Max(a,n);
  j = Min(a,n);

//  printf("%d\n",k);
//  printf("%d\n",j);

  printf("---------------------------------------------\n");

  printf("higher:%d\t%s\t\t%f\n",a[k].num, a[k].name, a[k].score);
  printf("lower:%d\t%s\t\t%f\n",a[j].num, a[j].name, a[j].score);

}

你可能感兴趣的:((2013-4-1)数据结构实验一:打印成绩最高和最低的学生信息)