#include <stdio.h>
int main(int argc, char *argv[])
{
int a[4] = {20, 4, 7, 8};
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4;
j++)
{
if (a[i] < a[j])
{
a[i] = a[j];
}
}
printf("%d\n", a[i]);
a[0] = 20;
a[1] = 4;
a[2] = 7;
a[3] = 8;
}
}我只是试图将输出显示为降序,但没有得到预期的结果。
预期: 20 8 7 4
错误如下: 20 20 20
发布于 2022-10-31 10:25:25
您没有将a[i]与a[j]交换,您只是将a[j]的值复制到a[i]。
要执行交换,需要三个操作:
int tmp = a[i]; // save the value of a[i]
a[i] = a[j]; // write a[j] to a[i]
a[j] = tmp; // write saved value of a[i] to a[j]https://stackoverflow.com/questions/74261615
复制相似问题