大神求教!!为很么不能输出??
#include <cstdio>#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int a={0,1,2,3,4,5,6,7,8,9};
int b={0};
int c={0};
void dfs(int n){
if(c!=0){
for(int i=1;i<=n;i++){
printf("%5d",&c);
cout<<endl;
}
return ;
}
for(int i=n;i>=1;i--){
if(b=0){
c=a;
b=1;
return dfs(n-1);
b=0;
}
}
}
int main(){
int n;
scanf("%d",&n);
dfs(n);
return 0;
}
这是深搜的全排列问题 把c前面的取地址符去掉 BngThea 发表于 2017-12-9 22:28
把c前面的取地址符去掉
谢谢,可是还不行 #include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int b={0,0,0,0,0,0,0,0,0,0};
int c={0,0,0,0,0,0,0,0,0,0};
int k;
void dfs(int n){
if(n==0){
for(int i=1;i<=k;i++){
printf("%5d",c);
}
cout<<endl;
return;
}
for(int i=n;i>=1;i--){
// cout<<"<<<<<"<<c<<endl;
// cout<<"9.8"<<b;
if(b==0){
//// cout<<"6.5"<<c;
c=i;
b=1;
cout<<i<<"<"<<c;
return dfs(n-1);
b=0;
}
}
}
int main(){
int n;
k=n;
scanf("%d",&n);
dfs(n);
return 0;
} 最智者 发表于 2017-12-10 00:35
#include
#include
#include
刚修改的 最智者 发表于 2017-12-10 00:35
#include
#include
#include
把k=n放到scanf语句后面 if(c!=0) ???亲,你的c有不等于0的吗??
寒月独狼 发表于 2017-12-10 09:54
if(c!=0) ???亲,你的c有不等于0的吗??
亲,给它赋值之后就不是0了 BngThea 发表于 2017-12-10 07:38
把k=n放到scanf语句后面
感谢你的耐心,改了之后可是只能输出一行,真捉鸡。 #include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int b={0,0,0,0,0,0,0,0,0,0};
int c={0,0,0,0,0,0,0,0,0,0};
int k;
void dfs(int n){
if(n==0){
for(int i=1;i<=k;i++){
printf("%5d",c);
}
cout<<endl;
return;
}
for(int i=n;i>=1;i--){
if(b==0){
c=i;
b=1;
return dfs(n-1);
b=0;
}
}
}
int main(){
int n;
scanf("%d",&n);
k=n;
dfs(n);
return 0;
}
第N次修改 最智者 发表于 2017-12-10 12:32
#include
#include
#include
输出一行正常啊,你有没有对输出格式进行控制,只在最后加了个换行 BngThea 发表于 2017-12-10 12:51
输出一行正常啊,你有没有对输出格式进行控制,只在最后加了个换行
嗯。。不是那个意思,只输出了一种排列方式,并没有把所有的都输出 最智者 发表于 2017-12-10 12:54
嗯。。不是那个意思,只输出了一种排列方式,并没有把所有的都输出
从流程来看,就只进行了一次循环输出
页:
[1]