数学建模社区-数学中国
标题:
【C讨论组】程序不能运行,求救
[打印本页]
作者:
sea_star666
时间:
2011-4-7 22:42
标题:
【C讨论组】程序不能运行,求救
本帖最后由 sea_star666 于 2011-4-7 23:02 编辑
下面程序有个错误,谁能指点一下?
#include <stdio.h>
#include <stdlib.h>
int heads()
{
return rand()<RAND_MAX/2;
}
int main(int argc,char *argv[])//抛硬币模拟正态分布图形
{
int i,j,cnt;
int N=atoi(argv[1]),M=atoi(argv[2]);//这个地方有错
int *f=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++)
printf("*");
printf("\n");
}
return 0;
}
复制代码
作者:
sea_star666
时间:
2011-4-7 22:45
在VC6.0 中显示错误:initializing' : cannot convert from 'void *' to 'int *'
作者:
madio
时间:
2011-4-8 08:12
问题出在int *f=malloc((N+1)*sizeof(int));这一句上,因为malloc返回的是void *类型的指针,想要使用必须要强制类型转换,改成int *f=(int *)malloc((N+1)*sizeof(int));或者换用new,new返回的是具体类型的指针。
作者:
水木年华zzu
时间:
2011-4-8 13:59
ceo真牛
作者:
sea_star666
时间:
2011-4-9 00:46
本帖最后由 sea_star666 于 2011-4-9 00:48 编辑
回复
madio
的帖子
madio 不行啊,程序不能运行,内存不能读啊
int N=atoi(argv[1]),M=atoi(argv[2]); / /这个地方有错
//int N=30,M=1000; //如果换成这个就是对的
复制代码
atoi没怎么用过,看了MSDN也没明白哪里出错
昨天那个程序其他地方有点错误今天改了
#include <stdio.h>
#include <stdlib.h>
int heads()
{
return rand()<RAND_MAX/2;
}
int main(int argc,char *argv[])//抛硬币模拟正态分布图形
{
int i,j,cnt;
int N=atoi(argv[1]),M=atoi(argv[2]); //这个地方有错
//int N=30,M=1000; //如果换成这个就是对的
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");
}
return 0;
}
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5