比如,我要编一道数学题,在1~10中拿两个数M,N。SUM=M+N,输出SUM。
----------------解决方案--------------------------------------------------------
int shu(int num,int d)//随即1-num的数,d是种子
{
time_t t;
srand((unsigned)(time(&t)+d));
return ( rand()%num);
}
----------------解决方案--------------------------------------------------------
谢谢高手!
----------------解决方案--------------------------------------------------------
头文件 #include <time.h>
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include<stdlib.h>
main()
{ int i,a;
for(i=1;i<11;i++)
{
a=rand()%10+rand()%10;
printf("%d+%d=%d\n",rand()%10,rand()%10,a);
}
return 0;
}
----------------解决方案--------------------------------------------------------
楼上的你随即出来的是什么东西?不对的 ,rand()每次随即的数值都是不一样的 自然a的值也不是前面的两个rand()的和
稍加改动..
#include "stdio.h"
#include<stdlib.h>
void main()
{ int i,a,b;
for(i=1;i<11;i++)
{
a=rand()%10;
b=rand()%10;
printf("%d+%d=%d\n",a,b,a+b);
}
}
----------------解决方案--------------------------------------------------------
多谢提醒.
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include<stdlib.h>
void main()
{ int i,a,b;
for(i=1;i<11;i++)
{
a=rand()%10;
b=rand()%10;
printf("%d+%d=%d\n",a,b,a+b);
}
}
i控制的是循环次数吗? 还是别的? 如果是循环次数 为什么 a b 的值每次会不一样?
----------------解决方案--------------------------------------------------------
i控制的是循环次数,
rand()每次随即的数值都是不一样的;所以每次循环a,b都是不一样的.
若想一样得用种子
int shu(int num,unsigned d)//随即1-num的数,d是种子
{
srand(d);
return ( rand()%num);
}
在主函数调用这个函数试试?每次都一样..
#include <stdio.h>
#include <stdlib.h>
int shu(int,unsigned);
void main()
{
for(int i =0;i<10;i++)
{
printf("%d\n",shu(10,12));//12是种子 10表示随即10以内的数
}
}
int shu(int num,unsigned d)//随即1-num的数,d是种子
{
srand(d);
return ( rand()%num);
}
----------------解决方案--------------------------------------------------------
那 为什么 把for 循环去掉后 无论你执行多少次 a b 的值 都一样
----------------解决方案--------------------------------------------------------