- 计算机生成随机数逻辑:伪随机(计算机随机取一点,固定在点周围取数)
- 解决方法:加入时间函数<time.h>,让时间函数控制取点
例题:随机 生成一列数,用最快的时间找出最大和第二大的数输出
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
srand((unsigned)time(NULL)); //时间函数,注意点:1.需要强制转换成无符号型 2.返回一个空指针NULL
int i;
int max = 0;
int max2 = 0;
int a[10] = {
0};
for (i = 0; i < 10; i++)
{
a[i] = rand() % 100; //生成一个100以内随机数的算法
if (a[i] > max)
{
max2 = max;
max = a[i];
}
if (a[i] > max2 && a[i] < max)
{
max2 = a[i];
}
}
for (i = 0; i < 10; i++)
{
printf("%d\n", a[i]);
}
printf("max = %d\n", max);
printf("max2 = %d\n", max2);
return 0;
}