求高手解答一道编程题目
输入8个整数 将其中最大的和最后一个交换,最小的和最后一个交换。
#include <stdio.h> void swap(int * p1, int * p2) { if(p1 == p2) return; *p1 ^= *p2; *p2 ^= *p1; *p1 ^= *p2; } int main(void) { int max_index, min_index, i, numbers[8]; for(i = 0; i < 8; i++) scanf("%d", numbers + i); max_index = 0; min_index = 0; for(i = 1; i < 8; i++) { if(numbers[max_index] < numbers[i]) { max_index = i; } if(numbers[min_index] > numbers[i]) { min_index = i; } } swap(numbers + max_index, numbers + 7); swap(numbers + min_index, numbers + 7); for(i = 0; i < 8; i++) printf("%-4d", numbers[i]); puts(""); return 0; }