簡體   English   中英

C程序中的多個測試用例無法正常工作

[英]Multiple test case in c program not working

我正在用C編寫程序,以檢查給定數組中有多少個元素小於或等於同一數組中的特定元素。

t =測試用例數
n =數組大小
k =該元素數組的索引,所有元素都必須與之比較
j =小於或等於數組元素k的元素k

for (i = 1; i <= t; i++)
{
    scanf("%d", &n);
    scanf("%d", &k);
    for (i = 1; i <= n; i++)
    {
        scanf("%d", &arr[i]);
    }
    for (l = 1; l <= n; l++)
    {
        if (arr[l] <= arr[k])
        {
            j++;
        }
    }
    printf("%d\n", j);
    fflush(stdin);
}

但是問題是我的程序僅在一種情況下運行。 之后,它終止。 為什么會這樣呢? 為什么在2、3、4 ...測試用例中沒有運行此功能?

您有一個使用變量i的外循環,也有一個使用(並修改)相同變量i的內循環。 當內循環完成時,我假設i大於t因此外循環也結束了。 如果您使用了更有意義的變量名,則可能更容易避免此錯誤。

這是修剪掉的代碼以顯示問題:

for (i = 1; i <= t; i++)
{
    for (i = 1; i <= n; i++)
    {
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM