본문 바로가기

공부/C언어

(C 예제) 배열 예제(암호 전달/크기 순으로 정렬/절대값 순으로 정렬)

배열을 사용해서 키 값과 암호화할 단어를 입력해서

암호화를 하고 복호화를 해주는 프로그램

// 암호 전달
#include <stdio.h>

void main(void)
{
	char str[50];
	char text[50];
	char str2[50];
	int i = 0;
	int key;

	printf("암호 단어 입력: ");
	scanf("%s", str);
	printf("키 값 입력: ");
	scanf("%d", &key);
	printf("입력된 단어는 %s입니다.\n", str);

	while (str[i] != '\0')
	{
		text[i] = str[i] + key;
		i++;
	}
	text[i] = '\0';

	printf("입력된 단어를 암호화하면 %s입니다.\n", text);

	i = 0;
	while (text[i] != '\0')
	{
		str2[i] = text[i] - key;
		i++;
	}
	str2[i] = '\0';

	printf("입력된 단어를 복호화하면 %s입니다.\n", str2);
}

문자에 해당되는 아스키코드에 키 값을 더해서 암호화하고

암호화된 아스키코드에 키 값을 빼서 복호화하는 매우 간단한

프로그램이다.


숫자를 입력받고 비교해서 큰 순서대로 정렬해서 출력하는 프로그램

// 크기 비교하고 큰 순서대로 정렬하기
#include <stdio.h>

void main(void)
{
	int i, j;
	int tmp;
	int n[5];

	printf("숫자 5개 입력: ");
	scanf("%d %d %d %d %d", &n[0], &n[1], &n[2], &n[3], &n[4]);

	printf("정렬 전: %d %d %d %d %d\n", n[0], n[1], n[2], n[3], n[4]);

	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4; j++)
		{
			if (n[j] < n[j + 1])
			{
				tmp = n[j];
				n[j] = n[j + 1];
				n[j + 1] = tmp;
			}
		}
	}
	printf("정렬 후: %d %d %d %d %d", n[0], n[1], n[2], n[3], n[4]);
}

입력되는 숫자가 5개라서 모두 비교해서 완벽히 정렬하기 위해서는

for문을 중첩으로 각각 4번 반복해야한다.


절대값 크기를 비교해서 정렬하는 프로그램

위에서 약간 바꾸면 된다.

// 절대값 정렬
#include <stdio.h>

void main(void)
{
	int i, j;
	int tmp;
	int n[5];

	printf("숫자 5개 입력: ");
	scanf("%d %d %d %d %d", &n[0], &n[1], &n[2], &n[3], &n[4]);

	printf("정렬 전: %d %d %d %d %d\n", n[0], n[1], n[2], n[3], n[4]);

	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4; j++)
		{
			if (abs(n[j]) < abs(n[j + 1])) // abs로 바꿈
			{
				tmp = n[j];
				n[j] = n[j + 1];
				n[j + 1] = tmp;
			}
		}
	}
	printf("정렬 후: %d %d %d %d %d", n[0], n[1], n[2], n[3], n[4]);
}

 

'공부 > C언어' 카테고리의 다른 글

(C 예제) 포인터와 배열  (0) 2020.06.27
(C 예제) 포인터 정리 및 예제  (0) 2020.06.26
(C 예제) 배열 정의 및 예제  (0) 2020.06.26
(C 예제) 재귀 함수  (0) 2020.06.25
(C 예제) 함수 정리 및 예제, static 변수  (0) 2020.06.25