吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 834|回复: 5
收起左侧

[求助] C#数组数值交换问题

[复制链接]
apples1949 发表于 2022-7-15 10:29
[C#] 纯文本查看 复制代码
using System;

namespace _20220714
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double[]sz = new double[10];
            for(int i = 0; i < 10; i++)
            {
                Console.Write("请输入第{0}个数:",i+1);
                sz[i]=Convert.ToDouble(Console.ReadLine());
            }
            //for(int i = 0; i < 10; i++)
            //{
            //    Console.WriteLine("第{0}个数为{1}", i + 1, sz[i]);
            //}
            for(int j = 0; j < 10; j++)
            {
                for(int k = 0; k < 9; k++)
                {
                    if (sz[k] > sz[k + 1])
                    {
                        double lss= sz[k];
                        Console.WriteLine("sz[k+1]({0}) sz[k]({1});", sz[k + 1], sz[k]);
                        Console.WriteLine("sz[k+1] = sz[k];");
                        sz[k+1] = sz[k];
                        Console.WriteLine("sz[k + 1]({0}) = sz[k]({1});", sz[k + 1], sz[k]);
                        Console.WriteLine("lss({0})sz[k+1]({1});", lss, sz[k + 1]);
                        Console.WriteLine("lss = sz[k+1];");
                        lss = sz[k];
                        Console.WriteLine("lss({0}) = sz[k+1]({1});", lss, sz[k + 1]);
                        Console.WriteLine("sz[k]({0}),sz[k+1]({1}),lss({2})", sz[k], sz[k + 1], lss);
                        Console.WriteLine(" ");
                    }

                }
            }
            //for (int i = 0; i < 10; i++)
            //{
            //    Console.WriteLine("排序后第{0}个数为{1}", i + 1, sz[i]);
            //}
        }
    }
}


结果输出显示:
[C#] 纯文本查看 复制代码
sz[k+1](4) sz[k](7);
sz[k+1] = sz[k];
sz[k + 1](7) = sz[k](7);
lss(7)sz[k+1](7);
lss = sz[k+1];
lss(7) = sz[k+1](7);
sz[k](7),sz[k+1](7),lss(7)


就懵了
使用.net5

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

QR520 发表于 2022-7-15 10:33
if (sz[k] > sz[k + 1])
{
    double lss= sz[k+1];
    Console.WriteLine("sz[k+1]({0}) sz[k]({1});", sz[k + 1], sz[k]);
    Console.WriteLine("sz[k+1] = sz[k];");
    sz[k+1] = sz[k];
    Console.WriteLine("sz[k + 1]({0}) = sz[k]({1});", sz[k + 1], sz[k]);
    Console.WriteLine("lss({0})sz[k+1]({1});", lss, sz[k + 1]);
    Console.WriteLine("lss = sz[k+1];");
    sz[k] = lss;
    Console.WriteLine("lss({0}) = sz[k+1]({1});", lss, sz[k + 1]);
    Console.WriteLine("sz[k]({0}),sz[k+1]({1}),lss({2})", sz[k], sz[k + 1], lss);
    Console.WriteLine(" ");
}

免费评分

参与人数 1吾爱币 +1 收起 理由
apples1949 + 1 热心回复!

查看全部评分

layuai 发表于 2022-7-15 10:44
你这就是个简单冒泡排序,但是交换的时候你想想是不是有问题,你赋值给另一个交换,然后交换回来时值是不是变了,建议用个temp来保存一个值交换,或者使用异或交换^
 楼主| apples1949 发表于 2022-7-15 11:20
layuai 发表于 2022-7-15 10:44
你这就是个简单冒泡排序,但是交换的时候你想想是不是有问题,你赋值给另一个交换,然后交换回来时值是不是 ...

好的谢谢
yk2014 发表于 2022-7-15 11:23
2楼代码对的。当k下标的值大于k+1时,把k和k+1里面的值交换,那么先把k+1的值存起来,然后把k的值赋值给k+1,再把之前存起来的值赋值给k。
 楼主| apples1949 发表于 2022-7-15 11:36
QR520 发表于 2022-7-15 10:33
if (sz[k] > sz[k + 1])
{
    double lss= sz[k+1];

十分感谢!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表