본문 바로가기

C

[열혈 C 프로그래밍] 도전! 프로그래밍2

728x90

 응아아아아ㅏ 벌써 새벽 1시다. 오늘은 새벽 3시 전에 들어갈라 햇는데 가능할까ㅜㅜ


#도전1

#include <stdio.h>

void even(int* arr) { 
	printf("짝수 출력 : ");
	for (int i = 0; i < 10; i++) {
		if (arr[i] % 2 == 0)
			printf("%d ", arr[i]);
	}
}

void odd(int* arr) {  
	printf("홀수 출력 : ");
	for (int i = 0; i < 10; i++) {
		if (arr[i] % 2 != 0)
			printf("%d ", arr[i]);
	}
}

int main(void) {
	int arr[10];
	int n = 0;

	printf("총 10개의 숫자 입력\n");
	for (int i = 0; i < 10; i++) {
		printf("입력(%d) : ", i + 1);
		scanf_s("%d", &n);
		arr[i] = n;
	}

	even(arr);
	printf("\n");
	odd(arr);

	return 0;
}


#도전2

#include <stdio.h>


int main(void) {
	int n = 0, n2=0, n3=0;
	int arr[100];

	printf("10진수 정수 입력 : ");
	scanf_s("%d", &n);

	int i = 0;
	while (1) {
		n2 = n / 2;
		n3 = n % 2; arr[i] = n3; i++;
		n = n2;
		if (n == 0 || n == 1) {
			arr[i] = n;
			break;
		}
	}

	for (int j = i; j >= 0; j--) {
		printf("%d", arr[j]);
	}

	return 0;
}

 


#도전3

#include <stdio.h>

int main(void) {
	int n = 0;
	int start = 0, end = 9;
	int arr[10];
	
	printf("10개의 숫자 입력 \n");

	for (int i = 0; i < 10; i++) {
		printf("입력(%d) : ", i+1);
		scanf_s("%d", &n);
		if (n % 2 == 0) {
			arr[end] = n; end--;
		}else {
			arr[start] = n; start++;
		}
	}

	printf("배열 요소의 출력");
	for (int i = 0; i < 10; i++) {
		printf("%d ", arr[i]);
	}


	return 0;
}


#도전4

#include <stdio.h>

int isPali(char* string, int len) {
	int start = 0, end = len-1;
	for (int i = 0; i < (len / 2); i++) {
		if (string[start] != string[end]) return 0;
		else { start++; end--; }
	}
	return 1;
}

int main(void) {
	char string[100];
	int len = 0;
	printf("문자열 입력: ");
	scanf_s("%s", string, 100);

	for (int i = 0; i < 100; i++) {
		if (string[i] == '\0') break;
		else len++;
	}

	if (isPali(string, len)) printf("회문입니다.\n");
	else printf("회문이 아닙니다.\n");

	return 0;
}

 

문자열에서 scnaf쓸 때 버퍼 크기 설정 안 해주면 예외 나는 거 몰라서 한참 헤맴..ㅋㅋㅋ

 

 그리고 python 버릇 때문에 c에도 len() 있길래 쓸려고 햇는데 왠지 모르게 자꾸 오류 나더라ㅡㅡ

 


#도전5

 

#include <stdio.h>

//내림차순
int* DesSort(int arr[]) { //int *arr도 가능
	int temp=0;

	for (int i = 0; i < 7-1; i++) {  
		for (int j = 0; j <(7-1)-i; j++) {
			if (arr[j] < arr[j + 1]) {
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	return arr;
}


int main(void) {
	int arr[7];
	int *a;
	int n = 0;

	printf("7개의 정수 입력\n");
	for (int i = 0; i < 7; i++) {
		printf("입력(%d) ", i+1);
		scanf_s("%d", &n);
		arr[i] = n;
	}

	a=DesSort(arr);

	for (int i = 0; i < 7; i++) {
		printf("%d ", a[i]);
	}
	
	return 0;
}

 

 

 훠후.. 정렬 알고리즘을 만날 줄이야.. 제일 쉽다는 버블 알고리즘.. 이제 끗~