编写函数,从一个排好序的整型数组中删除某数.
5个回答
2017-06-12 · 知道合伙人互联网行家
关注
展开全部
解答:
1,所用语言:C++
2,需要头文件:#include<iostream>
using namespace std;
3,删除函数:
int Del(int *a , int n , int x)
{
int i , j ,bj = 0;
for(i = 0 ; i < n ; i ++)
{
if(a[i] == x)
{
bj = 1;
break;
}
}
if(bj == 1)
{
for(j = i ; j < n - 1 ; j ++)
{
a[j] = a[j +1];
}
cout<<"已经成功将"<<x<<"删除"<<endl;
cout<<"删除后的数组为:"<<endl;
for(i = 0 ; i < n - 1 ; i ++)
cout<<a[i]<<" "<<endl;
}
else
cout<<"未找到"<<x<<endl;
return 0;
}
4,主函数中调用:
int main()
{
int p[10]={ 0,1,2,3,4,5,6,7,8,9 },i,x,n=10;,
cout<<"请输入要删除的数:"<<endl;
cin>>x;
Del(p,n,x);
return 0;
}
1,所用语言:C++
2,需要头文件:#include<iostream>
using namespace std;
3,删除函数:
int Del(int *a , int n , int x)
{
int i , j ,bj = 0;
for(i = 0 ; i < n ; i ++)
{
if(a[i] == x)
{
bj = 1;
break;
}
}
if(bj == 1)
{
for(j = i ; j < n - 1 ; j ++)
{
a[j] = a[j +1];
}
cout<<"已经成功将"<<x<<"删除"<<endl;
cout<<"删除后的数组为:"<<endl;
for(i = 0 ; i < n - 1 ; i ++)
cout<<a[i]<<" "<<endl;
}
else
cout<<"未找到"<<x<<endl;
return 0;
}
4,主函数中调用:
int main()
{
int p[10]={ 0,1,2,3,4,5,6,7,8,9 },i,x,n=10;,
cout<<"请输入要删除的数:"<<endl;
cin>>x;
Del(p,n,x);
return 0;
}
展开全部
#include<stdio.h>
int tab[10]={0,1,2,3,5,5,5,7,7,9};
void deleteMember(int mem){
int i = 0;
int j = 0;
for(i = 0, j = 0; i < (sizeof(tab)/sizeof(int)); i++){
if(tab[i] != mem){
tab[j++] = tab[i];
}
}
for(i = 0; i < (sizeof(tab)/sizeof(int))-j; i++){ //多出来的数组元素清0
tab[j+i] = 0;
}
}
int main(void){
int i = 0;
deleteMember(5);//你要删除tab数组中的数值5
for(i = 0; i < (sizeof(tab) / sizeof(int)); i++){
printf("tab[%d] = %d\t", i, tab[i]);
}
return 0;
}
调用这个函数就行了,你也可以再多添加一个参数,数组参数,
deleteMember函数没有返回值,参数int 的形参mem就是你要删除的哪个数。比如你要删除数值5运行主函数就行。
运行结果是tab[0] = 0 tab[1] = 1 tab[2] = 2 tab[3] = 3 tab[4] = 7
tab[5] = 7 tab[6] = 9 tab[7] = 0 tab[8] = 0 tab[9] = 0
已经在DEC-C++上验证成功。如果有错误,可能是输入有误。亲回答个问题好难。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int mdelete(int *a,int n,int data)
{ int i,rt=1;
for ( i=0;i<n;i++ ) if ( a[i]==data ) { rt=0; break; }
if ( rt==0 ) { n--; for ( ;i<n;i++ ) a[i]=a[i+1]; }
return n;
}
void main()
{ int a[10]={ 0,1,2,3,4,5,6,7,8,9 },i,n=10;
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
n=mdelete(a,n,4);
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
}
int mdelete(int *a,int n,int data)
{ int i,rt=1;
for ( i=0;i<n;i++ ) if ( a[i]==data ) { rt=0; break; }
if ( rt==0 ) { n--; for ( ;i<n;i++ ) a[i]=a[i+1]; }
return n;
}
void main()
{ int a[10]={ 0,1,2,3,4,5,6,7,8,9 },i,n=10;
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
n=mdelete(a,n,4);
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int mdelete(int *a,int n,int data)
{ int i,rt=1;
for ( i=0;i<n;i++ ) if ( a[i]==data ) { rt=0; break; }
if ( rt==0 ) { n--; for ( ;i<n;i++ ) a[i]=a[i+1]; }
return n;
}
void main()
{ int a[10]={ 0,1,2,3,4,5,6,7,8,9 },i,n=10;
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
n=mdelete(a,n,4);
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
}
int mdelete(int *a,int n,int data)
{ int i,rt=1;
for ( i=0;i<n;i++ ) if ( a[i]==data ) { rt=0; break; }
if ( rt==0 ) { n--; for ( ;i<n;i++ ) a[i]=a[i+1]; }
return n;
}
void main()
{ int a[10]={ 0,1,2,3,4,5,6,7,8,9 },i,n=10;
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
n=mdelete(a,n,4);
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好意思没看懂这个问题!
更多追问追答
追问
这是c语言的一道题。
追答
这个不会,帮不上你,还以为是EXCEL里的函数!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询