当前位置: 代码迷 >> C语言 >> 为什么运行不出正确结果?谁能告诉我
  详细解决方案

为什么运行不出正确结果?谁能告诉我

热度:53   发布时间:2007-09-18 20:42:22.0
为什么运行不出正确结果?谁能告诉我
要求函数的功能是删除bb数组中值为y 的数,*n是bb中元素的个数

fun函数是我编的

#include <conio.h>
#include <stdio.h>
#define M 20
void fun ( int bb[ ], int *n, int y )
{
int i,j;
for (i=*n-1;i>=0;i--)
if (bb[i]==y)
{
for (j=i;j<*n;j++)
{
bb[j]=bb[j+1];
(*n)--;
}
}
}
main( )
{ int aa[M], n, y, k;
clrscr();
printf( "\nPlease enter n : " ); scanf ( "%d", &n );
printf ( "\nEnter %d positive number :\n ", n );
for (k = 0; k<n; k++ ) scanf ("%d",&aa[k]);
printf ( "The original data is : \n" );
for (k = 0; k<n; k++ ) printf ("%5d",aa[k]);
printf ("\nEnter a number to deleted: " ); scanf ("%d", &y );
fun ( aa, &n, y );
printf ("The data after deleted %d : \n", y );
for ( k = 0; k < n; k++ ) printf ( "%4d ", aa[ k ] );
printf( "\n" );


谢谢了
搜索更多相关的解决方案: 结果  运行  

----------------解决方案--------------------------------------------------------
回复:(nova2201)为什么运行不出正确结果?谁能告诉...
void fun(int b[],int *n,int y)中的*n是指针变量,而fun(aa,&amp;n,y)中的&amp;n是地址,*n!=&amp;n这题用链表处理比较好.
----------------解决方案--------------------------------------------------------

我在我机器上试验,楼上的程序好使啊...
楼上的main()函数少了个大括号


----------------解决方案--------------------------------------------------------

我的上面也能运行,我c++6.0


----------------解决方案--------------------------------------------------------
我是TC2.0的...
----------------解决方案--------------------------------------------------------
运行应该没问题的但是fun()函数好像有点小问题
void fun ( int bb[ ], int *n, int y )
{。。。
{
bb[j]=bb[j+1];

}
(*n)--;
}
不然的话结果不会是预期的
----------------解决方案--------------------------------------------------------

还是不行......


----------------解决方案--------------------------------------------------------
好像有个库函数是实现这个功能的。忘哪个了,好像是strncpy(string,n);
只是好像啊,你要是用可以自己查下。
----------------解决方案--------------------------------------------------------
  相关解决方案