C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢

2025-05-21 04:35:50
推荐回答(4个)
回答(1):

全部手打啊,我现编的,有分的话给追加点最好了。

#include"stdio.h"
main()
{int i,a[3],*p; /*i为计数变量,数组a用来接收输入值,指针p用来访问*/
p=a; /*将数组a的首地址赋值给指针p*/
for(i=0;i<3;p++) /*循环三次 每次指针p的值增加一个int宽度 例:p从指向a[0]变成指向a[1]*/
{
scanf("%d",p); /*输入数,指针p的值即为地址,所以不用加“&”*/
if(p>a) /*判断指针p当前指向的位置,如果已经超过第一个数则进行下面的判断*/
if(*p a[0]=*p; /*每次输入一个值后,与第一个数a[0]比较,将a[0]保持为最小值*/
}
printf("%d",a[0]); /*经过输入和比较,此时a[0]的值是最小的*/
}

回答(2):

#include

int main()
{
int *p, *q, *r, a, b, c;//定义3个整型指针
int min;

scanf("%d %d %d", &a, &b, &c);//输入3个整数

p=&a, q=&b, r=&c;//将整数的地址复制给指针
min=*p<*q?*p:*q; //通过指针进行大小比较
min=min<*r?min:*r;

printf("%d", min);
}

回答(3):

三个数那个太简单就不做了吧!
//有数组!!!
#include
void main()
{
char a[14]=;
char *p=&a[12];
int i;
for(i=0;i<13;i++)
{
printf("%c",*p);
p--;
}
printf("\n");
}

//或者:不含数组
#include
#include
void main()
{
char *p=&a[12];
int i;
for(i=0;i<13;i++)
{
printf("%c",*p);
p--;
}
printf("\n");*/
char *p="HOW DO YOU DO";
int i;
char *q=p+strlen(p)-1;
for(i=0;i<13;i++)
{
printf("%c",*q);
q--;
}
printf("\n");
}

结果:
OD UOY OD WOH
Press any key to continue
另外,站长团上有产品团购,便宜有保证

回答(4):

#include
void change(int *o,int *p)
{
int q;
q=*p;*p=*o;*o=q;
}

void deal(int *x,int *y,i