#####
#include <stdio.h>
void input(int *s, int n);
void sort(int *s, int n);
void print(int *s, int n);
int main()
{
int n[10], *p=n;
input(p, 10);
sort(p, 10);
print(p, 10);
return 0;
}
void input(int *s, int n)
{
int *m;
for (m=s; m<s+n; scanf("%d", m++));
}
void sort(int *s, int n)
{
int *i, *j, *min, *max, t;
for (i=s, min=i; i<s+n; i++)
for (j=i+1; j<s+n; *min>*j ? min=j++ : j++);
t=*min, *min=*s, *s=t;
for (i=s+1, max=i; i<s+n; i++)
for (j=i+1; j<s+n; *max<*j ? max=j++ : j++);
t=*max, *max=*(s+n-1), *(s+n-1)=t;
}
void print(int *s, int n)
{
int *i;
for (i=s; i<s+n; printf("%d ", *i++));
printf("\n");
}
#include<stdio.h>
void way1(int a[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
}
void way2(int a[],int n)
{
int i,x,y,t;
for(i=1,x=0,y=0;i<n;i++)
{
if(a[x]>a[i])x=i;
if(a[y]<a[i])y=i;
}
{
t=a[x];
a[x]=a[0];
a[0]=t;
}
{
t=a[y];
a[y]=a[n-1];
a[n-1]=t;
}
}
void way3(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int main()
{
int a[10];
way1(a,10);
way2(a,10);
way3(a,10);
printf("\n");
return 0;
}
- 这两个代码有什么实质性的区别,为什么法二提交会出现答案错误,但运行的结果是一样的?