求c语言大神帮忙编下图中这个指针实验,求源程序代码,在线等,用visual c++

2025-02-25 10:32:01
推荐回答(4个)
回答1:

/*sy8_3_4.c*/
# include 
# define N 10
void arrsort(int a[], int n);
int main()
{
int a[N];
int i;
printf("输入:");
for (i=0;i scanf("%d",&a[i]);
arrsort(a, N);
printf("输出:");
for (i=0;i printf("%d ",a[i]);
printf("\n");
}
void arrsort(int a[], int n)
{
int i,j,temp;
i = 0;
j = n-1;
while(i {
while(i i++;
while(i j--;
if(i==j)
break;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

回答2:

void arrsort(int a[],int n){
int i=0,j=0,m=0;
for(i=0;i if(a[n-1-i]%2==1){
for(j=0;j if(a[j]%2==0){
m=a[n-1-i];
a[i]=a[n-1-i];
a[i]=m;
}
}
}
}
for(i=0;i}

回答3:

#include
using namespace std;
#define N 10
void f(int *a,int n)
{ int *p1,*p2,b=1,k;
p1=p2=a; p2+=n-1;
while ( p1 { while ( (*p1)%2 ) { p1++; if ( p1>=p2 ) b=0; }
if ( b==0 ) break;
while ( (*p2)%2==0 ) { p2--; if ( p2<=p1 ) b=0; }
if ( b==0 ) break;
k=(*p1); (*p1)=(*p2); (*p2)=k; p1++; p2--;
}
}
void main()
{
int a[N],i;
for ( i=0;i>a[i];
f(a,N);
for ( i=0;i cout<}

回答4:

#include
#define N 10
void arrsort(int a[],int n);
int main()
{
int a[N],i;
printf("Input %d numbers:\n",N);
for(i=0;i {
scanf("%d",&a[i]);
}
arrsort(a,N);
printf("After arrsort:\n");
for(i=0;i {
printf("%-4d",a[i]);
}
printf("\n");
return 0;
}
void arrsort(int a[],int n)
{
int i,j,tmp;
for(i=0;i {
if(!(a[i]&1))
{
for(j=n-1;j>i;j--)
{
if(a[j]&1)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
break;
}
}
}
}
}