首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不按降序获得预期输出

不按降序获得预期输出
EN

Stack Overflow用户
提问于 2022-10-31 10:02:08
回答 1查看 48关注 0票数 -2
代码语言:javascript
运行
复制
#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

  • 请帮我纠正.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-31 10:25:25

您没有将a[i]a[j]交换,您只是将a[j]的值复制到a[i]

要执行交换,需要三个操作:

代码语言:javascript
运行
复制
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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74261615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档