新仙剑将军冢bug:这个程序哪错了?c语言

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/11 15:06:54
int main(void)
{ int i,a[10]={1,2,3,4,5,6,7,8,9,0};
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("jjjjjj\n");
jh(a,10)
for(i=0;i<10;i++)
printf("%d,",a[i]);
getch();
return 0;
}
void jh(int*x,n)
{int *p,*i,*j,m=(n-1)/2;k;
i=x;j=x+n-1;p=m;
for(;i<=m;i++,j--)
{k=*i;*i=*j;*j=k}
}

给你一个修改好了的代码。现在可以编译了。

你原先中间有几个地方少了分号。

#include<stdio.h>
void jh(int*x,int n)
{int *p,*i,*j,m=(n-1)/2,k;
i=x;j=x+n-1;p=m;
for(;i<=m;i++,j--)
{k=*i;*i=*j;*j=k;}
}

int main(void)
{ int i,a[10]={1,2,3,4,5,6,7,8,9,0};
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("jjjjjj\n");
jh(a,10);
for(i=0;i<10;i++)
printf("%d,",a[i]);
getch();
return 0;
}

1.你的jh函数中参数n没有声明类型 ,需改为void jh(int*x, int n)
2.需在main()函数前面声明jh函数的原型。即在main()上面添一行
void jh(int*x, int n);//分号不能省略

这个代码应该根本通过不了编译
如果子函数是在main函数之后定义的,就必须在main函数之前声明一下,否则在C里面是通过不了编译的。切记,这是一个很容易让人忘掉的C规则!