怎样用C语言生成10个1到100的不重复的随机数?

如题所述

楼主你好!
根据你的要求我已经将代码实现如下
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++){
A: a[i]=rand()%99+1;
for(int j=0;j<i;j++){
a[i]=rand()%99+1;
if(a[i]==a[j])goto A;
else break;
}
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}

希望我的回答对你有帮助!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-26
/*
7 29 89 2 63 35 34 82 96 87 69 6 44 12 5 93 4 67 46 83
Press any key to continue
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 20
int main() {
int i,j,flag,num,a[N];
srand((unsigned)time(NULL));
for(i = 0; i < N; ++i) {
num = rand()%98 + 1;
flag = 1;
for(j = 0; j < i; ++j) {
if(num == a[j]) {
flag = 0;;
break;
}
}
if(flag) a[i] = num;
else --i;
}
for(i = 0; i < N; ++i)
printf("%d ",a[i]);
printf("\n");
return 0;
}本回答被提问者和网友采纳
第2个回答  2013-03-26
用随机函数就好了
抄楼下的,但算法结构比楼上 好
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int srand_num[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
a[i]=rand()%99+1;
if(i>0&&srand_num[i]==srand[i-1]) i--;
}
for(int i=0;i<10;i++)
printf("%6d",srand_num[i]);
}
第3个回答  2013-03-26
rand()函数,遇到重复的不输出就ok了嘛
相似回答