当我们输入键盘而不进行下一步时,如何立即停止C while循环?

当我们输入键盘而不进行下一步时,如何立即停止C while循环?,c,while-loop,C,While Loop,在我运行这个程序后,当我输入-999时,它必须停止。但即使在执行-999之后,它也会停止。我做错了什么 这是代码的问题 输入员工编号和员工的工作小时数,并显示以下内容: 员工人数、加班费以及加班费超过4000卢比的员工百分比。 用户应输入–999作为结束计划的员工编号,正常的加班费率为每小时150卢比,超过40小时的加班费率为每小时200卢比 #include<stdio.h> int main() { int empno=0,tot; float hours, o

在我运行这个程序后,当我输入-999时,它必须停止。但即使在执行-999之后,它也会停止。我做错了什么

这是代码的问题

输入员工编号和员工的工作小时数,并显示以下内容: 员工人数、加班费以及加班费超过4000卢比的员工百分比。 用户应输入–999作为结束计划的员工编号,正常的加班费率为每小时150卢比,超过40小时的加班费率为每小时200卢比

#include<stdio.h>

int main()
{
    int empno=0,tot;
    float hours, otp, prcn;
    while(empno!=-999){
        printf("Enter the Employee No: ");
        scanf("%d",&empno);
        printf("Enter the No of Hours: ");
        scanf("%f",&hours);
        if(hours<40){
            otp=hours*150.00;
        }
        else
            otp=((hours-40)*200)+(hours*150.00);
        if(otp>4000){
            prcn+=1;
            tot+=1;
        }
        else
            tot+=1;

    printf("\nEmployee No: %d\n",empno);
    printf("Over Time Payment: %.2f\n",otp);
    printf("Percentage of Employees whose OTP exceeding the Rs. 4000/-: %.2f%%\n\n",(prcn/tot)*100);
    }
}

当我输入-999而不继续时,我希望它会停止。

在以下情况后没有语句:

    printf("Enter the Employee No: ");
    scanf("%d",&empno);
在以下日期之前:

    printf("Enter the No of Hours: ");
    scanf("%f",&hours);

这将导致您的程序在输入-999后停止。while循环检查在您输入第一个员工编号之前开始时发生一次,但直到您完成所有数据输入、计算和打印后才会再次发生。

在您询问员工编号后,您可以使用if语句检查empno==-999是否为breakif scanf%d,&empno!=1{fputs错误:无效输入-empno\n,stderr;返回1}-始终验证每个用户输入。然后如果empno==-999中断;立即退出。@Tyger谢谢您的回复,我以前试过,但我会再试一次。关于:小时*150.00;这是基本工资。关于:小时数-40*200这是加班费。你应该把它们分开。注意:40*150的基本工资是6000,已经超过了4000的截止点。哦,我没想到会这样,谢谢@user3629249