C程序只读第一个车牌

时间:2017-01-09 17:54:46

标签: c arrays struct char gets

所以我遇到了一个问题,我必须为学校制作一个出租车程序,所以,我有一个案例,我需要给用户一个改变汽车可用性的选项,但对于那个用户& #39;需要提供牌照才能继续。当我向struct添加两辆车时,在案例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;
}
}

1 个答案:

答案 0 :(得分:1)

我想你忘了添加一个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;
}