/**************************************************************
*该程序主要实现一个学生name和number的输入和输出,并执行查找功能
*程序名:a.c
*Written by liuning
****************************************************************/
#include<stdio.h>
#include<stdlib.h>
#define Max 10
typedef struct stu
{
int number;
char name[Max];
struct stu *Next;
}student;
void print(student *Head)
{
student *Pointer;
Pointer=Head;
while(Pointer!=NULL)
{
printf("Please enter date/n");
printf("Date number:%d/n",Pointer->number);
printf("Data name:%s/n",Pointer->name);
Pointer=Pointer->Next;
}
}
int query(student * Head,int i)
{
student *p;
int j=1;
p=Head;
while(p!=NULL&&j<i);
{
p=p->Next;
j++;
}
if(i==j)
{
printf("The student number: %d/n",p->number);
printf("The student name: %s/n",p->name);
return 1;
}
else
return 0;
}
student *create()
{
student *Head;
int Datanum;
char Dataname[Max];
student *New;
student *Pointer;
int i;
Head=(student *)malloc(sizeof(student));
if(Head==NULL)
printf("Memory allocate failure!/n");
else
{
Datanum=1;
printf("Please input the data name(input 0 to exit):");
scanf("%s",Dataname);
Head->number=Datanum;
for(i=0;i<=Max;i++)
Head->name[i]=Dataname[i];
Head->Next=NULL;
Pointer=Head;
while(1)
{
Datanum++;
New=(student *)malloc(sizeof(student));
printf("Please input the data name(input 0 to exit):");
scanf("%s",Dataname);
if(Dataname[0]=='0')
break;
New->number=Datanum;
for(i=0;i<=Max;i++)
New->name[i]=Dataname[i];
New->Next=NULL;
Pointer->Next=New;
Pointer=New;
}
}
return Head;
}
if(H!=NULL)
void main()
{
student *H;
int i;
H=create();
print(H);
getchar();
printf("Please input the that you want to query:");
scanf("%d",&i);
if(!query(H,i))
printf("NO Found!/n");
}
//很久没有复习C语言了!今天试了一下!看来忘记了不少!这个程序有错误!希望大家帮忙改正!(编译器显示0错0警告)~但是查找指令没有执行!是哦怎么回事?请大家帮忙看看