C-使用DO -时搜索结构中的元素



我有一个用于员工,ID,年龄和薪水的结构。我需要用户来选择他们想通过键入其用户ID来编辑的员工。我需要使用do-while来搜索结构,直到用户输入有效的用户ID。

到目前为止我有:

size = 4

case 3: //Updating Employee Salary
        printf("Update Employee Salaryn");
        printf("======================n");
        do {
            printf("Enter Employee ID: ");
            scanf("%d", &salaryEmpChoice);
        } while (salaryEmpChoice != emp[0 - SIZE].id) ;
        break;

在此部分,我尝试了[0-尺寸],[0,1,2,3],但是只有在我一次放入一个值时,即[0]而不是全部4个值时,它才起作用元素。

那是因为C语言一次仅查看一个元素。如果您想查看一系列元素,则需要实现。编译器不适合您。

您要求编译器查找EMP [0-尺寸] .ID并将其与薪资相提并论。您将大小设置为4,因此EMP [0大小]为EMP [0-4] == EMP [-4]。

这告诉编译器查看数组EMP的存储位置,然后在内存中之前查看4个数组元素。之后,由于您正在寻找EMP [-4] .ID,因此它将在内存中查看负第四个元素的部分,如果它是有效的数组元素,它将找到ID。那不是您想要的,因为C中的数组以零开始,因此负元素不是数组的一部分。

如果EMP是员工结构的数组,并且您正在寻找EMP.ID,则需要将扫描的员工ID与EMP [0] .ID,EMP [1] .ID,EMP [2]进行比较。id等...

最新更新