代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int n;
int i;
int cnt=0;
int num;
scanf("%d",&n);
srand(time(0));
for(i = 0; i < n; i++)
{
num = rand()%100;
cnt += (num & 1);
i && printf(" ");
printf("%d",num);
}
printf("\n");
printf("cnt:%d",cnt);
return 0;
}
.
.
.
运行结果:
注意:
-
计算机没有办法产生真正的随机数的,是用算法模拟,所以你只调用rand,每次出来的东西是一样的。设置一个种子后,根据种子的不同,就可以产生不同的数了。而怎么保证种子的不同呢?最简单的办法当然是用永远在向前的时间 srand(time(0));
-
num%2 和 num&1 的作用是一样的,但在计算机中位运算是相对快的
-
&& 是逻辑运算符 只要左端的条件式为假直接不成立 ,不会去判断右端的条件式
i && printf(" ");
&& 是条件运算符中的 与,或者叫AND
对于他,全真才真,一假则假