-1
以下是my solution到a problem on codechef。
我在計算機上得到正確的輸出,但沒有在codechef上輸出。
我在我的代碼中找不到錯誤。在CodeChef上切割食譜練習
問題是將數組除以其元素的GCD並將其打印出來。
我寫了下面的代碼:
#include<stdio.h>
int main(void)
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int a[n],i,divisor,curr,r;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
divisor = a[0];
for(i=1;i<n;i++)
{
curr = a[i];
if(curr<divisor)
{
divisor = curr;
}
}
for(i=0;i<n;i++)
{
r = a[i]%divisor;
if(r != 0){
divisor = 1;
break;
}
}
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]/divisor);
}
printf("%d\n",a[n-1]/divisor);
}
return 0;
}
t
是測試用例的數量。n
是數組的長度。a[n]
是數組。divisor
是數組中所有元素的GCD。curr
是目前測試的數字。r
是餘數。
採樣輸入
3
2 4 4
3 2 3 4
4 3 15 9 6
樣本輸出
1 1
2 3 4
1 5 3 2
做一個單獨的函數來計算GCD並使用它。給你的變量實際名稱。通過這兩個步驟,您的bug有更好的機會被明顯或解決。 – Ryan
您被樣本輸入誤導了,GCD不僅僅是數組中最小的元素。一個更好的例子是這個數組有四個元素:{6,9,21,15}。預期產出是:{2,3,7,5}。 – user3386109
請給你的問題一個更好的標題。 「這個代碼有什麼問題?」基本上描述了這個網站上的一切另一個有相同問題的用戶將無法找到這個問題。 –