求大神把这段pascal翻译成c++,很简单
const max=20;
var a:array[0..max]of integer;
n,r:1..max;
procedure compages(k:integer);
var i,j:integer;
begin
for i:=a[k-1]+1 to n-(r-k) do begin
a[k]:=i;
if k=r then begin
for j:=1 to r do write(a[j]:3);
writeln;
end
else compages(k+1);
end;
end;
begin {main}
readln(n,r);
compages(1);
end.
[解决办法]
#include <stdio.h>#include <stdlib.h>#define MAX 20int a[MAX];int n;int r;void compages(int k){ int i; int j; for(i = a[k - 1]; i <= n - (r - k); i++) { a[k] = i; if(k == r) { for(j = 1; j <= r; j++) { printf("%03d\n", a[j]); } } else { compages(k + 1); } }}int main(int argc, char* argv[]){ scanf("%d, %d", &n, &r); compages(1); return 0;}
[解决办法]
2楼的程序稍做修改
增加包含库
#include "conio.h"
修改main函数
void main()
{
scanf("%d, %d", &n, &r);
compages(1);
getch();
}