struct airline *find(){//根据系统提出的航班号查询并以指针形式返回
lineinfo *info;
char number[10];
int i=0;
info=start;
printf("请输入航班号:");
scanf("%s",number);
for(i=0;iif(!strcmp(number,info->air_Numer)) return info;
info++;
}
printf("对不起,该航线末找到!\n");
return NULL;
}
for(i=0;i<MAXSIZE;i++) {
if(!strcmp(number,info->air_Numer)) return info;
info++;
}
如有帮助,欢迎点赞采纳哈~
望采纳
在这段代码中,for后面包含的语句块实现了以下功能:
根据提供的代码,我的理解如下:
for循环是遍历整个航班信息结构数组的所有下标,然后if里是逐一与每个航班里的航班号与输入的要查询的航班号进行比较,如果一致,则返回此航班信息结构的指针,如果不是,则航班信息结构指针指向下一个航班信息结构;
for循环结束,如果还没找到指定的航班号,则打印未找到指定航班的提示信息,最后就返回一个空指针,结束函数。
测试代码如下:
参考链接:
最全的国内航班号· - 360文档中心
飞机能坐多少乘客 飞机可以坐多少名乘客_百度知道
#include <stdio.h>
#include <string.h>
#define MAXSIZE 5
typedef struct airline{
char air_Number[20];
int person_Nums;
}lineinfo;
// https://www.360docs.net/doc/876795802.html
struct airline as[MAXSIZE]={
{"3U3203",100},
{"3U3204",120},
{"3U3207",130},
{"3U3208",140},
{"3U3213",150}
};
lineinfo * start = as;
struct airline *find(){//根据系统提出的航班号查询并以指针形式返回
lineinfo *info;
char number[10];
int i=0;
info=start;
printf("请输入航班号:");
scanf("%s",number);
for(i=0;i<MAXSIZE;i++) {
if(!strcmp(number,info->air_Number)) return info;
info++;
}
printf("对不起,该航线末找到!\n");
return NULL;
}
int main(void){
struct airline * pa = find();
if (pa!=NULL){
printf("查询到的航班信息为:\n") ;
printf("航班号:%s\n乘坐人数:%d\n",pa->air_Number,pa->person_Nums);
}
}