我有一个用于员工,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等...