#include
int main()
{
int i;
int a[6],*p;
for (i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
int b=a[0];
int c=a[5];
for(p=a;p<6+a;p++)
{
if(a[0]<*p)
a[0]=*p;
}
for(p=a;p<6+a;p++)
{
if(a[0]==*p)
*p=b;
break;
}
for(p=a;p<6+a;p++)
{
if(a[5]>*p)
a[5]=*p;
}
for(p=a;p<6+a;p++)
{
if(a[5]==*p)
*p=c;
break;
}
for(p=a;p<6+a;p++)
{
printf("%d ",*p);
}
system("pause");
}
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int a[6], * p;
for (i = 0; i < 6; i++)
{
scanf("%d", &a[i]);
}
int b = a[0];
int c = a[0]; // c = a[5];
for (p = a; p < 6 + a; p++)
{
if (b < *p) //if (a[0] < *p)找最大值
b = *p; //a[0] = *p;
if (c > *p) //找到最小值
c = *p;
}
for (p = a; p < 6 + a; p++)
{
if (b == *p) { //if(a[0] == *p)
if (p != a)
{
i = a[0];
a[0] = *p;
*p = i;
}
break;
}
}
//for (p = a; p < 6 + a; p++)
//{
// if (a[5] > *p)
// a[5] = *p;
//}
for (p = a; p < 6 + a; p++)
{
if (c == *p) { //if (a[5] == *p)
if (p != a + 6) {
i = a[5];
a[5] = *p;//*p = c;
*p = i;
}
break;
}
}
for (p = a; p < 6 + a; p++)
{
printf("%d ", *p);
}
return 0;
}