我是编程的新手,我想要一个脚本,它在0:1之间给我4个不同的随机数,所以我可以使用毕达哥拉斯并得到它的平均值。经过一些尝试,我设法创建0:1之间的数字,但它们都是相同的值,我如何使它们彼此不同?抱歉我的英语不好。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int x1,x2,y1,y2,sum,pythagoras;
//x1,x2,y1,y2 must be different values
//sum = (x2-x1)^2 + (y2-y1)^2
//pythagoras = sqrt(soma)
int tempo = time(NULL);
srand(time);
double number = ((double) rand() * 2) / ( double ) RAND_MAX;
printf("x1 = %.3f", number);
printf(" x2 = %.3f", number);
printf(" y1 = %.3f", number);
printf(" y2 = %.3f", number);
}
提前感谢。
我的问题是:
答案 0 :(得分:2)
你只做了一个随机数并打印了4次。
执行此操作时:
double number = ((double) rand() * 2) / ( double ) RAND_MAX;
这并不意味着您使用number
时会执行上述语句。这意味着当你这样做时,它会发生一次。
如果您想要4个随机数,则需要拨打rand
4次:
double number = ((double) rand() * 2) / ( double ) RAND_MAX;
printf("x1 = %.3f", number);
number = ((double) rand() * 2) / ( double ) RAND_MAX;
printf(" x2 = %.3f", number);
number = ((double) rand() * 2) / ( double ) RAND_MAX;
printf(" y1 = %.3f", number);
number = ((double) rand() * 2) / ( double ) RAND_MAX;
printf(" y2 = %.3f", number);
作为“公式”所做的是创建一个函数:
double rand_number()
{
return (double) rand() * 2) / ( double ) RAND_MAX;
}
然后你可以在需要时调用这个函数:
printf("x1 = %.3f", rand_number());
printf(" x2 = %.3f", rand_number());
printf(" y1 = %.3f", rand_number());
printf(" y2 = %.3f", rand_number());