标题:新手求助,这个C程序哪错了?
只看楼主
月色微茫
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-18
结帖率:100%
已结贴  问题点数:20 回复次数:10 
新手求助,这个C程序哪错了?
#include<stdio.h>
#include<stdlib.h>
getrand(int*a,int n)
{ int i;
for(i=0;i<n;i++)
a[i]=random(50);
}
arrout(int*a,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d",a[i]);
}
getsum(int*a,int*w,int n)
{ int i,j,sum=0;
for(i=0,j=0;i<n;i++)
{ sum+=a[i];
if((i+1)%3==0)
{ w[j]=sum;
sum=0;
j++;
}
}
}
main()
{ int a[15],w[5]={0};
getrand(a,15);
arrout(a,15);
getsum(a,w,15);
arrout(w,5);
}
为什么编译时出现warning C4013: 'random' undefined; assuming extern returning int的警告
 

[ 本帖最后由 月色微茫 于 2011-2-5 23:55 编辑 ]
搜索更多相关主题的帖子: undefined 
2011-02-05 23:40
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
得分:5 
这个问题。。。。。。它 。。。。

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2011-02-05 23:41
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:5 
  用 法: int random(int num);  
 程序例:
   #include <stdlib.h>
   #include <stdio.h>
   #include <time.h>
   /* prints a random number in the range 0 to 99 */
   int main(void)  
 {   
     randomize();  随机数种子被初始化时
   printf("Random number in the 0-99 range: %d\n", random (100));  
    return 0;  
 }

小代码,大智慧
2011-02-06 00:03
月色微茫
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-18
得分:0 
回复 3楼 点线面
我还是没明白哪错了啊
2011-02-06 00:10
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:0 
添加#include <time.h>

小代码,大智慧
2011-02-06 00:12
月色微茫
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-18
得分:0 
回复 5楼 点线面
添了还是出现一样的警告
2011-02-06 00:14
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:0 
上网一查 random(int num);
发觉它不是C语言标准里面的,而是某些编译器对它的支持。楼主不妨用rand()  

小代码,大智慧
2011-02-06 00:38
月色微茫
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-18
得分:0 
回复 7楼 点线面
改成rand(50)又出现了warning C4087: 'rand' : declared with 'void' parameter list的警告
太晚了我先睡了,但还十分感谢你的回答
2011-02-06 01:01
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:0 
这个不是这样用的
 rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。
详述rand()
  (1)使用干函数首先应在开头包含头文件stdlib.h   #include<stdlib.h>   (2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。   (3)rand()函数没有输入参数,直接通过表达式rand()来引用;例如可以用下面的语句来打印两个随机数:   printf("Random numbers are: %i %i\n",rand(),rand());   (4)因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机。   (5)为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
例子
  文件名: rand_srand.c   /* This program generates and prints ten random integers between 1 and RAND_MAX*/   #include <stdio.h>   #include <stdlib.h>   int main()   {   unsigned int seed; /*申明初始化器的种子,注意是usigned int 型的*/   int k;   printf("Enter a positive integer seed value: \n");   scanf("%u",&seed);   srand(seed);   printf("Random Numbers are:\n");   for(k = 1; k <= 10; k++)   {   printf("%i",rand());   printf("\n");   }   return 0;   }   当提供的种子相同时,随机数序列也是相同的。而且当种子为1时,与不使用srand()函数时一样的,也就是说rand()函数默认情况下初始化种子值为1;   在stdlib.h 中这两个函数的原型是:   int rand();   void srand (unsigned int);   srand(time(0)); i=rand(); 这样i就是一个真正意义上的随机数。   rand()产生伪随机数,srand函数提供种子,种子不同产生的随机数序列也不同,所以通常先调用srand函数 time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒,种子不同当然产生的随机数相同几率就很小了。

小代码,大智慧
2011-02-06 01:09
qq312154421
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:124
专家分:120
注 册:2010-6-7
得分:5 
面哥,好给力啊

勤奋不止,自强不息。
2011-02-07 00:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-331875-1-1.html




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

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