C语言 程序有bug,找不出来,求大神指导。

2025-02-02 02:57:58
推荐回答(1个)
回答1:

#include 
#include 
/* 算算Cyin最多能花多少钱? */
int main()
{
    /* 递推法求解 */
    int S,n,p[2048],num[2048];
    int i,j,tmp,go;
    
    scanf("%d %d",&S,&n);
    for(i=0;i      scanf("%d",&p[i]);
    }
    
    /* 初始化 */
    for(i=0;i     num[i]=0;
    }
    for(i=0;i     num[p[i]]=1;
    } 
    
    /* 递推 */
    go=1;
    while(go==1){
        go=0;
        for(i=0;i             tmp=p[i];
             for(j=1;j                  if(num[j]==1&&j+tmp<=S&&num[j+tmp]==0){
                   num[j+tmp]=1;
                   go=1;
                  }
             }
        }
    }
    /* 找出最大值 */ 
    for(i=S;i>0;i--){
      if(num[i]==1){
          break;
      }
    }
    printf("%d\n",i);

/*system("pause");*/
return 0;
}