C#/C# 연습
Array : Sort, Reverse (정렬)
HicKee
2022. 11. 30. 09:46
문제 7
실행결과와 같이 되도록 프로그램을 작성하시오.
조건 : 배열의 i번째 요소와 임의의 요소에
저장된 값을 서로 바꿔서 값을 섞은 후
내림차순으로 정렬 후 0~5번 인덱스의 값만
출력하도록 한다.
실행결과
0~19번 방까지의 값 출력
ball[0]=1
ball [1]=2
ball [2]=3
ball [3]=4
...
ball배열의 앞에서부터 6개만 출력(값을 섞은 후, 내림차순 소팅한 결과)
ball [0]=20
ball [1]=19
ball [2]=18
ball [3]=17
ball [4]=16
ball [5]=15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Array_07 {
internal class Array_07 {
static void Main(string[] args) {
int[] arr = new int[20];
Random rand = new Random();
for (int i = 0; i < arr.Length; i++) {
arr[i] = i+1;
}
Console.WriteLine("섞기 전 arr : [" + string.Join(",", arr) + "]");
//무작위로 섞음
for (int i = 0; i < arr.Length; i++) {
int n = rand.Next(arr.Length);
int tmp = arr[i];
arr[i] = arr[n];
arr[n] = tmp;
}
Console.WriteLine("섞은 후 arr : ["+string.Join(",",arr)+"]");
//sorting
Array.Sort(arr);
Console.WriteLine("정렬 오름차순 arr : [" + string.Join(",", arr) + "]");
Array.Reverse(arr);
Console.WriteLine("정렬 내림차순 arr : [" + string.Join(",", arr) + "]");
for (int i = 0; i < 6; i++) {
Console.WriteLine("arr ["+i+"] : "+arr[i]);
}
}
}
}
Sort, Reverse
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Array_Sort {
internal class Program {
static void Main(string[] args) {
int[] arr = new int[10];
for (int i = 0; i < arr.Length; i++) {
arr[i] = i+1;
}
Console.WriteLine("기본 arr = [" + string.Join(",", arr)+"]");
//랜덤으로 섞기
Random rand = new Random();
for (int i = 0; i < arr.Length; i++) {
int n = rand.Next(arr.Length);
int tmp = arr[i];
arr[i] = arr[n];
arr[n] = tmp;
}
Console.WriteLine("섞은 후 arr = [" + string.Join(",", arr) + "]");
//sort
Array.Sort(arr);
Console.WriteLine("정렬 후 arr = [" + string.Join(",", arr) + "]");
Array.Reverse(arr);
Console.WriteLine("정렬 내림차순 arr : [" + string.Join(",", arr) + "]");
for (int i = 0; i < arr.Length; i++) {
for (int j = 0; j <= arr.Length - 1; j++) {
if (arr[i] > arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
Console.WriteLine("for 정렬1 arr : [" + string.Join(",", arr) + "]");
for (int i = 0; i < arr.Length; i++) {
for (int j = 0; j <= arr.Length - 1; j++) {
if (arr[i] < arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
Console.WriteLine("for 정렬2 arr : [" + string.Join(",", arr) + "]");
}
}
}