急!!!!求c语言高手!!!谁能把下面这段程序补充完整??感激不尽!!!!

编写函数voidfun(int*x,intn),它的功能是:删除数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。规定x中数据都为正数。如程序运行时若输入:1221... 编写函数void fun(int *x,int n),它的功能是:删除数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。规定x中数据都为正数。
如程序运行时若输入:122 1461 6234 16 11 663 911 2671 381 6
删除后输出: 122 11 911 381 -1 -1 -1 -1 -1 -1
#define N 10
#include<stdio.h>
void fun(int *x,int n)
{
}
void main()
{int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
}
展开
 我来答
ssilspro
2011-06-06 · TA获得超过2626个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1837万
展开全部
void fun(int *x,int n)
{ int i=0,j,flag;
while(n--)
{ j=*(x-i)=*x;
flag=0;
do if(j%10==6)flag=1;while(j/=10);
if(flag)i++;
x++;
}
while(i--)*(x-i-1)=-1;
}
bogezhenv5
2011-06-05 · 超过11用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:31.6万
展开全部
#include<stdio.h>
#include<stdlib.h>
#define N 10
void fun(int *x,int n)
{
char a[20];
int i,j;
for (i=0;i<n;i++)
{
itoa(*(x+i),a,10);//这样把*(x+i)作为字符串写入a
for(j=0;j<20;j++)
{
if(a[j]=='6')
{
*(x+i)=-1;
}

}
}

}
void main()
{
int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maohuiabc
2011-06-05 · TA获得超过197个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:153万
展开全部
#define N 10
#include<stdio.h>
#include"stdlib.h"
int check(int x)
{
while(x)
{
if(x%10==6)return 1;
x/=10;
}
return 0;
}
void fun(int *x,int n)
{
int i,j;
for(i=0;i<n;i++)
{
if(check(x[i])==1)x[i]=-1;
}
for(i=0;i<n;i++)
{
if(x[i]!=-1)continue;
for(j=i+1;j<n;j++)
{
if(x[j]!=-1)
{
x[i]=x[j];
x[j]=-1;
break;
}
}
}

}
;
void main()
{
int a[N]={122 ,1461 , 6234 , 16 , 11, 663 , 911, 2671 , 381 , 6 } ,i;
//for(i=0;i<N;i++)
// scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tcet030840zxp
2011-06-05 · TA获得超过736个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:118万
展开全部
void fun(int *x,int n)
{
for(int i=0;i<n;++i)
{
int number=x[i];
bool leap=0;
while(x[i])
{
if(x[i]%10==6)
{
leap=1;
break;
}
x[i]/=10;
}
if(leap)
x[i]=-1;
else
x[i]=number;
}
for(int j=0;j<n;++j)
{
if(x[j]==-1)
{
for(int k=j+1;k<n;++k)
if(x[k]!=-1)
{
x[j]=x[k];
x[k]=-1;
break;
}
}
}
}
有不会的问我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csunking
2011-06-06 · 超过16用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:26.9万
展开全部
int i,j,temp=0,k=0;
int c[N]={0};
for(i=0;i<n;i++)
{
for(j=1;j<10;j++)
{
temp=*(x+i)%(int)(pow(10,j));
temp=temp/(int)( (pow(10,j)/10) );
if(temp==6) *(x+i)=-1;
if(temp==0) break;
}
c[i]=-1;

}
for(i=0;i<n;i++)
{
if(*(x+i)==-1) continue;
c[k]=*(x+i);
k++;
}
for(i=0;i<n;i++)
{
*(x+i)=c[i];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式