| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4154 人关注过本帖
标题:请教一个抛硬币的模拟程序,谢谢了
只看楼主 加入收藏
fu563048951
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2012-2-19
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:9 
请教一个抛硬币的模拟程序,谢谢了
这是一个抛硬币的模拟程序
#include <stdio.h>
#include <stdlib.h>

int heads()
{
    return rand() < RAND_MAX/2;//这句是为了产生什么呢
}
main(int argc,char *argv[])
{
    int i,j,cnt;
    int N = atoi(argv[1]),M = atoi(argv[2]);//这句为啥是argv[1]和argv[2],argv【0】为啥不用呢?
    int *f =(int *) malloc((N+1)*sizeof(int));
    for(j=0;j<=N;j++)f[j]=0;
    for(i=0;i<M;i++,f[cnt]++)
        for(cnt=0,j=0;j<=N;j++)
            if(heads()) cnt++;
            for(j=0;j<=N;j++)
            {
                printf("%2d",j);
                for(i=0;i<f[j];i+=10)printf("*");
                printf("\n");
            }
}

这个程序是抛N次,运行M次,用数组f记录i次正面朝上出现的次数,但是正面朝上在程序中是如何判断的我不太清楚请大侠帮忙看看  谢谢了
搜索更多相关主题的帖子: return include 
2012-10-14 10:15
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:4 
return rand() < RAND_MAX/2; 随机产生0 和 1.....

argv[0]指向输入的程序路径及名称,它并不是在函数里面需要用到的参数......
2012-10-14 12:10
fu563048951
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2012-2-19
收藏
得分:0 
这个参数是怎么来定呢?比如M=argv[2],M具体是多少?这个程序能否简单阐述一下意思呢,运行的时候没有错误  但是会被迫中止。
2012-10-14 13:07
fu563048951
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2012-2-19
收藏
得分:0 
求高手解答一下吧  
2012-10-14 17:03
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:4 
main(int argc,char *argv[])
这是系统shell调用你编写的c应用程序时的接口,其中argc表示命令行参数个数,argv[0]是你的c程序名,后面是你的命令行参数;
假设你的程序名为hello,调用的时候可以用hello a b 3,那么argv[1]=a,argv[2]=b,argv[3]=3

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-10-14 17:33
fu563048951
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2012-2-19
收藏
得分:0 
回复 5楼 pauljames
这个我了解了,但是在这个程序中,M和N的值是多少呢,就是这个atoi(argv[1])和(argv[2])的结果是多少?能否解答一下
2012-10-15 09:58
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:4 
以下是引用fu563048951在2012-10-15 09:58:43的发言:

这个我了解了,但是在这个程序中,M和N的值是多少呢,就是这个atoi(argv[1])和(argv[2])的结果是多少?能否解答一下

你说你了解但你又不知道这里是多少 说明你还没真正了解。。。

这里的两个东西的值和你这个程序运行时候的参数有关系 所以看代码开不出来。。
2012-10-15 10:01
fu563048951
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2012-2-19
收藏
得分:0 
回复 7楼 zklhp
谢谢了,我想运行测试一下但是都是被迫中断,不知道哪里有错误,能提示一下吗?
2012-10-15 19:13
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:4 
xi

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-10-15 23:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
定义0为正面朝上:
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 TonyDeng 于 2012-10-16 04:12 编辑 ]

授人以渔,不授人以鱼。
2012-10-16 04:11
快速回复:请教一个抛硬币的模拟程序,谢谢了
数据加载中...
 
   



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

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