用C语言编程:随机产生15个互不重复的介于0~19之间的随机整数存入数组中。
时间: 2024-05-01 15:16:30 浏览: 91
好的,这个问题是关于编程的,我可以回答。下面是参考代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int arr[15];
int i, j, temp;
srand(time(NULL)); // 设置随机数种子
// 随机生成15个不重复的整数
for (i = 0; i < 15; i++) {
arr[i] = rand() % 20;
for (j = 0; j < i; j++) {
if (arr[j] == arr[i]) {
i--; // 如果重复了,重新生成
break;
}
}
}
// 输出结果
printf("生成的随机数为:\n");
for (i = 0; i < 15; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
相关问题
用C语言编程:随机产生30个互不相同的三位正整数给数组A,再随机产生30个互不相同的三位正整数给数组B,编程将两个数组中互不相同的元素合并放在数组C中,分别输出三个数组的内容
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 30
int main()
{
int A[SIZE], B[SIZE], C[SIZE * 2];
int i, j, k, flag;
srand(time(NULL)); // 初始化随机数种子
// 生成数组A
for(i = 0; i < SIZE; i++)
{
do {
A[i] = rand() % 900 + 100; // 生成三位正整数
flag = 0;
for(j = 0; j < i; j++)
{
if(A[i] == A[j]) // 判断是否重复
{
flag = 1;
break;
}
}
} while(flag == 1);
}
// 生成数组B
for(i = 0; i < SIZE; i++)
{
do {
B[i] = rand() % 900 + 100; // 生成三位正整数
flag = 0;
for(j = 0; j < i; j++)
{
if(B[i] == B[j]) // 判断是否重复
{
flag = 1;
break;
}
}
for(j = 0; j < SIZE; j++)
{
if(B[i] == A[j]) // 判断是否与数组A中元素重复
{
flag = 1;
break;
}
}
} while(flag == 1);
}
// 合并数组A和数组B中的元素到数组C中
k = 0;
for(i = 0; i < SIZE; i++)
{
C[k] = A[i];
k++;
for(j = 0; j < SIZE; j++)
{
if(B[j] == A[i]) // 判断是否与数组A中元素重复
{
break;
}
}
if(j == SIZE) // 如果不重复,则加入数组C中
{
C[k] = B[j];
k++;
}
}
for(i = 0; i < SIZE; i++)
{
for(j = 0; j < SIZE; j++)
{
if(A[i] == B[j]) // 判断是否与数组B中元素重复
{
break;
}
}
if(j == SIZE) // 如果不重复,则加入数组C中
{
C[k] = A[i];
k++;
}
}
for(i = 0; i < SIZE; i++)
{
C[k] = B[i];
k++;
}
// 输出数组A
printf("数组A:\n");
for(i = 0; i < SIZE; i++)
{
printf("%d ", A[i]);
}
printf("\n");
// 输出数组B
printf("数组B:\n");
for(i = 0; i < SIZE; i++)
{
printf("%d ", B[i]);
}
printf("\n");
// 输出数组C
printf("数组C:\n");
for(i = 0; i < SIZE * 2; i++)
{
printf("%d ", C[i]);
}
printf("\n");
return 0;
}
```
程序首先生成数组A和数组B,保证其中元素互不相同。然后将数组A和数组B中互不相同的元素合并到数组C中,并分别输出三个数组的内容。
在c语言中产生20个互不相同的10~99随机整数保存到数组中
可以使用 rand() 函数和循环语句来产生随机数,并使用一个数组来保存这些数。具体方法如下:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int nums[20]; // 声明一个包含20个元素的数组
srand(time(NULL)); // 初始化随机数种子
for (int i = 0; i < 20; i++)
{
int num = rand() % 90 + 10; // 产生一个10~99之间的随机数
int j;
// 检查该随机数是否和已有的数重复
for (j = 0; j < i; j++)
{
if (num == nums[j])
{
break;
}
}
if (j == i) // 如果没有重复,则保存到数组中
{
nums[i] = num;
}
else // 如果有重复,则继续产生新的随机数
{
i--;
}
}
// 输出结果
for (int i = 0; i < 20; i++)
{
printf("%d ", nums[i]);
}
return 0;
}
```
这个程序会产生20个不重复的随机整数,并将它们保存到一个数组中,最后输出这些数。注意,我们在产生随机数之前,用 time() 函数获取当前时间作为随机数种子,这样每次运行程序都会得到不同的随机数序列。
阅读全文