输入一组数据,再输入一组,就查询不出第一个输入的数据,这该怎么改大佬们

#include
struct student
{
int bh;
char name[20];
char zl[20];
int sl;
char time[20];
char add[20];
}a[100];
int i=0;
int main()
{
void entering();
void query();
void xiugai();
void show();
void count();
int n;
do
{
printf("1.录入信息\n");
printf("2.信息修改\n");
printf("3.信息查询\n");
printf("4.信息显示\n");
printf("5.信息统计\n");
printf("6.退出\n");
scanf("%d",&n);
switch(n)
{
case 1:entering();break;
case 2:xiugai();break;
case 3:query();break;
case 4:show();break;
case 5:count();break;
case 6:printf("退出\n");break;
default:printf("enter data error!\n");
}
}
while(n!=6);
}
void entering()
{
i++;
printf("编号:");
scanf("%d",&a[i].bh);
printf("客户姓名:");
scanf("%s",a[i].name);
printf("订餐种类:");
scanf("%s",a[i].zl);
printf("订餐数量:");
scanf("%d",&a[i].sl);
printf("送餐时间:");
scanf("%s",a[i].time);
printf("送餐地址:");
scanf("%s",a[i].add);
}
void query()
{
int bh;
printf("请输入编号:");
scanf("%d",&bh);
if (bh==a[i].bh)
{
printf("编号:%d\n",a[i].bh);
printf("客户姓名:%s\n",a[i].name);
printf("订餐种类:%s\n",a[i].zl);
printf("订餐数量:%d\n",a[i].sl);
printf("送餐时间:%s\n",a[i].time);
printf("送餐地址:%s\n",a[i].add);
}
else
printf("查无此客户,请重新输入\n");
}

void query()
{
int bh;
printf("请输入编号:");
scanf("%d",&bh);
for(i=0;i<100;i++)
{
if (bh==a[i].bh)
{
printf("编号:%d\n",a[i].bh);
printf("客户姓名:%s\n",a[i].name);
printf("订餐种类:%s\n",a[i].zl);
printf("订餐数量:%d\n",a[i].sl);
printf("送餐时间:%s\n",a[i].time);
printf("送餐地址:%s\n",a[i].add);
break;
}
}
if(bh!=a[i].bh)
printf("查无此客户,请重新输入\n");
}
我试了下,这样就可以了。

你根本就没有查询的逻辑,只是和最后一次输入的比较

// Q717637.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "stdio.h"

struct student
{
    int bh;
    char name[20];
    char zl[20];
    int sl;
    char time[20];
    char add[20];
}a[100];
int i = 0;

void entering()
{
    i++;
    printf("编号:");
    scanf("%d", &a[i].bh);
    printf("客户姓名:");
    scanf("%s", a[i].name);
    printf("订餐种类:");
    scanf("%s", a[i].zl);
    printf("订餐数量:");
    scanf("%d", &a[i].sl);
    printf("送餐时间:");
    scanf("%s", a[i].time);
    printf("送餐地址:");
    scanf("%s", a[i].add);
}
void query()
{
    int bh;
    printf("请输入编号:");
    scanf("%d", &bh);
    for (int j = 0; j < i; j++)
    {
        if (bh == a[j].bh)
        {
            printf("编号:%d\n", a[j].bh);
            printf("客户姓名:%s\n", a[j].name);
            printf("订餐种类:%s\n", a[j].zl);
            printf("订餐数量:%d\n", a[j].sl);
            printf("送餐时间:%s\n", a[j].time);
            printf("送餐地址:%s\n", a[j].add);
        }
    }
    if (j == i)
        printf("查无此客户,请重新输入\n");
}

int main()
{
    int n;
    do
    {
        printf("1.录入信息\n");
        printf("2.信息修改\n");
        printf("3.信息查询\n");
        printf("4.信息显示\n");
        printf("5.信息统计\n");
        printf("6.退出\n");
        scanf("%d", &n);
        switch (n)
        {
        case 1:entering(); break;
        //case 2:xiugai(); break;
        case 3:query(); break;
        //case 4:show(); break;
        //case 5:count(); break;
        case 6:printf("退出\n"); break;
        default:printf("enter data error!\n");
        }
    } while (n != 6);
}