题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
利用指针编写程序,将一个一维数组a[10]
中的最大元素与第一个元素互换、将最小元素与最后一个元素互换。
参考代码
#include <stdio.h>
void swap (int *a , int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int randArray(int array[10]){
int i;
srand(time(NULL));
for(i=0; i<10; i++)
array[i] = rand()%100+0;
return array[10];
}
int main ()
{
int a[10];
a[10] = randArray(a);
printf ("随机数组:\n");
int i,*p,*pmin = a,*pmax = a;
for (p = a ; p < a+10 ; p++)
printf ("%d ",*p);
for (p = a ; p < a+10 ; p++)
{
if (*p > *pmax)
pmax = p;
if (*p < *pmin)
pmin = p;
}
swap (pmax,a);
swap (pmin,&a[9]);
printf ("\n排序后数组:\n");
for (p = a; p < a+10; p++)
printf ("%d ",*p);
}
运行效果
随机数组:
71 92 83 78 66 7 87 76 92 76
排序后数组:
92 71 83 78 66 76 87 76 92 7