如何计算我的程序中的百分比

时间:2017-10-25 03:24:32

标签: c

我编写了一个基本上是调查的程序,并读取用户响应的响应。在我的程序结束时,我希望它打印具有长响应的语句的百分比。我已声明超过5秒的语句是长响应,并发出了一个警报信号,用于识别何时发生这种情况。到目前为止,这是我的代码:

 int count = 0;
int num;
float per;
int main()
{
    num = 0;
    per = (count/num) *100;
    printf("percent: %f", per );
}

1 个答案:

答案 0 :(得分:2)

除以0num是您用于输入的变量。由于未知原因,你最终会与它分开。

您有一个计数器,用于调用处理程序的次数。添加另一个计数器,表示您已经回答调查的次数,并在主循环中增加它。

这样的事情:

int noHandlerCalls=0;  // Because good variable names is good

void handler(int sig){
    noHandlerCalls++;
    ...
}

int main() 
{
    ...
    int noSurveyAnswers=0;

    while ( num != 0 ) {
        if (num == 5 )
            signal(SIGUSR1, handler);
        signal(SIGALRM, SIG_IGN);
        alarm(2);
        printf("Enter a number\n");
        signal(SIGALRM, handler);
        scanf("%d", &num);
        noSurveyAnswers++;
    }
    ...
    printf("percent: %f", (100.0*noHandlerCalls)/noSurveyAnswers );

顺便说一下。这是一个很好的例子,说明在发布之前遵循本指南的好处:https://stackoverflow.com/help/mcve

如果您这样做,您的问题将仅包含此代码:

int count = 0;
int num;
float per;
int main()
{
    num = 0;
    per = (count/num) *100;
    printf("percent: %f", per );
}

这是一个非常小的代码可能仍会重现你所询问的错误,在那个阶段,你可能已经自己想出来了。 :)