#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);
}