哪位大侠帮忙翻译一下啊

later 2002-12-26 08:37:50
翻译成c语言,小弟只懂c 语言
program lxw010;
type row=array [1..20] of shortint;
set1=set of char;
var p: row;
m,n,n2,i,j: integer;
c1,c2:longint;
s1:set1;
s2:array [1..10] of set1;
a1:char;
procedure comb2(m,n:integer; var cmn:longint);
var c:longint;
i:integer;
begin
n2:=n;
if n>(m div 2) then n2:=m-n;
c:=1;
for i:=1 to n2 do
c:=c*(m-i+1) div i;
cmn:=c;
end;
procedure comb1(n,r:integer; var p:row; var i:integer);
var j,k:integer;
begin
i:=1;
for j:=r downto 1 do
if (p[j]<n+j-r) then
begin
inc(p[j]);
for k:=j+1 to r do p[k]:=p[k-1]+1;
exit
end;
i:=0;
end;
procedure process;
var i:integer;
begin
a1:=succ(a1);
for i:=1 to n-1 do
s2[p[i]]:=s2[p[i]]+[a1];
end;
begin {main}
writeln('输入人员总数 M(<8), 开锁必需人数 N:(<=M),'); readln(m,n);
comb2(m,n-1,c1);
comb2(m-1,n-1,c2);
writeln('特征总数:',c1, ' 每个磁卡特征数:',c2);
a1:=pred('A'); s1:=[];
for i:=1 to m do s2[i]:=[];
for i:=1 to c1 do
program lxw010;
type row=array [1..20] of shortint;
set1=set of char;
var p: row;
m,n,n2,i,j: integer;
c1,c2:longint;
s1:set1;
s2:array [1..10] of set1;
a1:char;
procedure comb2(m,n:integer; var cmn:longint);
var c:longint;
i:integer;
begin
n2:=n;
if n>(m div 2) then n2:=m-n;
c:=1;
for i:=1 to n2 do
c:=c*(m-i+1) div i;
cmn:=c;
end;
procedure comb1(n,r:integer; var p:row; var i:integer);
var j,k:integer;
begin
i:=1;
for j:=r downto 1 do
if (p[j]<n+j-r) then
begin
inc(p[j]);
for k:=j+1 to r do p[k]:=p[k-1]+1;
exit
end;
i:=0;
end;
procedure process;
var i:integer;
begin
a1:=succ(a1);
for i:=1 to n-1 do
s2[p[i]]:=s2[p[i]]+[a1];
end;
begin {main}
writeln('输入人员总数 M(<8), 开锁必需人数 N:(<=M),'); readln(m,n);
comb2(m,n-1,c1);
comb2(m-1,n-1,c2);
writeln('特征总数:',c1, ' 每个磁卡特征数:',c2);
a1:=pred('A'); s1:=[];
for i:=1 to m do s2[i]:=[];
for i:=1 to c1 do
begin a1:=succ(a1); s1:=s1+[a1] end;
for i:=1 to n-1 do p[i]:=i; p[n]:=m+1;
i:=1; a1:=pred('A');
while i>0 do
begin
process;
end;
for i:=1 to m do
begin
s2[i]:=s1-s2[i];
a1:=pred('A'); write(i,'# ');
for j:=1 to c1 do
begin
a1:=succ(a1);
if a1 in s2[i] then write(a1:2);
end;
writeln;
end;
end.


...全文
43 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruihuahan 2002-12-27
  • 打赏
  • 举报
回复
up
qing_li73 2002-12-27
  • 打赏
  • 举报
回复
If u really know c, the snippet above is simple
qhluo02 2002-12-27
  • 打赏
  • 举报
回复
太长啦 .........
=:就是==
later 2002-12-27
  • 打赏
  • 举报
回复
s2:array [1..10] of set1;
为什么不写成
s2:array [1..10] of char;
arvid_gs 2002-12-27
  • 打赏
  • 举报
回复
你对c语言到了白痴的地步
Xeroo 2002-12-27
  • 打赏
  • 举报
回复
type row=array [1..20] of shortint;
set1=set of char;
var p: row;
m,n,n2,i,j: integer;
c1,c2:longint;
s1:set1;
s2:array [1..10] of set1;
a1:char;

type 可以认为和typedef相同 set of char 意思是指由char组成的集合,就是在set1里面只能出现char
var 是用来定义变量的
var p:row;
c1,c2:longint;
s1:set1;
相当于
row p;
longint c1,c2;
set1 s1;
procedure comb2(m,n:integer; var cmn:longint);
里面的var不是变量名,变量名是cmn
内存泄漏 2002-12-26
  • 打赏
  • 举报
回复
不对,type row=array [1..20] of shortint;
set1=set of char;
这是宏定义,type 相当于c中的typedef。
later 2002-12-26
  • 打赏
  • 举报
回复
那这又是什么意思了??
type row=array [1..20] of shortint;
set1=set of char;

代码为:
type row=array [1..20] of shortint;
set1=set of char;
var p: row;
m,n,n2,i,j: integer;
c1,c2:longint;
s1:set1;
s2:array [1..10] of set1;
a1:char;

还有
procedure comb2(m,n:integer; var cmn:longint);
这个函数声明中,没有家VAR的是不是不是变量啊
谢谢
Xeroo 2002-12-26
  • 打赏
  • 举报
回复
sorry
是指定义一个type type名为row 类型为shortint型数组
Xeroo 2002-12-26
  • 打赏
  • 举报
回复
type row=array[1..20] of shortint;
意思是
定义一个数组,上界是20,下界是1,为shortint型
peterguan 2002-12-26
  • 打赏
  • 举报
回复
type row=array [1..20] of shortint;
是不是这个意思:
shortint *row;
shortint array[20];
row=arry;
later 2002-12-26
  • 打赏
  • 举报
回复
哦,谢谢各位大哥,可是第一句话我就不明白啊
和c 中一般的typedef有什么区别啊
season11 2002-12-26
  • 打赏
  • 举报
回复
还是自己动手,丰衣足食!
zhenxizhou 2002-12-26
  • 打赏
  • 举报
回复
PASCAL和C差不了多少的
demetry 2002-12-26
  • 打赏
  • 举报
回复
这个代码很简单,你如果懂C,应该可以看懂上面的程序。
自己的问题还得自己解决

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧