| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3198 人关注过本帖
标题:随即产生一个10位数,并且用到0--9不重复
只看楼主 加入收藏
本人已死
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2005-9-20
收藏
得分:0 
嗯....有道理....

爸爸告诉我:女人喜欢有钱的男人;妈妈告诉我:女人喜欢有貌的男人。我翻翻钱包,又照照镜子,然后我哭了
2006-04-04 21:52
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

int a[10]={0,1,2,3,4...};

for()
{
b0=rand()%10;
b1=rand()%10;

c=a[b0];
a[b0]=a[b1];
a[b1]=c;
}
long s=0;
for()
{
s*=10;
s+=a[i];
}


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-04 22:51
李彦宏
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-3
收藏
得分:0 

我觉得我的程序更好理解:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
int a[10],i,j,k,number,flag;

srand(time(NULL));
i=0;
while(1)
{
flag=1;
number=rand()%10;
for(j=0;j<i;j++) //第一次不执行循环
if(a[j]==number)
{
flag=0;
break;
}
if(flag)
{
a[i]=number;
i++;
}
if(i==10)
break;
}
for(k=0;k<=9;k++)
printf("%3d",a[k]);
printf("\n");

getch();
return 0;
}


2006-04-04 23:43
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
12楼的方法很好。
int a[10]={0,1,2,3,4...};
for() /*好像这个循环退不出*/
{
b0=rand()%10;
b1=rand()%10;

c=a[b0];
a[b0]=a[b1];
a[b1]=c;
}
long s=0;
for()
{
s*=10;
s+=a[i];
}
另个还有一点:不能保证,第一位肯定不是0

2006-04-05 07:20
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
for() /*好像这个循环退不出*/


晕..楼上的..一看就知道. Knocker 就是大概写个意思.. 他那个for那样写根本就运行不了..

他就是让你里面的东西自己来写...呵呵!

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-04-05 07:53
黑衣圣堂
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-13
收藏
得分:0 
都是高手啊

我不是一支恣意逃窜的箭,而是一个威灵的射手,我的直感,会引领着,把自我射向,更遥远的,流浪。
2006-04-05 11:17
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

俺是个初学者,我试着也编了这个程序,可为什么出来的结果总是错误呢?
请高手指正一下,谢谢.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a[10],i,random,swap;
long int num=0;
for(i=0;i<10;i++)
{
a[i]=i;
}
srand(time(NULL));

for(i=0;i<10;i++)
{
random=rand()%10;
swap=a[i];
a[i]=a[random];
a[random]=swap;
}

for(i=0;i<10;i++)
{
num+=a[i];
num*=10;
}
printf("%ld\n",num);
getch();
}


对不礼貌的女生收钱......
2006-04-05 17:18
adsl0231
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-3-29
收藏
得分:0 
以下是引用SunShining在2006-4-5 7:53:00的发言:
for() /*好像这个循环退不出*/


晕..楼上的..一看就知道. Knocker 就是大概写个意思.. 他那个for那样写根本就运行不了..

他就是让你里面的东西自己来写...呵呵!

搞笑


2006-04-05 18:41
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
To:17

[QUOTE]long int num=0;[/QUOTE]

long太小,可以换成long long int(C99编译器)或double

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-05 19:43
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
先谢谢您.我是一个新手,没遇到用double型的,那请问该如何输出呢?
是printf("%e",num)? 或者啥呢?

对不礼貌的女生收钱......
2006-04-07 16:57
快速回复:随即产生一个10位数,并且用到0--9不重复
数据加载中...
 
   



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

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