#include<stdio.h>
#include<math.h>
#include<string.h>
#define max 30
#include<stdlib.h>
typedef struct flight
{
char station[max];
int num;
char time[max];
int ticketnum;//余票
}ft;
typedef struct userdata {
char user_username[20];
char user_password[8];
int ticket;
int airnum;
}userinfo;
userinfo userin[max];
ft f[max];
int n;//航班号
int i;//航班数
int usernum;
int m;
int flightnum;
void listrest()//列出余票
{
printf("请选择查找方式\n");
printf("1.按航班号查找\n");
printf("2.按终点站查找\n");
int way2,z;
scanf("%d",&way2);
if(way2==1)
{ /*1.输入航班号查找航班信息并输出*/
printf("请输入要查找的航班号:");
scanf("%d",&n);//printf("%d",);
/*for(m=0;m<i+1;m++){
printf("%d\n",f[m].num);
if(n==f[m].num)
{
z= 1; //printf("%d",z);
break;} //若查找成功
}*/
judgen(n,z);
if(z==0){
printf("未查找到该航班号信息!");
}
else if(z==1){
// printf("z%d i%d",z,i);
system("cls");
printf("\n航班号:%d\n",f[m].num);
printf("\n----------------查找到的航班信息--------------\n\n");
printf("余票%d",f[i].ticketnum);
//输出查找结果
}
else
printf("输入错误");
}
else if(way2==2)/*2.按终点站查找航班的函数*/
{
printf("请输入终点站");
char sta1[max];
scanf("%s",&sta1);
/*for(m=0;m<i;m++){
if(sta1==f[i].station)
z= 1; break; //若查找成功
}*/
judges(sta1,z);
if(z==0){
printf("未查找到该航班号信息!");printf("%d\n",i);
}
else if(z==1)
{
system("cls");
printf("\n航班号:%d\n",n);
printf("\n----------------查找到的航班信息--------------\n\n");
printf("余票%d",f[i].ticketnum);
}
}
else
{
printf("输入错误");
}
}
judgen(n,x)
{
for(m=0;m<i;m++)
{
if(n==f[m].num)
{
break;
}
}
if(i==m)
{
printf("error");
x=0;
}
else
printf("ok");
x=1;
}
judges(srta,x)
{
for(m=0;m<i;m++)
{
if(stra==f[m].station)
{
break;
}
}
if(i==m)
{
printf("error");
x=0;
}
else
printf("ok");
x=1;
}
可根据用户输入航班号或者终点站进行查找,i代表航班数,但是这样无论怎么输入都是查找不到结果,
你的main函数呢
你查不到的原因可能是你传参不对
你是值传递
其实你可以定义有返回值的函数