请问c语言如何实现按姓名查找?
我现在做作业 一个小型系统请问如何按姓名查找呢
不用用指针的
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct men
{
char name[20];
int income;
};
struct men input();
void display(struct men[],int);
char name(struct men[],char,char);
int fand(struct men stu[],int count,char name[20]);
void xmcz(struct men stu[],int count);
int find(struct men stu[],int count,int income);
void srcz(struct men[],int count);
void namesort(struct men[],int);
void insort(struct men[],int);
void grossincome(struct men stu[],int count);
int main(void)
{
struct men stu[20];
int count=0;
char sel='1',flag;
while(sel!='8')
{
system("cls");
printf("--------2手房交易系统---------\n\n");
printf("1.信息录入\n2.所有人信息\n3.按姓名查找\n4.按收入查找\n5.按收入排序\n6.按姓名排序\n7.统计收入总额\n8.退出\n");
printf("\n请选择: ");
sel=getchar();
switch(sel)
{
case'1':
system("cls");
do{
stu[count]=input();
count++;
printf("是否继续?(y/n):");
fflush(stdin);
flag=getchar();
}while(flag=='y'||flag=='Y');break;
case'2':
display(stu,count);
break;
case'3':
xmcz(stu,count);
break;
case'4':
srcz(stu,count);
break;
case'5':
insort(stu,count);
break;
case'6':
namesort(stu,count);
break;
case'7':
grossincome(stu,count);
break;
}
}
}
struct men input()
{
struct men stu;
printf("输入姓名:\n");
scanf("%s",&stu.name);
printf("\n输入收入: ");
scanf("%d",&stu.income);
return stu;
}
void display(struct men stu[],int count)
{
system("cls");
int i;
printf("姓名\t 收入\n");
printf("====\t ====\n");
for(i=0;i<count;i++)
{
printf("%s\t %d",stu[i].name,stu[i].income);
//printf("%d",stu[i].income);
printf("\n");
}
printf("按任意键返回主菜单: ");
getch();
}
int fand(struct men stu[],int count,char name[20])
{
int i;
for(i=0;i<count;i++)
{
if(stu[i].name==name[20])
return i;
}
return -2;
}
void xmcz(struct men stu[],int count)
{
int onename,i;
system("cls");
printf("请输入你要找的人姓名\n");
scanf("%s",onename);
i=fand(stu,count,onename);
if(i==-2)
{
printf("你输入的姓名不存在!按任意键返回主菜单");
getch();
return;
}
printf("姓名\t 收入\n");
printf("====\t ====\n");
printf("%s\t %d",stu[i].name,stu[i].income);
printf("按任意键返回主菜单: ");
getch();
}
int find(struct men stu[],int count,int income)
{
int i;
for(i=0;i<count;i++)
{
if(stu[i].income==income)
return i;
}
return -1;
}
void srcz(struct men stu[],int count)
{
int oneincome,i;
system("cls");
printf("请输入您要查找人的收入\n");
scanf("%d",&oneincome);
i=find(stu,count,oneincome);
if(i==-1)
{
printf("您输入的用户不存在,按任意键返回主菜单继续\n");
getch();
return;
}
printf("姓名\t 收入\n");
printf("====\t ====\n");
printf("%s\t %d",stu[i].name,stu[i].income);
printf("按任意键返回主菜单: ");
getch();
}
void namesort(struct men stu[],int count)
{
system("cls");
char temp[20];
printf("\n按姓名排序:\n");
for(int i=0;i<count;i++)
{
for(int j=i+1;j<count;j++)
{
if(strcmp(stu[i].name,stu[j].name)>0)
{
strcpy(temp,stu[i].name);
strcpy(stu[i].name,stu[j].name);
strcpy(stu[j].name,temp);
}
}
}
for(int i=0;i<count;i++)
{
printf("%s %d\n",stu[i].name,stu[i].income);
}
printf("\n姓名排序已经完成,按任意键返回主菜单.");
getch();
}
void insort(struct men stu[],int count)
{
system("cls");
struct men temp;
printf("\n按收入排序:\n");
for(int i=0;i<count;i++)
{
for(int j=i+1;j<count;j++)
{
if(stu[i].income>stu[j].income)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
for(int i=0;i<count;i++)
{
printf("%s %d\n",stu[i].name,stu[i].income);
}
printf("\n收入排序已经完成,按任意键返回主菜单.");
getch();
}
void grossincome(struct men stu[],int count)
{
system("cls");
int all=0;
for(int i=0;i<count;i++)
{
all+=stu[i].income;
}
printf("收入总额为:");
printf("%d\n",all);
printf("收入总额已经计算好,按任意键返回主菜单!");
getch();
}
就差一个按姓名查找功能没做了 到现在还没想到。。。