C#程序问题[将两个体量排序为一个]
本文关键字:排序 一个 两个 问题 程序 | 更新日期: 2023-09-27 18:30:02
我需要将两个数组排序为一个,但0000000发生在输出的中间。怎么了?找不到一个错误,是在泡沫中吗?这是代码
"ConsoleApplication5.vshost.exe"(CLR v4.0.30319:ConsoleApplication5.vshost.exe):已加载"C:''Windows''Microsoft.Net''assembly''GAC_MSIL''System.Data.DataDataSetExtensions''v4.0_4.0.0.0__b77a5c561934e089''System.Deta.Data.DetasetExtensions.dll"。已跳过加载符号。模块已优化,调试器选项"仅我的代码"已启用ConsoleApplication5.vshost.exe'(CLRv4.0.30119:ConsoleApplication5.vshost.exe):已加载"C:''Windows''Microsoft.Net''assembly''GAC_MSIL''Microsoft.CSharp''v4.0.0.0__b03f5f7f11d50a3a''Microsoft.CSharp.dll"。已跳过加载符号。模块已优化,调试器选项"仅我的代码"已启用ConsoleApplication5.vshost.exe'(CLRv4.0.30119:ConsoleApplication5.vshost.exe):已加载"C:''Windows''Microsoft.Net''assembly''GAC_32''System.Data''v4.0_4.0.0.0__b77a5c561934e089''System.Data.dll"。已跳过加载符号。模块已优化,调试器选项"仅我的代码"已启用ConsoleApplication5.vshost.exe'(CLRv4.0.30119:ConsoleApplication5.vshost.exe):已加载"C:''Windows''Microsoft.Net''assembly''GAC_MSIL''System.Xml''v4.0.0.0__b77a5c561934e089''System.Xml.dll"。已跳过加载符号。模块已优化,调试器选项"仅我的代码"已启用ConsoleApplication5.vshost.exe'(CLRv4.0.30119:ConsoleApplication5.vshost.exe):已加载"C:''Windows''Microsoft.Net''assembly''GAC_MSIL''mscorlib.resources''v4.0_4.0.0.0_ru_b77a5c561934e089''mscorlib.resources.dll"。模块是在没有符号的情况下构建的。线程0x1264已退出,返回代码259(0x103)。线程0xc4c已退出,代码为259(0x103)。线程0xdc4已退出,代码为0(0x0)。线程0x16f4具有已退出,代码为259(0x103)。'ConsoleApplication5.vshost.exe'(CLRv4.0.30119:ConsoleApplication5.vshost.exe):已加载'c:''users''vas''documents''visualstudio2013''Projects''ConsoleApplication5''ConsoleApplication5''bin''Debug''ConsoleApplication 5.exe。已加载符号。程序"[1112]ConsoleApplication5.vshost.exe:程序跟踪"已退出,代码为0(0x0)。程序'[1112]ConsoleApplication5.vshost.exe"已退出,代码为1073741510(0xc000013a)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] array1 = new int[20];
int[] array2 = new int[20];
int[] array = new int[40];
int k = 0;
Random rnd = new Random();
Console.WriteLine("Исходный массив №1:");
for (int i = 0; i < 20; i++)
{
array1[i] = rnd.Next(-100, +100);
Console.Write("{0} ", array1[i]);
}
Console.WriteLine();
Console.WriteLine("Исходный массив №2:");
for (int i = 0; i < 20; i++)
{
array2[i] = rnd.Next(-100, +100);
Console.Write("{0} ", array2[i]);
}
Console.WriteLine();
for (; k < 20; k++)
{
array[k] = array1[k];
}
for (; k > 20; k++)
{
array[k] = array2[k - 20];
}
Console.WriteLine("Отсортированный массив:");
BubbleSort(ref array);
for (int i = 0; i < 40; i++)
{
Console.Write("{0} ", array[i]);
}
Console.ReadKey();
}
static void BubbleSort(ref int[] A)
{
for (int i = 0; i < A.Length; i++)
{
for (int j = i + 1; j < A.Length; j++)
{
if (A[j] < A[i])
{
var temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
}
}
}
这应该是:
for (int k = 0; k < 20; k++)
{
array[k] = array1[k];
}
for (int k = 0; k < 20; k++)
{
array[k + 20] = array2[k];
}
你可以做
for (int k = 0; k < 20; k++)
{
array[k] = array1[k];
array[k + 20] = array2[k];
}
但由于内存管道缓存,2个循环通常更快。