该程序的输出未被接受

时间:2015-10-24 15:35:25

标签: c

我正在尝试提交有关codechef“https://www.codechef.com/problems/FLOW009”的答案 这是我的代码。

#include <stdio.h>
int main()
{
    int t, i;
    scanf("%d",&t);
    i=t;
    float qty[t], per[t], sum[t];
    do{
        scanf("%f %f", &qty[t-1], &per[t-1]);
        sum[t-1] = qty[t-1] * per[t-1];
        if(qty[t-1] > 1000 )
        {
            sum[t-1] = sum[t-1] - (sum[t-1]*10)/100;
        }
        }while(--t);
        do{
            printf("%f\n", sum[i-1]);
            }while(--i);
return 0;
}

它再次告诉我,我的解决方案是错误的,我无法理解。我不能在那里提问,因为我的业力较少。

2 个答案:

答案 0 :(得分:0)

两件事:

  1. 永远不要存储每个测试用例的值,直到告知有时测试用例可能很大,为每个测试用例计算和打印输出。这可以节省内存,时间和混乱。

  2. 为什么要处理太多的代码和混乱,可以用几行代码完成。

  3. 见:

    #include <stdio.h>
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int p,q;
            scanf("%d %d",&q,&p);
            float ans=(float)q*p;
            if(q>1000)
                ans-=(ans/10);
            printf("%f\n",ans);
        }
    return 0;
    }
    

答案 1 :(得分:0)

您无法将int扫描为字符串。 sscanf()函数根据指定的格式字符串扫描字符串。此代码可能会使用更多错误检查。

Select * 
FROM TableName t 
WHERE NOT EXISTS (SELECT 1
                  FROM TableName 
                  WHERE [State] = t.[State]
                   AND [Group]  = t.[Group] 
                   AND [Status] = 'AC')