c语言 用指针求最大值

c语言 随便输入10个数,用指针求最大值
高手指教 谢谢

以下是使用指针,求10个数中的最大值及其位置
#include<stdio.h>
void main()
{
 int a[10];
 int i,row,max;
 for(i=0;i<9;i++)
 {
  scanf("%d",a+i);//a+i代表&a[i]
 }
 for(i=0,max=*a,row=i;i<9;i++)
 {
  if(max<*(a+i))//*(a+i)代表a[i]
  {
   void swap(int *a,int *b);
   swap(&max,a+i);
   row=i;
  }
 }
 printf("%d,%d\n",row,max);
}
void swap(int *pa,int *pb)
{
 int tmp;
 tmp=*pa;
 *pa=*pb;
 *pb=tmp;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-27
代码量少,还让你容易理解指针*,&的使用~
#include<stdio.h>
main()
{
int i;
int a[10],*p;

printf("please input the num\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(p=&a[0],i=0;i<10;i++)
{
if(a[i]>*p)
p=&a[i];
}
printf("the max num is: %d\n",*p);
getch();
}本回答被提问者和网友采纳
第2个回答  2009-05-27
#include"stdio.h"
#include"stdlib.h"
long max(long a[],long b)
{long big=a[0], i;
for(i=1;i<b;i++)
if(big<a[i])
big=a[i];
return big;
}
main()
{long i,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n最大数是:%d\n",max(a,10));
system("pause");
}
第3个回答  2009-05-27
也不知道你具体要问什么,给个简单的程序,简单说明如下所示:
随机生成了10个数,然后让指针指向最大值,最后输出指针指向的内容。程序源代码如下,仅供参考:
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
void main(){
srand((unsigned int)time(NULL));
int i,*max,a[10];
for(i=0;i<10;i++)
a[i]=rand()%101;
max=&a[0];
printf("随机生成的10个整数为:\n\n");
for(i=0;i<10;i++){
if(a[i]>*max)
max=&a[i];
printf("%5d",a[i]);
}
printf("\n\n其中的最大值max=%5d\n\n",*max);
}
很简单,就没有加注释,相信你该没有问题的,呵呵
祝你的问题早日解决!
第4个回答  2009-05-27
//可以了
#include<stdio.h>
double max(double a[])
{
int i;
double t;
for(i=0;i<10;i++)
if(*(a+i)>t)t=*(a+i);
return t;

}
void main()
{
int i;
double a[10];
printf("Input 10 numbers:\n");

for(i=0;i<10;i++)
scanf("%lf",a+i);
printf("max=%.2f\n",max(a));

printf("\n");

}
相似回答