| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2035 人关注过本帖
标题:0到9的的所有谁会做 7位数排序,要求7位数不能有重复的数字出现
只看楼主 加入收藏
nlf11119
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-1
收藏
 问题点数:0 回复次数:12 
0到9的的所有谁会做 7位数排序,要求7位数不能有重复的数字出现

0到9的的所有7位数排序,要求7位数不能有重复的数字出现
搜索更多相关主题的帖子: 位数 数字 
2006-05-23 18:54
nlf11119
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-1
收藏
得分:0 
0到9的的所有7位数排序,要求7位数不能有重复的数字出现
2006-05-23 18:55
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以前我发过
改一下就行了

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-23 20:20
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
#include<iostream>
#include<time.h>
using namespace std;
void main()
{
int i;
int tmp[7];
srand(time(0));
for(int j=0,z=0;j<7;j++,z=0)
{
i=rand()%10;
while(z<=j)
{
while(tmp[z++]==i)
{
i=rand()%10;
z=0;}
}
tmp[j]=i;
cout<<tmp[j]<<endl;
}
}

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-23 20:34
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你这输出的是所以的数字吗?只是一个随机7位数

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-23 21:04
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

哈哈
看错了
那用几个FOR不就行了

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-23 21:10
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
提供个思路
你可以用笨的方法
7个FOR循环来实现数连续变换
里面用个char[7]itoa char[i]分别来储存各个循环的数
或者用直接初始char[7]用FOR比较他们的ASCII来++实现进位
9:20我又要回去了不好意思


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-23 21:23
俗狼
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-5-9
收藏
得分:0 

我的想法是使用7变量的for循环,循环前提是变量都不相等.将合适数存入一数组,
再排序,就OK了,挺麻烦,不过可以一试,不行的话给我回帖,呵呵!


天行键,君子以自强不息!
2006-05-23 21:27
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

我说我的想法吧,先定义一个数组arr[7];
直接for(int i=1234567;i<9876543;i++)
然后循环里面int n=i;再用一个循环
for(int i=0;i<7;i++){arr[i]=n%10;n/=10;}
这样再编写一个判断数组中是否有重复数字出现的函数就可以了
函数原型为:bool IsRepeat(int *p);
如果有重复返回true;否则返回false;
然后在在循环语句里用if(!IsRepeat(arr))cout<<i;//输出各位上的数字没有重复时的i


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-23 21:56
Satyr
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-7
收藏
得分:0 
楼主的意思是
0000000-9999999
这样输出
所以需要用char

C++的博大精深让我叹服
2006-05-24 13:07
快速回复:0到9的的所有谁会做 7位数排序,要求7位数不能有重复的数字出现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016643 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved