当前位置:首页 » 编程语言 » c语言随机定义一个nn的数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言随机定义一个nn的数组

发布时间: 2022-09-04 07:59:34

c语言怎么定义一个数组并随机赋值

用随机数
srand( (unsigned)time( NULL ) );
for(i=0;i<=5;i++)//假设数组是5
{
a[i]=( rand()%100+1);
}
可以实现,记得包含头文件
time.h和stdlib.h

⑵ C语言里面有定义随机数组的函数吗

没有,只有随机数的函数 rand(),要定义,能用链表进行写
中国物联网校企联盟技术部

⑶ 求c语言编程:1~声明有n个元素的一维数组,随机输入n个元素的值,输出n个元素 2~对数组进行排序(

呵呵,时间不早了,谢谢都睡了,就给楼主送点福利吧。我就一码农,不为分数而来!

想起了8年前我苦心学C语言的艰难,没有电脑,没有师傅,代码都写在草稿纸上的。

希望你能好好学习编程,代码写的很详细了。
多读,多看,多写,多调试。

先贴效果:
1---------随机数组初始化为:
28 95 15 42 43 25 5 10 76 35
2---------数组排序后的结果为:
5 10 15 25 28 35 42 43 76 95
3---------请输入X值,查找是否存在
25
存在第 4 个位置
4---------输入X值,插入数组中。
35
插入后的数组为
5 10 15 25 28 35 35 42 43 76
5---------输入您要删除的元素X
35
5 10 15 25 28 42 43 76 -1 -1
请按任意键继续. . .

再贴源代码:
#include "stdio.h"
#include "conio.h"
#include <time.h>
#include <math.h>
#include<stdlib.h>
//给定数组,打印出来
void printArray(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
//给定数组 冒泡排序
void bubblesort(int a[],int n)
{
int i,j,temp=0;
for(i=0;i<n;i++)
{
for(j=n-1;j>i;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}
//给定数组和要查找的元素,查找是否存在
int isExist(int a[],int key,int n)
{
int pos=-1;
for(int i=0;i<n;i++)
{
if(a[i]==key)
{
pos=i;
break;
}
}
return pos;
}
//给定数组和要插入的元素
void insertArray(int a[],int key ,int n)
{
int pos=-1;//记录要插入的位置
for(int i=0;i<n;i++)
{
if(a[i]>key)
{
pos=i;
break;
}
}
//从最后一个开始,元素后移动,数组长度不够,最后一个会丢失的
if(pos>=0&&pos<n)
{
for(int i=n;i>pos;i--)
{
a[i]=a[i-1];
}
a[pos]=key;
}
}
//给定数组和要删除的值key 删除所有和key相等的值
void deleteArray(int a[],int key,int n)
{
int k=-1;
for(int i=0;i<n;i++)
{
if(a[i]==key)
{
//找到要删除的元素 从后往前覆盖
for(k=i;k<n-1;k++)
{
a[k]=a[k+1];
}
a[k]=-1;//最后用-1 替换掉
i=i-1;//推回一格,重复的元素也要删除掉
}
}
}
main()
{
int a[10]={0};
int x=0,pos=-1;
time_t t;
srand((unsigned)time(&t));

//随机初始化数组
for(int i=0;i<10;i++)
{
a[i]=rand()%100+1;
}
printf("\n1---------随机数组初始化为:\n");
printArray(a,10);

printf("\n2---------数组排序后的结果为:\n");
bubblesort(a,10);
printArray(a,10);

printf("\n3---------请输入X值,查找是否存在\n");
scanf("%d",&x);
pos=isExist(a,x,10);
if(pos==-1)
printf("不存在!\n");
else
printf("存在第 %d 个位置\n",pos+1);

printf("\n4---------输入X值,插入数组中。\n");
scanf("%d",&x);
insertArray(a,x,10);
printf("插入后的数组为\n");
printArray(a,10);

printf("\n5---------输入您要删除的元素X\n");
scanf("%d",&x);
deleteArray(a,x,10);
printArray(a,10);

system("pause");
}

⑷ C语言 如何随机生成数组

使用rand()函数+循环语句可生成一组随机数组。

1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数。rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。但这不是真正的随机数,C提供了srand()函数,它的原形是void srand( int a),用来设置一个种子数。在调用rand函数产生随机数前,应该先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。

2、例程:

#include<time.h>

#include<stdlib.h>

#include<stdio.h>

voidmain(){

srand((unsigned)time(NULL));//用当前系统时间设置种子

inta[100];

printf("随即初始化数组的100个数(范围是0~100). ");

for(inti=0;i<100;i++){

a[i]=rand()%101;//用rand函数生成0-100的随机数,并赋值给数组a[i]

printf("%4d",a[i]);

if(i%10==0&&i!=0)

printf(" ");

}

getchar();

}

⑸ c语言:我想定义一个行数为n的数组,为什么还是告诉我不确定数组的大小怎么改急求!!!

你这么写的话,那个n还是一个变量,c语言首先需要编译才能执行,而编译的时候编译器就认为这个n是不确定的,所以他不知道要给你分配多大的存储空间,我建议你可以定义一个指针来做,下面是一个例子。
假设数组存的是int型
那么 你先申请10个元素
int* a = (int*)malloc(sizeof(int)*10);
如果又来了个元素,那么你就可以
a=(int *)realloc(a,11*sizeof(int));
求元素个数int i,n=1;
for(i = 0;(a+i)!=NULL;i++)
{
;
}
n=i+1;//n就是元素个数

⑹ C语言中如何生成一个随机数组

代码: #include<time.h>
#include<stdlib.h>
#include<stdio.h>void main()
{
srand( (unsigned)time( NULL ) );
int a[100];
printf("随即初始化数组的100个数(范围是0~100).\n");
for(int i=0;i<100;i++)
{
a[i]=rand()%101;
printf("%4d",a[i]);
if(i%10==0 && i!=0)
printf("\n");
}
getchar();
}
图:

⑺ c语言 随机函数 随机生成一个一维数组

#include<stdio.h>
intmain()
{inti,n;
scanf("%d",&n);
inta[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("已输入的数据是: ");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf(" ");
return0;
}

⑻ C语言如何定义一个N行N列的二维数组任意输入数据

1、一般情况下,题目会给出N不大于M,m不大于几的限制条件,此时只需这样定义即可
int
a[N]M],其中N和M作为常数进行宏定义,比如
#define
N
5
#define
M
6

2、学到动态内存分配后,就不会有这样的担忧,需要时,可用malloc()函数在“堆”空间申请内存,该函数的原型是:
void
*malloc(
size_t
size
);,功能是要求系统分配大小为size个字节的堆空间,注意到该函数的分会类型是void,通过强制类型转换即可获得需要的数据类型,比如
int
*p;
p
=
(int
*)malloc(30);
如果申请成功,则返回该区域的首址,失败则返回NULL。

⑼ c语言:在main函数中,定义一个含N个元素的数组,其中N是符号常量,然后编写下列各子函数完成相应的功能

你看看是这个吧,常量N定义的是10

#define N 10
#include<stdio.h>
void main()
{
void sr(int a[]);
void sc(int a[],int m);
void js(int a[],int *max,int *min);
void px(int a[]);
int a[N],m,max,min;
/***************************/
printf("输入一个数m ");
scanf("%d",&m);
sr(a);
sc(a,m);
js(a,&max,&min);
printf("最大值max=%d,最小值min=%d\n",max,min);
px(a);
sc(a,m);
}
/***********************/
void sr(int a[])
{
int i;
printf("初始化数组,输入 %d 个数 :\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
}
/************************/
void sc(int a[],int m)
{
int i;
printf("输出数组a,每行%d 个数:\n",m);
for(i=0;i<N;i++)
printf("%5d",a[i])&&((i+1)%m==0)&&printf("\n");
printf("\n");
}
/*************************/
void js(int a[],int *max,int *min)
{
int i;
printf("求最大最小值\n");
*max=*min=a[0];
for(i=1;i<N;i++)
{
if(*max<a[i])*max=a[i];
if(*min>a[i])*min=a[i];
}
}
void px(int a[])
{
int i,j,tmp;
printf("数组排序\n");
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(a[i]<a[j])
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}

⑽ 在c语言中如何做到输入一个数字,就定义了n(为输入的数字)个数组

这个是没办法做到的。

数组定义在编译链接阶段就需要确定下来,在系统启动时需要在数据段分配指定空间。所以是不能在代码运行过程中动态定义数组的。
你可以用动态申请内存的方法为数组分配空间,但需要用一个统一的指针的偏移动作来实现访问不同数组的功能。