for之后包含的代码什么意思

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

  1. strcmp 字符串比较
  2. 这里 strcmp比较, 如果航班号相等,则返回0;前面加个 非 ,即 !0 表达式为真,直接返回该航班结构体数据
  3. 如果不相等,判下一个航班,最多判 MAXSIZE 次
    for(i=0;i<MAXSIZE;i++) {
        if(!strcmp(number,info->air_Numer)) return info;
        info++;
    }

如有帮助,欢迎点赞采纳哈~

望采纳


在这段代码中,for后面包含的语句块实现了以下功能:

  • 通过scanf函数从用户输入一个航班号
  • 使用一个循环,比较输入的航班号与链表中每个航班号的值
  • 如果在链表中找到了输入的航班号,则返回该航班的指针
  • 如果在链表中没有找到输入的航班号,则输出"对不起,该航线末找到!\n",并返回NULL

根据提供的代码,我的理解如下:

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

img