𝗣𝗿𝗼𝗷𝗲𝗰𝘁 𝗔𝗩𝗦

Project AVS Since 2023.01.27

소프트웨어 | Software/프로그래밍 | C언어 | C

윤성우 열혈 C 프로그래밍 도전! 프로그래밍 2 답

아벵 AVS 2023. 5. 3. 06:05

윤성우 열혈 C 프로그래밍 도서내에 있는 도전 프로그래밍 답 

 

필자가 독학하면서 직접 쓴 코드이며
컴파일 후 여러 값 대입 후 오류 없으면

업데이트

 

이전 글 프로그래밍 1편

2023.04.20 - [소프트웨어 | Software/프로그래밍 | C언어 | C] - 윤성우 열혈 C 프로그래밍 도전! 프로그래밍 1 답

 

윤성우 열혈 C 프로그래밍 도전! 프로그래밍 1 답

윤성우 열혈 C 프로그래밍 도서내에 있는 도전 프로그래밍 답 필자가 독학하면서 직접 쓴 코드이며 컴파일 후 여러 값 대입 후 오류 없으면 업데이트 ● 도전 1 - 16진수 출력 #define _CRT_SECURE_NO_WARN

avs-won.tistory.com

 

 

 도전 1 - 10개의 수를 입력 받아 홀수 짝수 판별


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void HS(int* ptr,int len) //홀수
{
	for (int k = 0; k < len; k++)
	{
		if (*(ptr + k) % 2 != 0)
			printf("%d ", *(ptr + k));
	}
}

void WS(int* ptr,int len) //짝수
{
	for (int k = 0; k < len; k++)
	{
		if (*(ptr + k) % 2 == 0)
			printf("%d ", *(ptr + k));
	}
}

int main(void)
{
	int arr[10];
	for (int i = 0; i < 10; i++)
	{
		printf("입력 : ");
		scanf("%d", &arr[i]);
	}
	printf("홀수 출력 : ");
	HS(arr,sizeof(arr)/sizeof(int));
	printf("\n");
	printf("짝수 출력 : ");
	WS(arr,sizeof(arr) / sizeof(int));

	return 0;
}

 

 도전 2 - 10진수를 2진수로 바꾸기


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int input,cnt=0;
	char Binary[50];
	printf("10진수 양의 정수 입력하세요. (2진수로 바꿔줌) : ");
	scanf("%d", &input);

	if (input == 0)
		printf("%d", input);

	while (input>0)
	{
		Binary[cnt++] = input % 2;
		input /= 2;
	}

	while (cnt > 0)
	{
		printf("%d", Binary[--cnt]);
	}
	return 0;
}

 

 도전 3 - 홀,짝 구분으로 배열 채우기


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int arr[10];
	int input, j = 9,p=0;
	printf("총 10개의 숫자 입력 \n");
	for (int i = 0; i < 10; i++)
	{
		input = 0;
		printf("입력 :");
		scanf("%d", &input);
		if (input % 2 == 1)		//홀수 이면 배열의 앞에서 채움
			arr[p++] = input;
		else					// 짝수이면 배열 뒤에서 채움
		arr[j--] = input;
	}
	printf("배열의 요소 출력 :");
	for (int k = 0; k < 10; k++)
		printf("%d", arr[k]);

	return 0;
}

 

 도전 4 - 회문 판별 


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

void Palindrome_FACT(char input[])
{
	int len = strlen(input);

	for (int i = 0; i < len/2; i++)
	{
		if (input[i] != input[len - i-1])
		{
			printf("회문이 아니다. \n");
			return 0;
		}
	}
	printf("회문이다. \n");
}

int main(void)
{
	char input [50];
	printf("문자열 입력 :");
	scanf("%s", input);
	Palindrome_FACT(input);

	return 0;
}

 

 도전 5 - 버블 정렬 알고리즘 #내림차


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void Desort(int arr[],int len)
{
	int temp;
	for (int i = 0; i < len - 1; i++)
	{
		for (int j = 0; j < len - i - 1; j++)
		{
			if (arr[j] < arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

int main(void)
{
	int arr[7];
	
	for (int i = 0; i < 7; i++)
	{
		printf("입력 : ");
		scanf("%d", &arr[i]);
	}
	Desort(arr,sizeof(arr)/sizeof(int));

	for (int i = 0; i < 7; i++)
		printf("%d", *(arr + i));

	return 0;
}

 

반응형