<윤성우의 열혈 C 프로그래밍>
(chap 15 : 도전! 프로그래밍2)
문제1
#include <stdio.h>
int Oddprint(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
if (arr[i] % 2 == 1)
printf("%d ", arr[i]);
}
}
int Evenprint(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
if (arr[i] % 2 == 0)
printf("%d ", arr[i]);
}
}
int main(void)
{
int arr[10];
printf("총 10개의 숫자 입력\n");
for (int i = 0; i < 10; i++)
{
printf("입력 : ");
scanf_s("%d", &arr[i]);
}
printf("홀수 출력 : ");
Oddprint(arr, sizeof(arr) / sizeof(int));
printf("\n");
printf("짝수 출력 : ");
Evenprint(arr, sizeof(arr) / sizeof(int));
return 0;
}
문제2
#include <stdio.h>
int main(void)
{
int num;
int binary[100];
int i = 0;
printf("10진수 정수 입력 : ");
scanf_s("%d", &num);
while (num != 0)
{
binary[i] = num % 2;
num /= 2;
i++;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", binary[j]);
return 0;
}
문제3
#include <stdio.h>
int main(void)
{
int arr[10];
int num;
int back = 9;
int front = 0;
printf("총 10개의 숫자 입력 : \n");
for (int i = 0; i < 10; i++)
{
printf("입력 : ");
scanf_s("%d", &num);
if (num % 2 == 0)
{
arr[back] = num;
back--;
}
else
{
arr[front] = num;
front++;
}
}
printf("배열 요소의 출력 : ");
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
문제4
#include <stdio.h>
void Func(char* arr, int len)
{
for (int i = 0; i < len / 2; i++)
{
if (arr[i] != arr[len - 1 - i])
{
printf("회문이 아닙니다.");
break;
}
else
{
printf("회문 입니다.");
break;
}
}
}
int main(void)
{
char arr[100];
int arrsize = 0;
printf("문자열 입력 : ");
scanf_s("%s", arr, sizeof(arr));
while (arr[arrsize] != '\0')
arrsize++;
Func(arr, arrsize);
return 0;
}