将c翻译成pascal语言

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:40:28
#include <stdio.h>
#include <stdlib.h>
#define max(a,b) a>b?a:b
long dp[25][35001]={0};
int main(int argc, char *argv[])
{int v[26],a[26];
int i,j,k;
int n,sum;
scanf("%d %d",&sum,&n);
for(i=1;i<=n;i++)
{scanf("%d",&v[i]); }
for(i=1;i<=n;i++)
for(j=1;j<=sum;j++)
{dp[i][j]=dp[i-1][j];
if(v[i]<=j)
{ dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+v[i]);
}
}
printf("%d",dp[n][sum]);
system("PAUSE");
return 0;
}
第二段程序
#include <stdio.h>
#include <string.h>

#define MAX 20001

int main(void)
{
int m,n,tv,v,i,j,k ;
int a[MAX] ={0} ;
a[0] = 1;
scanf("%d",&v) ;
scanf("%d",&n) ;

for(i=1 ; i<= n ; i++)
{
scanf("%d",&tv);

program FT;
uses crt;
var
dp:array[0..24][0..3500] of integer;
v,a:array[0..25] of integer;
i,j,k,n,sum:integer;

begin
read(sum,n);
for i:=1 to n do read(v[i]);
for i:=1 to n do
for j:=1 to sum do begin
dp[i][j]:=dp[i-1][j];
if v[i]<=j then
if dp[i-1][j]>(dp[i-1][j-v[i]]+v[i]) then
dp[i][j]:=dp[i-1][j];
else then
dp[i][j]:=dp[i-1][j-v[i]]+v[i];
end;
write(dp[n][sum]);
readkey();
end.

第二个请另外提问。