程序实在不能理解,求注解

#include <stdio.h>
#define N 3
#include <stdio.h>
struct student
{int num;
char name[20];
char sex;
int age;
};
struct student stu[N]={{10101,"i Lin",'M',18},{10102,"Zhang Ping",'M',19},{10103,"Wang Min", 'F',20}};
void main()
{
struct student find(int n);
struct student stu n;
intn;
printf("n=");
scanf ("d", &n);
stu n=find(n);
if (stu n.num!=0)
{
printf(" No. Name sex age\n");
printf("5d -20s 2c 4d\n",stu n.num, stu n.name, stu_n.sexp
stu n.age);
}
else
printf ("Not Found!\n");
}
struct student find(int n)
{
struct student stu n;
inti;
for(i=0;i<N;i++)
if (stu[i].num==n)
{
stu_n=stu[i];
break;
}
if(i==N)
stu n.num=0;
return (stu n);
}

一个输入学号,然后在结构体数组中查找是否有该学号的学生的例子

#include <stdio.h>
#define N 3
#include <stdio.h>
struct student   //定义学生信息结构
{int num;
char name[20];
char sex;
int age;
};
struct student stu[N]={{10101,"i Lin",'M',18},{10102,"Zhang Ping",'M',19},{10103,"Wang Min", 'F',20}}; //初始化3个学生信息
void main()
{
struct student find(int n); //申明搜索函数
struct student stu_n; 
int n;                        //int 和 n 之间应该有空格
printf("n=");
scanf ("%d", &n);  //少了个%号
stu_n=find(n);  //调用搜索函数,搜索指定学号的学生信息
if (stu_n.num!=0) //检查是否搜索到学生信息,不为0表示找到了
{
printf(" No. Name sex age\n"); //打印学生信息标题
printf("5d -20s 2c 4d\n",stu_n.num, stu_n.name, stu_n.sexp,stu_n.age);   //打印学生信息内容
}
else
printf ("Not Found!\n");
}
struct student find(int n)   //搜索函数实现
{
struct student stu_n; 
int  i;        //int和n间的要有空格
for(i=0;i<N;i++) //比较每个学生信息的num是否等于n,是则找到了
if (stu[i].num==n)
{
stu_n=stu[i];
break;
}
if(i==N)
stu_n.num=0;
return (stu_n);
}


供参考:

#include <stdio.h>
#define N 3
#include <stdio.h>
struct student    //定义结构体
{
   int  num;
   char name[20];
   char sex;
   int  age;
};
struct student stu[N]={{10101,"i Lin",'M',18}, //定义结构体数组stu[N],并初始化值
                       {10102,"Zhang Ping",'M',19},
                       {10103,"Wang Min", 'F',20}};
void main()
{
    struct student find(int n);//定义函数 find()
    struct student stu_n;    //定义结构体变量stu_n
    int n;
    printf("n=");
    scanf ("%d", &n);
    stu_n=find(n);  //调用find()函数,查找学号为n的学生,并将信息返回给stu_n.
    if (stu_n.num!=0) //如果查找到该生信息,输出显示
    {
       printf(" No. Name sex age\n");
       printf("%5d %-20s %2c %4d\n",stu_n.num, stu_n.name, stu_n.sex,stu_n.age);
    }
    else
      printf ("Not Found!\n");//未找到则输出Not Found
}

struct student find(int n)
{
    struct student stu_n;
    int i;
    for(i=0;i<N;i++)
    if (stu[i].num==n)
    {
         stu_n=stu[i];
         break;
    }
    if(i==N)
            stu_n.num=0;
    return (stu_n);
}