C程序只读取第一个车牌

C Program only reading first License Plate

所以我遇到了一个问题,我必须为学校制作一个出租车程序,所以,我有一个案例,我需要给用户一个选项来改变汽车的可用性,但对于那个用户的需要提供车牌才能继续。当我将两辆车添加到结构中时,在案例 3 中,程序只接受车牌 1 是正确的...

void alterarDisponiblidadeTaxi (TAXIS taxis[], int qtd_taxis ){
int i=0;
char matr[10];
if(0>=qtd_taxis){
    printf("No data has given yet!\a\n");
    return; }
printf("Insert the vehicle's plate:\n");
scanf("%s",matr);

if (strcmp(matr,taxis[i].matricula) == 0){
    printf("License plate found with sucess!\n");
    return 0;
}
if (strcmp(matr,taxis[i].matricula) != 0){
        printf("License plate not found with sucess!\a\n");
        return 0;
}
}

我想你忘了添加一个 for 循环。由于i=0,它只会检查第一个车牌。

void alterarDisponiblidadeTaxi (TAXIS taxis[], int qtd_taxis ){
    int i=0;
    char matr[10];
    if(0>=qtd_taxis){
        printf("No data has given yet!\a\n");
        return; }
    printf("Insert the vehicle's plate:\n");
    scanf("%s",matr);

    for(int i=0; i<qtd_taxis; i++) {
        if (strcmp(matr,taxis[i].matricula) == 0){
            printf("License plate found with sucess!\n");
            return 0;
        }
    }

    printf("License plate not found with sucess!\a\n");
    return 0;
}