Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环 所以i的值与现在的大小相同,所以它超出了数组的界限, 更正它并在格式说明符前留一个空格,看看它是否有效 do { printf("Enter Employee ID: "); scanf("%d", _C - Fatal编程技术网

循环 所以i的值与现在的大小相同,所以它超出了数组的界限, 更正它并在格式说明符前留一个空格,看看它是否有效 do { printf("Enter Employee ID: "); scanf("%d",

循环 所以i的值与现在的大小相同,所以它超出了数组的界限, 更正它并在格式说明符前留一个空格,看看它是否有效 do { printf("Enter Employee ID: "); scanf("%d", ,c,C,循环 所以i的值与现在的大小相同,所以它超出了数组的界限, 更正它并在格式说明符前留一个空格,看看它是否有效 do { printf("Enter Employee ID: "); scanf("%d", &empIDcheck); for (i = 0; i < SIZE; i++) { if (empIDcheck == emp[i].IDNo) {

循环 所以
i
的值与现在的大小相同,所以它超出了数组的界限, 更正它并在格式说明符前留一个空格,看看它是否有效

 do {
            printf("Enter Employee ID: ");
            scanf("%d", &empIDcheck);
            for (i = 0; i < SIZE; i++)
            {
                if (empIDcheck == emp[i].IDNo) {
                    found = 0;
                    printf("The current salary is %.2lf\n", emp[i].salary);
                     ======== <<<<< need the break here>>>>>> ======
                }

            }
            if (found == 0) {
                printf("Enter Employee New Salary: ");
                scanf("%.2lf", &emp[i].salary);  ========> i is going out of bound
                    and try with having <space> before format like " %.2lf" and see if it helps
            }
do{
printf(“输入员工ID:”);
scanf(“%d”、&empIDcheck);
对于(i=0;i> ======
}
}
如果(找到==0){
printf(“输入员工新工资:”);
scanf(“%.2lf”,&emp[i].salary);==========>我要出界了
尝试使用“%.2lf”这样的before格式,看看是否有帮助
}

我建议您对代码做一些修改。特别是在您尝试查找员工id的循环中。提示:找到员工id后接下来会发生什么?请注意,设置
int found=1;
然后设置
if(found==1)printf(“***ERROR employee id not found\n”);
是非惯用的C。使用
0
表示false(not found)和
1
表示真(已找到)。你所得到的并不是直接错误,但对于习惯C的习惯的人来说,这是一个困惑。在一个不相关的注释中,
found
变量的逻辑似乎是相反的。基本上,
found
如果什么都没有找到,则为true,如果你找到了什么,则为false。谢谢你,我已经切换了1和0,事实上我本来就有这两个变量当我试图解决这个问题时,我改变了它。我建议您对代码做一些修改。特别是在您尝试查找员工id的循环中。提示:找到员工id后会发生什么?请注意设置
int found=1;
然后设置
if(found==1)printf(***ERROR employee id not found\n);
是非惯用C。使用
0
表示false(未找到),使用
1
表示true(找到)。你所得到的并不是直接错误,但对于习惯C的习惯的人来说,这是一个困惑。在一个不相关的注释中,
found
变量的逻辑似乎是相反的。基本上,
found
如果什么都没有找到,则为true,如果你找到了什么,则为false。谢谢你,我已经切换了1和0,事实上我本来就有这两个变量t我在尝试解决问题时更改了它。谢谢我在循环条件中添加了&&found!=0谢谢我在循环条件中添加了&&found!=0谢谢,在添加了格式说明符之前的空格后,程序允许用户输入新工资。不幸的是,我的代码中似乎还有另一个问题,因为有一次输入新工资后,程序进入一个无休止的循环,显示菜单选项,然后立即说错误错误选项,再试一次,然后返回菜单,再返回错误消息,等等。实际上,我解决了这个问题。现在的问题是,用户输入的新工资不能替换旧工资。请提供帮助。@sam如果它没有更新值,格式说明符
%.2lf
看起来有问题。你能将
%.2lf
更改为
%lf
并尝试一下吗,它会起作用的谢谢,在格式说明符之前添加空格后,程序允许用户输入新的工资。不幸的是,我的代码中似乎有另一个问题,因为一旦输入新工资程序进入一个无休止的循环,显示菜单选项,然后立即说错误错误选项重试,然后返回菜单,然后再次发送错误消息等等。实际上我解决了这个问题。现在的问题是,用户输入的新工资并不能替换旧工资。请帮助。@sam如果它没有更新值,则格式说明符
%.2lf
似乎有问题。您可以将
%.2lf
更改为
%lf
并重试,它会工作吗
for (i = 0; i < SIZE; i++)
{
     if (empIDcheck == emp[i].IDNo) {
         found = 0;
         printf("The current salary is %.2lf\n", emp[i].salary);
     }
}
for (i = 0; i < SIZE; i++)
{
     if (empIDcheck == emp[i].IDNo) {
         found = 0;
         printf("The current salary is %.2lf\n", emp[i].salary);
         break;  // Done with the loop
     }
}
for (i = 0; i < SIZE && found != 0; i++)
{
     if (empIDcheck == emp[i].IDNo) {
         found = 0;
         printf("The current salary is %.2lf\n", emp[i].salary);
     }
}
 do {
            printf("Enter Employee ID: ");
            scanf("%d", &empIDcheck);
            for (i = 0; i < SIZE; i++)
            {
                if (empIDcheck == emp[i].IDNo) {
                    found = 0;
                    printf("The current salary is %.2lf\n", emp[i].salary);
                     ======== <<<<< need the break here>>>>>> ======
                }

            }
            if (found == 0) {
                printf("Enter Employee New Salary: ");
                scanf("%.2lf", &emp[i].salary);  ========> i is going out of bound
                    and try with having <space> before format like " %.2lf" and see if it helps
            }