C语言,这段程序运行完之后就会显示弹窗“出现一个问题,导致无法正常运行”。已运行的结果是正确的。

编写函数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");
}

第1个回答  2015-05-24
如果你包含了stdio.h
你可以在程序的末尾,加一句:getchar();

如果你包含了conio.h
你可以在程序的末尾,加一句:getch();

如果你包含了windows.h
你可以在程序的末尾,加一句:system("pause");

如果你包含了iostream.h
你可以在程序的末尾,加一句:cin.get();

方法很多,都可以达到你要求的功能!追问

谢谢,你的回答非常全面。
我包含的是stdio.h,应该在哪个地方加getchar()?我在main函数和fun函数后面都试过了,运行后还是出问题。

本回答被网友采纳
第2个回答  2015-05-24
试了下 不影响运行 取消之后 窗口界面依旧正常追问

请问这段程序怎么运行成这样的,已经有了我想要的结果,为什么运行后又出问题?

追答

建议单步跟踪 ………… 我的电脑上单步跟踪没法建立。。。

相似回答