1.输入3个整数,按由小到大的顺序输出。要求用指针完成。
#include <stdio.h>
void main()
{
int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;
p2=&b;
if(a<b)
{p=p1;p1=p2;p2=p;}
//{p1=&b;p2=&a;}
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
}
2.有一个整型数组a,有10个元素,输出数组中的全部元素。要求用指针法完成。
#include <stdio.h>
void main()
{
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
for(i=0;i<10;i++,p++)
printf("%d ",*p);
printf("\n");
}
3.用指针方法统计10个数中正数、负数和零的个数,并分别求正数的总和,负数的总和。
#include <stdio.h>
void main()
{
int a[10];
int i,*p,sum1,sum2,c1,c2,c3;
printf("输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
c1=c2=c3=0;
sum1=sum2=0;
for(p=a;p<(a+10);p++)
{
if(*p<0)
{ sum1+=*p;
c1++;}
if(*p==0)
{ c2++;}
if(*p>0)
{sum2+=*p;
c3++;}
}
printf("正数,负数的和:%d %d\n",sum2,sum1);
printf("正数、零、负数的个数:%d %d %d \n",c3,c2,c1);
}
|
|