C语言 指针方法?

要求用指针方法处理。

1.输入3个整数,按由大到小顺序输出。

2.输入10个整数,将其中最小的数与第一一个数兑换,把最大的数与最后一个数兑换。写3个子函数: 1)输入 10个数; 2)进行处理; 3)输出10个数,并用主函数调用实现题述功能。

#include<stdio.h>

int main()

{

int a,b,c,s[3],t;

int *x,*y,*z;//定义指针变量 

x=&a;//将a的地址赋给指针x,下同 

y=&b;

z=&c;

scanf("%d%d%d",x,y,z);

s[0]=*x;//将指针x所指向的变量值赋给数组s的第一个元素;依次类推 

s[1]=*y;

s[2]=*z;

for(int i=0;i<3;i++)//冒泡排序 

for(int j=0;j<3-i-1;j++)

if(s[j]<s[j+1])

{

t=s[j];

s[j]=s[j+1];

s[j+1]=t;

}

for(int i=0;i<3;i++)

printf("%d ",s[i]);

return 0;

}

——————————————————————————

#include<stdio.h>

void input(int *a)

{

int *p=a;//将数组a的首地址赋给指针p 

for(int i=0;i<10;i++)

scanf("%d",&p[i]);//指针下标法输入 

}

int max_min(int *a)

{

int *p=a;//将数组a的首地址赋给指针p

int max,min,x=0,y=0,t;

max=min=p[0];

for(int i=0;i<10;i++)

{

if(p[i]>=max)

{

max=p[i];

x=i;

}

if(p[i]<=min)

{

min=p[i];

y=i;

}

}

t=p[y];

p[y]=p[0];

p[0]=t;

t=p[9];

p[9]=p[x];

p[x]=t;

}

void output(int *a)

{

int *p=a;//将数组a的首地址赋给指针p

for(int i=0;i<10;i++)

printf("%d ",p[i]);//指针下标法输出 

}

int main()

{

int a[11];

input(a);//调用函数,下同 

max_min(a);

output(a);

return 0;

}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网