C++编程2013.05.05

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++。

知识点总结:

  算法很容易出错,必须要每一步都要严谨才能保证错误减少。全局变量用的比较多。


转载于:https://my.oschina.net/u/1017188/blog/333703

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值