实验九 指针
1.源程序:
#include
void main()
{void swap(int *p1,int *p2);
int n1,n2,n3;
int *p1,*p2,*p3;
printf("input three integer n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2) swap(p1,p2);
if(n1>n3) swap(p1,p3);
if(n2>n3) swap(p2,p3);
printf("Now,the order is:%d,%d,%d\n",n1,n2,n3);
}
void swap(int *p1,int *p2)
{int p;
p=*p1; *p1=*p2; *p2=p;
}
编译结果:
--------------------Configuration: 10.1 - Win32 Debug--------------------
Compiling...
10.1.c
10.1.obj - 0 error(s), 0 warning(s)
运行结果:
1.②#include
#include
void main()
{void swap(char *,char *);
char str1[20],str2[20],str3[20];
printf("input three line:\n");
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str1,str3)>0) swap(str1,str3);
if(strcmp(str2,str3)>0) swap(str2,str3);
printf("Now,the order is:\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
}
void swap(char *p1,char *p2)
{char p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
编译结果:
--------------------Configuration: 10.1 - Win32 Debug--------------------
Compiling...
10.1.c
10.1.obj - 0 error(s), 0 warning(s)
2.源程序:
#include
void main()
{void move(int *pointer);
int a[3][3],*p,i;
printf("input matrix:\n");
for(i=0;i<3;i++)
scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf("Now,matrix:\n");
for(i=0;i<3;i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{int i,j,t;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
编译结果:
--------------------Configuration: 9.2 - Win32 Debug--------------------
Compiling...
9.2.c
9.2.obj - 0 error(s), 0 warning(s)
运行结果:
3.
#include
void main()
{int i,k,m,n,num[50],*p;
printf("input number of person:n=");
scanf("%d",&n);
p=num;
for(i=0;i
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m
{if(*(p+i)!=0) k++;
if(k==3)
{*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
printf("The las