| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1155 人关注过本帖
标题:这个程序怎么写?
只看楼主 加入收藏
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用ih_ks在2007-8-4 15:31:38的发言:
还有你这程序...每次只能随机产生1个字母...跟题目有点不对哦.!

for循环里加个printf不就得了?

2007-08-04 15:36
ih_ks
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2007-1-1
收藏
得分:0 

哦...我没想到呢那怎么判断每个字母只能出现1次而且后来的单词不与前面的单词相同?

[此贴子已经被作者于2007-8-4 15:49:20编辑过]

2007-08-04 15:47
ih_ks
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2007-1-1
收藏
得分:0 

#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
char abc[3]={'a','b','c'};
char ch[5];
for(j=0;j<100;j++)
{
for(i=0;i<5;i++)
{
ch[i]=abc[rand()%3];
printf("%c",ch[i]);
}
printf("\t");
}

getch();
}

[此贴子已经被作者于2007-8-4 15:49:52编辑过]

2007-08-04 15:48
medicihophy
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-7-28
收藏
得分:0 
所以不是说要初始化随机种子吗?
srand(time(NULL))就是那个效果

2007-08-04 16:41
medicihophy
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-7-28
收藏
得分:0 
每个字母在每个单词你只出现一次是吧?
那也简单啊
建立一个表
即是一个数组b[26]=int{0};
那个字母出现一次就将b[i]=1就行了
然后每次产生之前都判断一次就可以了,这个方法比较傻,不过可行
当然,也有产生每次都不一样的随机数方法。似乎编起来不是很简单。

2007-08-04 16:45
ih_ks
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2007-1-1
收藏
得分:0 

其实我想要的结果是这样的:
abcde acbde adcbe aebcd....
还有在WIN-TC里把这句放进去就会出错srand(time(NULL))

2007-08-04 17:12
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 

思想是这样的:
首先从N个数字中产生一个随机数字t,输出对应的字母,将这个字母放到字母数组的末尾,然后从剩下的N-1个数字中再随机产生一个数字,得到相应的字母,这样循环就可以。
可以这样写,如果发现错误(产生了两个相同的字母),请告诉我。
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <conio.h>

#define N 10 /*假设从10个字母中产生*/
#define NUM 5 /*假设产生5个不同的字母*/

void Exchange(char *a,char *b) /*交换两个字符*/
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
int main()
{
int i=0,j=0;
char Letter[N]="\0",Array[NUM]="\0";
for(i=0;i<N;i++)
Letter[i]=97+i; /*初始化字母数组*/
srand((unsigned)time(NULL));
for(i=0;i<NUM;i++)
{
j=rand()%(10-i);
Array[i]=Letter[j];
Exchange(&Letter[j],&Letter[N-1-i]); /*将用过的字母放到数组末尾*/
}
for(i=0;i<NUM;i++)
printf("%c ",Array[i]);
printf("\n");
system("pause");
return 0;
}


坚决不跟用TC的人打交道!
2007-08-06 02:54
sky_wxw
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2007-2-9
收藏
得分:0 
回复:(medicihophy)每个字母在每个单词你只出现一次...
我觉得加一个判断语句就可以了吧
就一之前的字母进行对比,如果有的话就返回重新产生随机数,没有的话就把它加入到字符串中。

我选择 仅仅是因为 我喜欢
2007-08-07 10:46
xu66zhen
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-7-23
收藏
得分:0 
用指针也可以实现!

2007-08-07 11:24
C爷们
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-5
收藏
得分:0 
用for,再用枚举就可以拉!
2007-08-09 12:25
快速回复:这个程序怎么写?
数据加载中...
 
   



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

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