编写函数void fun(int *x,int n),它的功能是:删除有n个数据的数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。n为数组长度,规定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)
{
int i,j,a,b;
for(i=0;i<n;i++)
{
a=x[i];
while(a!=0)
{
if(a%10==6)
{
for(j=i;j<n;j++)
{x[j]=x[j+1];}
x[j]=-1;
i--;
break;
}
a/=10;
}
}
}
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");
}
谢谢,你的回答非常全面。
我包含的是stdio.h,应该在哪个地方加getchar()?我在main函数和fun函数后面都试过了,运行后还是出问题。
请问这段程序怎么运行成这样的,已经有了我想要的结果,为什么运行后又出问题?
追答建议单步跟踪 ………… 我的电脑上单步跟踪没法建立。。。