改动处见注释,供参考:
#include <stdio.h>
int main()
{
int a, i, j, b;
int tmp;
scanf("%d %d", &a, &b);
int f[4] = { (a + b) * (a + b),(a - b) * (a - b),a * a + b * b,a * a - b * b };
for (i = 0; i < 3; i++) //(i=0;i<4;i++)
{
for (j = 0; j < 3 - i; j++) //(j=1;j<3-i;j++)
{
if (f[j] < f[j + 1]) //(f[j]>f[i])
{
tmp = f[j];
f[j] = f[j + 1]; //f[i]=f[j];
f[j + 1] = tmp; //f[j]=tmp;
}
}
}
printf("%d %d", f[0], f[3]);
return 0;
}
交换那个位置错了。
temp=f[j];
f[j]=f[i];
f[i]=temp;
循环条件一眼错