一个小代码,哪错了啊?
大家帮我看下这个代码哪错了啊,在运行时看不到正确的结果!运行时的结果 第六行 也是错误的!
运行时还报错!
错误签名
AppName: 228-8.8.exe AppVer: 0.0.0.0 ModName: unknown
ModVer: 0.0.0.0 Offset: 00000006
下面是我的代码
望大家帮忙看看这两个问题!
程序代码://将数组A中的n个整数按相反顺序存放、、
//分别四种情况实现。
//(1)形参和实参都用数组名
//(2)实参用数组名,形参用指针变量。
//(3)实参和形参都用指针变量。
//(4)实参用指针,形参用数组名。
#include<stdio.h>
#define N 10
void main()
{
void inv_1(int x[],int n); //申明形参为数组名函数
void inv_2(int *q,int n); //申明形参为指针变量函数
int a[N]={1,2,3,4,5,6,7,8,9,10},*p,i;
p=a; //使指针P指向a[0] 与p=&a[0]等价
printf("原数组为:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]); //********如果用printf("%d ",p++);行吗**********
printf("\n");
printf("调用实形参都用数组名的函数结果为:\n");
inv_1(a,N);
for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n");
printf("调用实参用数组名形参用指针变量的函数结果为:\n");
inv_2(a,N);
for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n");
printf("调用实形参都用指针变量的函数结果为:\n");
inv_2(p,N);
for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
printf("调用实参用指针变量形参用数组名的函数结果为:\n");
inv_1(p,N);
for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
}
void inv_1(int x[],int n)
{
int i,j,temp;
for(i=0,j=(n-1);i<=(n-1)/2;i++,j--)
{temp=x[i];x[i]=x[j];x[j]=temp;}
}
void inv_2(int *q,int n)
{
int *i,*j,*mid,temp;
i=q;j=q+(n-1);mid=q+(n-1)/2;
for(;i<=mid;i++,j++)
{temp=*i;*i=*j;*j=temp;}
}








应该就是那个问题了。

