int max_val = a[0]; // 最大值 int sec_val = a[1]; // 次大值 // 找到最大值和次大值 for (int i = 2; i < len; i++) { if (a[i] > max_val) { sec_val = max_val; max_val = a[i]; } else if (a[i] > sec_val) { sec_val = a[i]; } } // 将最大值和次大值分别与a[0]和a[1]交换 int temp = a[0]; a[0] = max_val; a[max_val - a] = temp; temp = a[1]; a[1] = sec_val; a[sec_val - a] = temp; }
时间: 2024-04-21 17:29:25 浏览: 46
使用GTK + / Vala的现代XMPP(“ Jabber”)聊天客户端-C/C++开发
这段代码是用来找到一个数组中的最大值和次大值,并将它们交换到数组的前两个位置。这个算法的思路是遍历整个数组,通过比较来找到最大值和次大值。最大值和次大值的初始值分别是数组的第一个和第二个元素,然后遍历数组,如果当前元素比最大值大,那么就将最大值设为当前元素,同时将次大值设为原来的最大值;如果当前元素比次大值大,那么就将次大值设为当前元素。最后,通过交换数组元素的值来将最大值和次大值移到数组的前两个位置。
阅读全文