Description:
上级内容:C++的使用
上机目的:熟悉掌握c++
我的程序:
/* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 文件名称:cpp1.cpp
* 作 者:svitter
* 完成日期:2013 年 5 月 5 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:输入数字N
* 问题描述:将数字排序
* 程序输出:数字排序的各种情况
* 问题分析:略
* 算法设计:略
*/
#include<iostream>
using namespace std;
int n;
int b[10];//作为空格填入数字
int a[10] = {0,1,2,3,4,5,6,7,8,9};//可能的数值
int main()
{
void xunhuan(int j,int a[10]);
cin>>n;
for(int i=1;i<=n;i++)
{
b[1] = a[i];//填入第一个格子数字
xunhuan(2,a);//递归填入后面的数字
}
return 0;
}
void xunhuan(int j,int a[10])
{
bool ifpanduan(int i,int s);
if (j<=n)//
for(int i=1;i<=n;i++)
{
int s=j-1;
if(ifpanduan(i,s))//使数字不同
{
b[j] = a[i];//对空格进行填表
xunhuan(j+1,a);
}
}
else
{
for(int m=1;m<=n;m++)//填入完毕,进行输出
{
cout<<b[m]<<" ";
}
cout<<endl;
}
}
bool ifpanduan(int i,int s)//判断数字是否重复
{
if(a[i]!=b[s])
{
s--;
ifpanduan(i,s);
if(s==0)
return 1;
}
else
return 0;
}
运行结果:
心得体会:
计算了很长时间,中间因为对数的判断出现了错误,造成后面的数字没有成功的与前面的不同。将bool型的函数作为if语句的参数
大爱C++。
知识点总结:
算法很容易出错,必须要每一步都要严谨才能保证错误减少。全局变量用的比较多。