多文件编译怎么弄啊?谁会?这个程序做成多文件形式怎么弄?
多文件编译怎么弄啊?谁会?这个程序做成多文件形式怎么弄?能写具体一点么?例如.h文件下放什么?.c文件下放什么?具体怎么连接?给位高手帮帮忙吧,头都大了。。。感激不尽#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define LEN sizeof(struct node)
struct node
{
long num;
char name[10];
float score1,score2,score3;
float sum,aver;
struct node *next;
};
int n=0;
struct node* creat(void)
{
struct node*head,*p1,*p2;
p1=p2=(struct node*)malloc(LEN);
head=p1;
printf("输入学号、姓名、成绩:\n");
scanf("%ld %s %f %f %f",&p1->num,p1->name,&p1->score1,&p1->score2,&p1->score3);
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct node*)malloc(LEN);
scanf("%ld %s %f %f %f",&p1->num,p1->name,&p1->score1,&p1->score2,&p1->score3);
}
p2->next=NULL;
return(head);
}
void disp(struct node*head)
{
struct node*p;
p=head;
printf("输出:\n");
do
{
p->sum=p->score1+p->score2+p->score3;
p->aver=p->sum/3;
printf("%ld %s %.2f %.2f %.2f %.2f %.2f\n",p->num,p->name,p->score1,p->score2,p->score3,p->sum,p->aver);
p=p->next;
}
while(p!=NULL);
}
void search(struct node*head)
{
struct node*p;
long numb;
p=head;
printf("输入要查找的学生学号:");
scanf("%ld",&numb);
while(p->num!=numb&&p->next!=NULL)
p=p->next;
if(p->num==numb)
printf("%ld %s %.2f %.2f %.2f\n",p->num,p->name,p->score1,p->score2,p->score3);
else
printf("不存在该学生!");
}
struct node*sort(struct node*head)
{
int i,j;
long k;
float temp;
char t[10];
struct node*p,*max;
p=head;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
max=p;
p=p->next;
if(max->sum<p->sum)
{
temp=max->sum;
max->sum=p->sum;
p->sum=temp;
temp=max->aver;
max->aver=p->aver;
p->aver=temp;
temp=max->score1;
max->score1=p->score1;
p->score1=temp;
temp=max->score2;
max->score2=p->score2;
p->score2=temp;
temp=max->score3;
max->score3=p->score3;
p->score3=temp;
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
k=max->num;
max->num=p->num;
p->num=k;
}
}
p=head;
max=head;
}
return(head);
}
void display(struct node*head)
{
struct node*p;
p=head;
printf("按总分从大到小排序后:\n");
do
{
printf("%ld %s %.2f %.2f %.2f %.2f %.2f\n",p->num,p->name,p->score1,p->score2,p->score3,p->sum,p->aver);
p=p->next;
}
while(p!=NULL);
}
int main()
{
struct node*head;
head=creat();
disp(head);
search(head);
sort(head);
display(head);
return 0;
}