C语言问题(高手帮忙下,谢谢)

2024-11-30 19:15:54
推荐回答(5个)
回答1:

#include
void reverse(int* a,int N)
{
int i, j, t;
for (i=0,j=N-1;i{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

void main()
{
int i, b[10]={98,76,68,65,57,53,45,43,32,29};
int *pArry=b;
reverse(pArry,10);

for (i=0;i<10; i++)
printf("b[%d]=%d\n", i, b[i]);
}

回答2:

(2)
#include
#define N 10
void reverse(int *a)
{
int i, j, t;
for (i=0,j=N-1;i{
t=*(a+i);
*(a+i)=*(a+j) ;
*(a+j)=t;
}
}

void main()
{
int i, b[N]={98,76,68,65,57,53,45,43,32,29};

reverse(b);

for (i=0;iprintf("b[%d]=%d\n", i, b[i]);
}

(3)
#include
#define N 10
void reverse(int *a)
{
int i, j, t;
for (i=0,j=N-1;i{
t=*(a+i);
*(a+i)=*(a+j) ;
*(a+j)=t;
}
}

void main()
{
int i, b[N]={98,76,68,65,57,53,45,43,32,29};

reverse(&b[0]); \\ 取首地址指针!!!!!

for (i=0;iprintf("b[%d]=%d\n", i, b[i]);
}

回答3:

(2)
#include
#define N 10
void reverse(int *p)
{
int t,i,j;
for (i=0,j=N-1;i{
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
}

void main()
{
int i, b[N]={98,76,68,65,57,53,45,43,32,29};

reverse(b);

for (i=0;iprintf("b[%d]=%d\n", i, b[i]);
}

(3)
#include
#define N 10
void reverse(int *p)
{
int t,i,j;
for (i=0,j=N-1;i{
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
}

void main()
{
int i, b[N]={98,76,68,65,57,53,45,43,32,29};
int *a=b;
reverse(a); //只需要做十分简单的改动便可以实现功能了

for (i=0;iprintf("b[%d]=%d\n", i, b[i]);
}

哎大家都很聪明,
不知道楼主会给谁分数呢。。。:)

回答4:

(2)
#include
void reverse(int* a)//这里因为N是全局变量,就不用写到参数中了
{
int i, j, t;
for (i=0,j=N-1;i{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
(3)
void main()
{
int i, b[10]={98,76,68,65,57,53,45,43,32,29};
int *myArray=b; //定义指针指向数组b的首地址
reverse(myArray); //实参改为采用指针变量形式传递

for (i=0;i<10; i++)
printf("b[%d]=%d\n", i, b[i]);
}

回答5:

建议您再仔细看一遍书本