【发布时间】:2016-02-26 22:33:36
【问题描述】:
#include <stdlib.h>
#include <stdio.h>
void roll_three(int* one, int* two, int* three)
{
int x,y,z;
x = rand()%6+1;
y = rand()%6+1;
z = rand()%6+1;
one = &x;
two = &y;
three = &z;
printf("%d %d %d\n", *one,*two,*three);
}
int main()
{
int seed;
printf("Enter Seed: ");
scanf("%d", &seed);
srand(seed);
int x,y,z;
roll_three(&x,&y,&z);
printf("pai: %d %d %d\n", x,y,z);
if((x==y)&&(y==z))
printf("%d %d %d Triple!\n",x,y,z);
else if((x==y)||(y==z)||(x==z))
printf("%d %d %d Double!\n",x,y,z);
else
printf("%d %d %d\n",x,y,z);
return 0;
}
这是终端,我输入 123 作为种子。但是,roll_three 中的 printf 和 main 中的 printf 给了我不同的输出?为什么 *one 和 x 不同?
【问题讨论】:
-
函数
srand()期待unsigned int所以建议main()开头:unsigned seed; printf("Enter Seed: "); scanf("%u", &seed); srand(seed);