【程序71】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
2.程序源代码:
/*pointer*/
#include
void main()
{
int n1,n2,n3;
int *pointer1,*pointer2,*pointer3;
printf("please input 3 number:n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1>n2) swap(pointer1,pointer2);
if(n1>n3) swap(pointer1,pointer3);
if(n2>n3) swap(pointer2,pointer3);
printf("the sorted numbers are:%d,%d,%d/n",n1,n2,n3);
}
swap(int * p1,int* p2);
{int p;
p=*p1;*p1=*p2;*p2=p;
}
-----------------------------------------------------------------------------
【程序72】
题目:利用指针获取输入数组,并利用指针输出该数组
1.程序分析:注意指针的地址作用
2.程序源代码:
#include
void main()
{
int a[10];
int i;
int *p;
for(i=0;i<10;i++)
scanf("%d",(a+i));
for(p=a;p
printf("%d",*p); // printf("%d",*p++);
}
-----------------------------------------------------------------------------
【程序73】
题目:将数组a中n个整数按相反顺序存放
1. 程序分析:将a[0]与a[n-1]对换,用两个指针分别指向头和尾
2. 程序源代码:
#include
void main()
{
int array[10]={1,2,3,4,5,6,7,8,9,11};
int *p,*q;
int temp,i;
p=array;
q=&array[9];
for(i=0;i<5;i++,p++,q--)
{
temp=*p;
*p=*q;
*q=temp;
}
for(p=array;p
printf("%4d",*p++);
printf("/n");
}
-----------------------------------------------------------------------------
【程序74】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
1.程序分析:
2.程序源代码:
#include
void maxminexchange(int *a,int n)
{
int *p,*q;
int max,min,i,temp;
max=a[0];
min=a[0];
for(i=0;i
{
if(a[i]>max){max=a[i];p=a+i;}
if(a[i]
}
temp=a[0];
a[0]=*p;
*p=temp;
temp=a[n-1];
a[n-1]=*q;
*q=temp;
}
void main()
{
int array[15]={2,1,12,3,23,4,5,6,4,6,2,8,7,2,9};
maxminexchange(array,15);
int *p=array;
while(p
printf("%4d",*p++);
}
-----------------------------------------------------------------------------
【程序75】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的