直接的方法是 rand() % N 这样做不好,因为很多随机数生成器的低位并不随机。。比较好的方法是: int main() { int i,j; for(i=0;i<10;i++) { j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); printf("%d ",j); } system("pause"); } 如果需要每次生成都不一样,可以加入时间作为随机种子。int main() { int i,j; srand((int)time(0)); for(i=0;i<10;i++) { j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); printf("%d ",j); } system("pause"); }