㈠ 关于c语言数组 如何在一个数组尾部添加新的元素需要建立一个新的数组吗
插入元素必须需要数组元素要比元素个数多,给出如下例:
#include<iostream>
usingnamespacestd;
intmain()
{
intarr[100];//声明数组;
intn;
cout<<"请输入元素的个数:";
cin>>n;//有多少个数组元素
cout<<"请输入元素:";
for(inti=0;i<n;i++)
{
cin>>arr[i];
}
sort(arr,arr+n);//对数组进行从小到大排序
cout<<"请输入要插入的元素"<<endl;
cin>>arr[n];
sort(arr,arr+n+1);//对插入的元素进行从小到大排序
cout<<"排序后的元素:";
for(inti=0;i<n;i++)
{
cout<<arr[i]<<"";
}
cout<<arr[n]<<endl;
return0;
}
㈡ 跪求!C语言中如何给数组增加一行元素
#include"stdio.h"
intmain(intargc,char**argv){
inta[3][2]={{1,2}};
intb[2]={3,4};
intc[2]={5,6};
inti,j=0;
//赋值
for(i=0;i<3;++i){
液枝if(1==i){//B赋值到A
for(j=0;j<2;++j){
吵盯a[i][j]=b[j];
升埋和}
}elseif(2==i){//C赋值到A
for(j=0;j<2;++j){
a[i][j]=c[j];
}
}
}
//输出
for(i=0;i<3;++i){
printf(" a[%d]:",i);
for(j=0;j<2;++j){
printf("a[i][j]=%d;",a[i][j]);
}
}
printf(" ");
return0;
}
㈢ c语言插入数组元素(数组)
C语言中,数组是一组连续的相同类型的数据集合。 所以要在数组中插入元素,需要按照以下步骤:
1、找到插入点;
2、将插入点所在元素,及之后的所有元素,都向后移动一个单位;
3、将插入点赋值为要插入的元素。
以固定位置插入,代码举例如下:
#include<stdio.h>
voidinsert(int*a,intn,inti,intv)
//将长度为n的数组a,下标为i的位置插入值为v的元素。插入后,数组长度为n+1.
{
intj;
for(j=n-1;j>=i;j--)//将i及以后的后移一位。由于是固定位置插入,所以不需要查找插入位置。
a[j+1]=a[j];
a[i]=v;//插入元素。
}
intmain()
{
inta[5]={1,3,6,7};/五个元素数组,初始化四个值。
inti;
insert(a,4,2,5);//将5插入到a[2]位置。
for(i=0;i<5;i++)
printf("%d",a[i]);//输出结果,为13567
return0;
}
㈣ 如何扩充静态数组array的长度
C语言一维数组分静态一维数组和动态一维数组两种。
一、静态一维数组,在定义的时候就已经确定其长度。如
int a[10];
就是定义了一个长度为10个元素的整型数组。
静态数组不支持长度的增加。如果要增加长度,只能新定义一个更长的数组,并把原始数组的数据复制到新数组中。
二、动态一维数组,本质上是一个一维指针,并在其上分配一段内存,在这段内存上,可以当做数组来使用。
这种情况下,可以通过realloc函数,来实现增加长度。
int *p; //定义指针
p = malloc(10*sizeof(int));//分配10个元素。
p = realloc(p,20*sizeof(int));//重新分配,长度增加到20. 使用该函数,可以保持原本空间内的数据不变,只是可用空间增加。
㈤ c语言静态存储数组的赋值问题。
使用static定义静态数组,这个数组就会在程序的整个生命周期里存在,并且这个数组会分配并放在程序的.bss段中,这个段中的所有数据都是会被自动初始化为0的,如果是声明在函数中,那么调用这个函数每次使用的数组都是同一个数组,如果不是在函数中定义,那么这个数组就仅限于在此文件中可用。
而没有static声明的数组,这个数组会在调用这个函数所在的栈帧中分配,也就是在栈上分配,这个数组就不会被初始化,数组中的值是随机的,如果在函数中定义,那么调用这个函数时每次使用的数组一般是不同的。
至于要不要用static来声明,一方面是看你是否需要这个数组被长久使用,另一方面就是看是否需要让它自动初始化为0,还有就是在其他文件中是否需要使用这个数组。
㈥ C语言数组怎么插入一个元素
#include<stdio.h>
#include<stdlib.h>
#define MAX 40
void insert(int*p,int n,int m)
{ int i,k;
for(i=0;i<n;i++)
if(p[i]>=m)
{ k=i;
break;}
for(i=n-1;i>=k;i--)
p[i+1]=p[i];
printf("%d ",k);
p[k]=m;
}
void sort(int*p,int n)
{
int i,j;
for(i=1;i<n;i++)
for(j=0;i+j<n;j++)
if(p[j]>p[j+1])
{ int t;
t=p[j+1];
p[j+1]=p[j];
p[j]=t;
}
}
void main()
{
int a[MAX];
int n,i,m,d;
printf("输入野中则数据个数(n<40):");
d=scanf("%d",&n);
while(d!=1&&n>=40)
{ system("cls");
fflush(stdin);
printf("请重新输入:");
scanf("培指%d",&n);
}
printf("请输入数组元颂棚素:");
for(i=0;i<n;i++)
scanf("%d",a+i);
printf("请输入要插入的数字:");
scanf("%d",&m);
sort(a,n);
insert(a,n,m);
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf(" ");
}
㈦ C语言 怎么在原来的数组上增加新的数据
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
if((fp=fopen("bill","a+"))==NULL)
㈧ C语言静态数组
通俗的说静态数组就是在定义数组的时候,由操作系统分配的空间,比如
int
a[10];
这就是在定义时由系统给你分配了10个int类型的空间,这个空间是可以初始化的,比如
int
a[10]
=
{1,
2,
3,
4,
5,
6,
7,
8,
9,
10};
那么在这个定义之后,系统会首先分配10个int类型的存储空间,然后把大括号里面的数字分别的,按顺序放到这10个空间里。你所做的只是写这么一句,而数组赋值的操作就由系统完成了。当然,初始化与否看你的需求,初始化不是强制性操作,想初始化就初始化,不想也没问题,还是上面的例子继续:
int
a[10];
这里定义了,但是没初始化,这没有任何问题,以后你可以自己往里面赋值,比如
a[1]
=
8;
a[5]
=
3;
或者
for(int
i
=
0;
i
<
10;
i++)
a[i]
=
i;
等等
对于动态数组,不能被初始化,因为动态数组在定义时只是个指针,比如
int
*a;
这里变量a只是个指向int类型的指针,而不是数组。动态分配有10个int类型元素的数组,如下:
a
=
(int)
malloc(10*sizeof(int));
很明显,指针a在定义的时候不能被初始化,比如这样写就是错误的:
int
*a
=
{1,2,3,4,5,6,7,8,9,10};
/*
错误!
*/
因为a是只有4个字节的指针,没有可用的存储空间给需要初始化的变量。
所以,静态数组从语法上来说允许被初始化。作为程序员来说,你可以初始化静态数组,也可以不初始化,由你决定。
㈨ c语言中怎样用代码添加数组成员数
C语言的数组有动态数组和静态数组两种。
1 静态数组。
对于静态数组,无法新增加数组成员数量。
所以一定要最初始定义足够大的数组,然后可以用一个整型变量维护数组中现有成员个数,再动态增加实际成员个数。
比如
inta[1000];
intn=0;
while(scanf("%d",&a[n])!=EOF)n++;
这样的代码就可以实现增加数组成员数的类似效果。n为实际成员个数。
2 动态数组。
动态数组是可以随时改变数组成员个数的。不过为了确定当前数组个数,需要用两个整型变量来保存最大成员数,和已有成员数,这样就可以在不够的时候进行扩大。
intn=0,size=100;//n为当前元素个数,size为数组大小,初始为100.
int*a=NULL;//数组指针。
a=(int*)malloc(sizeof(int)*size);//初始分配100个元素。
while(scanf("%d",&a[n])!=EOF)
{
n++;
if(n>=size)//空间不足。
{
size+=100;//增加100个元素空间。
a=(int*)realloc(sizeof(int)*size,a);//重新分配空间。
}
}
㈩ C语言中新增一个数组元素
main()
{int i,n,m;
int a[8]={1,2,3,4,5,6,7,8};/*可以自己定义的,这里为正迹了方便*/
printf("\nthe original array a:");
for(i=0;i<8;i++)
printf("%-3d",a[i]);
printf("\n");
printf("\nplease enter whick number you want added n(0~8):");/*输入要宽凳加入的下标n,从0~8之间慎清旅*/
scanf("%d",&n);
for(i=8;i>n;i--)
a[i]=a[i-1];
printf("\Enter the number you added m:");
scanf("%d",&m);
a[n]=m;
printf("now,the array a:");
for(i=0;i<9;i++)
printf("%-2d",a[i]);
printf("\n");
}