| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 461 人关注过本帖
标题:高手进来帮个忙,谢谢!
只看楼主 加入收藏
dl5200605
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-10-10
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
高手进来帮个忙,谢谢!
怎么能够输入一个数之后,让6个1到33的随机数之和等于它?会的高手帮个忙,本人没接触过随机这块,谢谢了。
搜索更多相关主题的帖子: 能够 
2010-03-22 18:56
csj_65
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:163
注 册:2010-3-12
收藏
得分:10 
题意不清,自我矛盾,如果6个数是随机的,他们的和也是随机的,你怎么知道你输入的数等于他们的和?除非你刚开始就知道他们的和.这又跟和是个随机数相矛盾了。
2010-03-22 19:06
hziee
Rank: 4
等 级:业余侠客
帖 子:64
专家分:257
注 册:2010-3-12
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
void fn(int i)
{
 int a,b,c,d,e,f;
 static int k=0;
 k=k+1;
 if(k==5000) exit(0);//防止无限循环导致内存出错,这里只循环5000次
 a=rand()%33+1;
 b=rand()%33+1;
 c=rand()%33+1;
 d=rand()%33+1;
 e=rand()%33+1;
 f=rand()%33+1;
if((a+b+c+d+e+f)==i)
   printf("产生6个随机为%5d%5d%5d%5d%5d%5d\n",a,b,c,d,e,f);
else
   fn(i);
}

int main()
{
 int m;
 printf("请输出你要数");
 scanf("%d",&m);
 while(m>198||m<6)
    {
     printf("你输入的数不符合要求,请重新输入");
     scanf("%d",&m);
     }
fn(m);
return 0;
}

[ 本帖最后由 hziee 于 2010-3-22 20:10 编辑 ]
2010-03-22 20:01
liyang04300
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2010-3-17
收藏
得分:0 
题目有点难度,不过还是佩服楼上的!
2010-03-22 20:34
liyang04300
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2010-3-17
收藏
得分:0 
k=k+1;
if(k==5000) exit(0);//防止无限循环导致内存出错,这里只循环5000次
a=rand()%33+1;
b=rand()%33+1;
c=rand()%33+1;
d=rand()%33+1;
e=rand()%33+1;
f=rand()%33+1;
这一段程序代码是什么意思呀?楼上的指教一下,谢谢!
2010-03-22 21:14
hziee
Rank: 4
等 级:业余侠客
帖 子:64
专家分:257
注 册:2010-3-12
收藏
得分:0 
rand()就是产生一个0到RandMax整数,rand()%33+1对33求余+1。
rand()其实产生不是实际意义随机数,要和srand()一起用可以。
2010-03-22 22:11
dl5200605
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-10-10
收藏
得分:0 
谢谢2楼的,流泪中!!
2010-03-22 22:48
快速回复:高手进来帮个忙,谢谢!
数据加载中...
 
   



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

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