C语言编程题,急急急!!

1 从键盘输入3个整数,要求由大到小的顺序输出这3个数。(使用指针)
提示:定义指向整型变量的指针变量,然后通过“*指针变量”访问相应的变量。

2. 利用指针变量作为函数voidmaxandmin( int *p, int *max, int *min )的参数,设计程序求整数数组a[10]中的最大值和最小值。

求大神们按照要求帮我编一下,不用太高级,就用简单的C语言就行了,万分感谢!!!

1.
#include "stdio.h"
void main(void){
int a[3],*p=a,i,j,k;
printf("Type 3 integers...\n");
for(i=0;i<3;i++)
scanf("%d",p+i);
for(i=0;i<3;i++){
for(k=i,j=i+1;j<3;j++)
if(*(p+k)<*(p+j)) k=j;
if(k!=i){
j=*(p+i);
*(p+i)=*(p+k);
*(p+k)=j;
}
}
for(i=0;i<3;printf("%d ",*(p+i++)));
printf("\n");
}

2.
#include "stdio.h"
void maxandmin(int *p,int *max,int *min){
int i;
for(*max=*min=*p,i=1;i<10;i++){
if(*max<*(p+i)) *max=*(p+i);
if(*min>*(p+i)) *min=*(p+i);
}
}
void main(void){
int p[10]={33,13,57,1024,576,-23,5,6,99,4},max,min;
maxandmin(p,&max,&min);
printf("max=%d,min=%d\n",max,min);
}
仅供参考……
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-01
太简单,懒得动手:
#include<stdio.h>
int main()
{
int a,b,c,*i1,*i2,*i3;
printf("input three numbers:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
if(b>c){i1=&a;i2=&b;i3=&c;}
else if(a>c){i1=&a;i2=&c;i3=&b;}
else {i1=&c;i2=&a;i3=&b;}
}
else {
if(b<c){i1=&c;i2=&b;i3=&a;}
else if(a>c){i1=&b;i2=&a;i3=&c;}
else {i1=&b;i2=&c;i3=&a;}
}
printf("大小排列为:%d\t%d\t%d\n",*i1,*i2,*i3);
return 0;
}

2
只写那个函数吧?
void maxandmin( int *p, int *max, int *min )
{
int *pt=p;
*max=*min=*p;
for(p++;p<pt+10;p++)
{
if(*p<*min)*min=*p;
if(*p>*max) *max=*p;
}
return;
}
相似回答