问题出在哪了 输出不对

君君最近心情一直不好,他何以解忧唯有shopping!君君觉得如果能买10件物品他就能愉快了,但是君君可能没有那么多钱。现在给定君君所能支付的最大金额和10件君君想买的物品的价格(已经按照价格进行了排序),请你帮他判断,如果君君的钱足够买下所有物品,请输出OK和剩余的金额。如果君君的钱不够买下所有的物品,请输出NO,并输出君君最多能买几件商品和剩余的金额。

#include

int main()
{
int i,n,s=0,t=0,j=0;
int a[10];
scanf("%d",&n);
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
s=s+a[i];
}

if(s<=n)
{
    printf("Ok ");
    printf("%d",n-s);
}
else
{
    for(i=0;i<10;i++)
    {
        t=t+a[i];
        if(t<=n)
        {
            j++;
          printf("No ");
        printf("%d %d",j,n-t);

         }



    }   


}
return 0;

}

Sample Input
3000
30 58 78 80 100 102 108 2000 2010 2060
Sample Output
NO 8 444

你最底下那个for循环错了

 for (i = 0; i < 10; ++i){
    t += a[i];
        if (t >= n){
            printf("NO %d %d",i+1,t-a[i]);
                break;
        }
}

 }
  for (i = 0; i < 10; ++i){
    t += a[i];
        if (t > n){
            printf("NO %d %d\n",i,t-a[i]);
                break;
        }
}