导航:首页 > 软件知识 > c语言数组删除两个程序怎么写

c语言数组删除两个程序怎么写

发布时间:2023-01-18 08:47:34

⑴ 我在编写一个c语言删除数组的程序,就输入数组中的一个数,然后将其删除,我的代码如下:

if(delethappy == happy[i])这句后多了分号,让我找了大半夜,晕,以后仔细点。

⑵ C语言删除数组元素

C语言删除数组指定元素的源代码如下:

#include <stdio.h>

main()

{

char s[80],c;

int j,k;

printf(" Enter a string: ");

gets(s);

printf(" Enter a character: ");

c=getchar( );

for(j=k=0;s[j]!= '';j++)

if(s[j]!=c)

s[k++]=s[j];

s[k]= '';

printf(" %s ",s);

system("pause");

}

(2)c语言数组删除两个程序怎么写扩展阅读

自定义函数代码如下

function delarrayval2($arr,$v){

$keyarr = array_keys($arr, $v);

if(count($keyarr)){

foreach ($keyarr as $key) {

unset($arr[$key]);

}

}

return $arr;

}

⑶ 用C语言实现一维数组中删除第N个元素的程序怎么写

例6-2
将10个整数存入数组,删除数组中的某个元素。例如,数组中有1,2,3,4,5,6,7,8,9,10共10个元素,删除第5个元素后,数组中剩下9个元素1,2,3,4,6,7,8,9,10。
首先定义一个长度为10的int型数组,用来存放10个整数。用循环输入数组的每个元素,以及要删除元素的序号(假设序号为n)。
使用循环,将数组中序号n后的所有元素向前移动一位,然后删除最后一个元素。这里要注意数组的下标是从0开始的,序号为n的数组元素,对应数组的下标应该是n-1。
读者可以思考:如果本例是向数组插入一个元素,循环应该如何来写?
main()
{
int
nArray[10],
i,num;
/*输入10个整数*/
printf("\nPlease
input
10
integers:
");
for(i=0;i<10;i++)
scanf("%d",&
nArray
[i]);
/*输入要删除的元素序号*/
printf("\nPlease
input
sequence
number
of
the
element
to
delete:
");
scanf("%d",&num);
/*从nArray
[num](第num+1个元素)开始,依次向前移动一位*/
for(i=num;i<10;i++)
nArray
[i-1]=
nArray
[i];
/*删除最后一个元素*/
nArray
[10]=0;
/*输出处理后的数组,最后一位不需要输出*/
printf("\nProcessed
array:
");
for(i=0;i<9;i++)
printf("%d
",
nArray
[i]);
}
程序运行后,输入10个整数:
Please
input
10
integers:
1
2
3
4
5
6
7
8
9
10
Please
input
sequence
number
of
the
element
to
delete:
5
Processed
array:
1
2
3
4
6
7
8
9
10

⑷ C语言中怎样实现对数组数据的删除、修改

#include<stdio.h>
typedef struct Node{
int a,b;
}node;
node c[100];
int n;
void print(){
int i;
printf("\n当前数据:\n");
for(i=1;i<=n;i++){
printf("第%d组:a=%d,b=%d\n",i,c[i].a,c[i].b);
}
printf("\n\n");
}//输出
void setnum(){
int i;
printf("输入n,表示共有n组数据:\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("输入第%d组数据的两个值a、b,用空格隔开:\n",i);
scanf("%d%d",&c[i].a,&c[i].b);
}
}//设置数据
void remove(){
int i,j;
printf("输入i,表示要删除第i数据:\n");
scanf("%d",&i);
for(j=i;j<=n-1;j++){
c[j]=c[j+1];
}//循环覆盖,让后一个覆盖前一个,所以j最大值取n-1
n--;//结构体中的元素减少1个
}//删除数据
void chang(){
int i,aa,bb;
printf("输入i,a,b,表示要将第i组数据修改成a、b:\n");
scanf("%d%d%d",&i,&aa,&bb);
c[i].a=aa;
c[i].b=bb;//直接赋值修改
}//修改数据
main(){
int m;
while(1){
printf("输入:1-输入数据,2-修改数据,3-删除数据\n 4-输出数据,0-退出\n");
scanf("%d",&m);
if(m==0) break;
else if(m==1) setnum();
else if(m==2) chang();
else if(m==3) remove();
else if(m==4) print();
}
}

⑸ C语言数组 增删改查 删改两个程序怎么写

这行代码:数组=(结构记录*)malloc的(的sizeof(结构记录)* NUM); 是应用的内存结构记录类型,你定义为int *,所以诠释*数组转换成结构记录*数组,另有界定者外Num和我不记录定义放在一起,否则,同一类型和记录,是独立的定义为:整型数,scanf函数(“%c”的,与数组[I]系数);改革为scanf函数(在“%f”,&阵列由[i]系数).

⑹ 怎么从有十个元素的数组中随机的删除两个用C语言

用随机函数随机出两个介于1-10之间的数,然后调用数组删除那两个数
int i = radom()%10;
然后删除该位置的的值
for(int j=i;j<10;j++)
{
a[j-i]=a[j];
a[10]=0;
}

⑺ c语言:从数组中删除数据怎么做

#include<stdio.h>
#define N 10
void main( )
{
int a[N] , num ,i , *p , n=N;
int j;

/*输入N个数到数组a中;*/
for(i=0;i<n;i++)
{
scanf(“%d”,&num);
a[i]=num;
}

/*在数组a中删除指定的数num;*/
for(i=0;i<n;i++)
{
if(a[i] == num)
{
//a[i]=a[n];//如果不保留原数组里的顺序,此一句即可代替下边2行语句,同时省掉变量j

for(j=i;j<n-1;j++)
a[j]=a[j+1];

n--;
}
}

/*输出删除了num后的数组a;*/
for(i=0;i<n;i++)
printf("%d ",a[i]);

getchar();
}

⑻ 用C语言实现一维数组中删除第N个元素的程序怎么写

#include<stdio.h>

int main()

{

int arr[]={1,3,10,5,4,} ;

int delect=0;

int i=0,j=0,k=0,t;

int n;//n为数组长度

n=sizeof(arr)/sizeof(int);

//printf("%d ",n);//测试n

printf("删除前数组为:");

for(k=0;k<=n-1;k++)

{

printf("%4d",arr[k]);

}

printf(" ");

printf("请输入要删除第几个数: ");

scanf("%d",&t);

for(j=t-1;j<=n-2;j++)

arr[j]=arr[j+1];

printf("删除后数组为:");

for(k=0;k<=n-2;k++)

{

printf("%4d",arr[k]);

}

}

(8)c语言数组删除两个程序怎么写扩展阅读:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

网络-数组

⑼ 用C语言编写在一个数组中删除指定元素的程序,以下是本人写的一些代码,由于初学,麻烦高手指点修改

#include <stdio.h>
#define ARR_SIZE 5
int Delete(int *a, int n, int x);

void main()
{
int a[ARR_SIZE-1], x, i, n;

printf("Please enter array numbers:\n");
scanf("%d", &n);

printf("Please enter array:\n");
for (i=0; i<n; i++)
{
scanf("%d", &a[i]);
}

printf("Please enter a number what you want to delet:\n");
scanf("%d", &x);

if( Delete(a, n, x) == -1 )
printf("can not find the number!\n") ;
else
{
printf("After delet %d:\n", x);
for(i=0; i < n - 1; i++)
{
printf("%d ", a[i]); // 不要加地址符,我还以为我编译器坏了,囧
}
}
}

int Delete(int *a, int n, int x)
{
int *p=NULL, *pos=NULL;

for (p=a; p<a+n; p++)
{
if (*p == x)
break;
}

if( p >= a + n )
return -1 ;

for( ; p < a + n - 1 ; ++p ) //循环反了,后边的数据会把前边的覆盖
{
*p=*(p+1);
}

return 0 ;
}

⑽ c语言数组元素的删除

对于数组删除,一般就是使用后面数组元素前移的操作,来覆盖前一元素,达到删除的效果。。。。

例如数组a[10],要删除a[5]这个元素,那么只需要把后面的元素前移一位就行了,也就是a[5]=a[6],a[6]=a[7],a[7]=a[8],这样子a[5]这个元素的内容就会被全部抹杀掉了。。。。

不过这里存在一个问题,你一个结构体数组前移的时候,如何判断有多少个元素要前移呢。。。。

所以我的做法是在结构体里面定义一个标示符int flag。。。。

当对这个结构体数组元素赋值时,如a[10].name="KING" 时,那么就是说下标值为10的元素是存在的,赋完值后,来个a[10].flag=1 来标记一下。。。。

这样做的话,我们可以进行这样的删除操作了,如删除下标值为5的元素——
int i=5;
for(int j=i+1;a[j].flag==1;i++,j++)
{
a[i]=a[j];
/* 结构体数组可以直接这样子做,它会自动把a[i]里面的变量等于a[j]里面对应的变量 */
}
a[i].flag=0;
/* 如果你里面原来有10个元素,那么删除了其中一个,那就剩下9个,a[9]那个位置应该为空,一一把里面的元素清空太麻烦,直接把它的标示符flag等于0,就表示该位置为空的 */

阅读全文

与c语言数组删除两个程序怎么写相关的资料

热点内容
什么防脱生发产品好 浏览:351
哪里可以学习无痕防滑技术 浏览:556
家庭日用清洁产品如何拍摄 浏览:433
内部交易如何定价外协价格管理 浏览:868
第二次考教资需要填哪些信息 浏览:814
物业公司的市场部是干什么的 浏览:842
完美世界里怎么交易好友 浏览:178
除了程序员还有什么技术 浏览:928
汊河新农贸市场在哪里呀 浏览:535
学习什么技术赚钱最多 浏览:294
没实物怎么找代理 浏览:189
水产品与畜禽肉类怎么吃 浏览:179
电脑连接数据线找不到手机怎么办 浏览:109
金航农产品有哪些 浏览:223
股票交易软件行业排名怎么看 浏览:915
弹簧怎么缠数据线 浏览:550
如何执行信息披露纪律 浏览:781
技术支持岗和小公司助理哪个好 浏览:278
动量交易策略的局限是什么 浏览:811
食品代理批发一个月能赚多少钱 浏览:122