随机产生n个[-10,10]范围内的无序随机数

随机产生n个[-10,10]范围内的无序随机数,C语言,运用数组

用rand函数啊

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int n,a[1000];
    scanf("%d",&n);
    srand(time(NULL));
    for(int i=0;i<n;i++)
        a[i] = rand()%21-10;
    for(int i=0;i<n;I++)
        printf("%d ",a[i]);
}

  • 这篇博客也许可以解决你的问题👉 :C 语言编程:输入10个整数,将其中最小的数与第一个数对换
  • 除此之外, 这篇博客: C语言--指针--返回指针值的函数中的 例题10-24 有若干个学生的成绩(每个学生有4门课),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指针函数实现。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • //例题10-24 有若干个学生的成绩(每个学生有4门课),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指针函数实现。 
    
    #include<stdio.h>
    int main()
    {
    	float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
    	float *search(float (*pointer)[4],int n);  //函数声明 
    	float *p;
    	int i,m;
    	printf("ente the number of student:");
    	scanf("%d",&m); //m是要查找的学生序号 
    	printf("The scores of No.%d are:\n",m);
    	p=search(score,m);
    	for(i=0;i<4;i++)
    		printf("%5.2f\t",*(p+i));// *(p+i):该学生第i门课程的成绩 
    	printf("\n");
    	return 0;
    } 
    float *search(float (*pointer)[4],int n)
    //pointer是指向包含4个元素的一维数组的指针变量 
    //pointer+1 指向socre数组序号为1的行 
    // *(pointer+1) 指向1行0列元素。加上*后,指针 行控制-->列控制 
    {
    	float *pt;
    	pt=*(pointer+n);
    	return pt;
    }
    

    输入:1
    结果如图:
    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main() {
        int n;
        scanf("%d", &n); // 输入n
        if (n > 20) { // 判断n是否过大
            printf("n should be less than or equal to 20.");
            return 0;
        }
        srand(time(0)); // 设置种子,确保每次运行结果不同
        int arr[n]; // 定义长度为n的整型数组
        for (int i = 0; i < n; i++) { // 循环n次填充数组
            int rand_int;
            do {
                rand_int = rand() % 21 - 10; // 生成[-10,10]之间的随机整数
            } while (rand_int_is_duplicate(arr, i, rand_int)); // 检查该随机整数是否已存在于数组中
            arr[i] = rand_int; // 将该随机整数填入数组中
        }
        printf("The random array is:\n"); // 输出数组
        for (int i = 0; i < n; i++) {
            printf("%d ", arr[i]);
        }
        return 0;
    }
    
    int rand_int_is_duplicate(int arr[], int len, int rand_int) { // 检查该随机整数是否已存在于数组中
        for (int i = 0; i < len; i++) {
            if (arr[i] == rand_int) {
                return 1; // 存在相同的整数,返回1表示重复
            }
        }
        return 0; // 没有重复,返回0
    }