pascal改为C++程序
把下面的pascal程序改为C++~~我急用~好的有加分~~越快分越多varb:array[0..100]ofboolean;a:array[0..100]ofinteg...
把下面的pascal程序改为C++~~我急用~好的有加分~~越快分越多
var
b:array[0..100] of boolean;
a:array[0..100] of integer;
n,m,i,j,s,x,k:integer;
begin
assign(input,'print.in');
reset(input);
assign(output,'print.out');
rewrite(output);
readln(n,m);
for i:=0 to n-1 do b[i]:=false;
for i:=0 to n-1 do read(a[i]);
s:=0;
j:=0;
for i:=9 downto a[m] do
begin
x:=j;
k:=0;
repeat
if x=n then begin x:=0; k:=1;end;
if (b[x]=false) and (a[x]=i) then begin
s:=s+1;
if x=m then begin
writeln(s);
close(input);
close(output);
exit;
end;
b[x]:=true;
j:=x;
end;
x:=x+1;
until (k=1) and (j=x);
end;
writeln(s);
close(input);
close(output);
end. 展开
var
b:array[0..100] of boolean;
a:array[0..100] of integer;
n,m,i,j,s,x,k:integer;
begin
assign(input,'print.in');
reset(input);
assign(output,'print.out');
rewrite(output);
readln(n,m);
for i:=0 to n-1 do b[i]:=false;
for i:=0 to n-1 do read(a[i]);
s:=0;
j:=0;
for i:=9 downto a[m] do
begin
x:=j;
k:=0;
repeat
if x=n then begin x:=0; k:=1;end;
if (b[x]=false) and (a[x]=i) then begin
s:=s+1;
if x=m then begin
writeln(s);
close(input);
close(output);
exit;
end;
b[x]:=true;
j:=x;
end;
x:=x+1;
until (k=1) and (j=x);
end;
writeln(s);
close(input);
close(output);
end. 展开
2个回答
展开全部
//两个程序肯定是等价的,不过是在不知道这个是干什么用的。能告诉我吗?
#include<fstream>
using namespace std;
int main(int argc,char* argv[])
{
bool b[101];
int a[101];
int n,m,i,j,s,x,k;
ifstream input("print.in");
ofstream output("print.out");
input>>n>>m;
for(i=0;i<=n-1;i++) b[i]=false;
for(i=0;i<=n-1;i++) input>>a[i];
s=0;
j=0;
for(i=9;i>=a[m];i--)
{
x=j;
k=0;
do
{
if( x==n )
{
x=0;k=1;
}
if( b[x]==false && a[x]==i )
{
s=s+1;
if( x==m )
{
output<<s<<endl;
input.close();
output.close();
return 0;
}
b[x]=true;
j=x;
}
x=x+1;
}while( !((k==1) && (j==x)) );
}
output<<s<<endl;
input.close();
output.close();
return 0;
}
#include<fstream>
using namespace std;
int main(int argc,char* argv[])
{
bool b[101];
int a[101];
int n,m,i,j,s,x,k;
ifstream input("print.in");
ofstream output("print.out");
input>>n>>m;
for(i=0;i<=n-1;i++) b[i]=false;
for(i=0;i<=n-1;i++) input>>a[i];
s=0;
j=0;
for(i=9;i>=a[m];i--)
{
x=j;
k=0;
do
{
if( x==n )
{
x=0;k=1;
}
if( b[x]==false && a[x]==i )
{
s=s+1;
if( x==m )
{
output<<s<<endl;
input.close();
output.close();
return 0;
}
b[x]=true;
j=x;
}
x=x+1;
}while( !((k==1) && (j==x)) );
}
output<<s<<endl;
input.close();
output.close();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-11-22
展开全部
for i:=0 to n-1 do b[i]:=false;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询