반응형
// 문제4
void Practice4()
{
	srand((unsigned int)time(NULL));
	int dice1 = rand() % 6 + 1;
	int dice2 = rand() % 6 + 1;

	printf("주사위1 의 결과 : %d\n", dice1);
	printf("주사위2 의 결과 : %d\n", dice2);
}

 

반응형

 

반응형

'연습문제' 카테고리의 다른 글

C 파일 입출력 문제1  (0) 2023.05.24
C 복소수 구하기  (0) 2023.05.24
C언어 달팽이 정렬  (0) 2023.05.22
C언어 90도씩 회전하기  (0) 2023.05.22
C언어 tictactoe  (0) 2023.05.19
반응형
// 문제2
void Print2(int(*arr)[10], int num)
{
	for (int i = 0; i < num; i++)
	{
		for (int j = 0; j < num; j++)
		{
			printf("%2d ", arr[i][j]);
		}
		printf("\n");
	}
}
void SnailSort(int(*arr)[10])
{
	int num = 0;
	int count = 1;
	int side = 0;
	int colR = 0;
	int rowR = 0;
	int colL = 0;
	int rowL = 0;
	printf("정수 입력 : ");
	scanf("%d", &num);

	while (side < num)
	{
		if (side % 2 == 0)
		{
			for (int i = rowR; i < num- rowR; i++)
			{
				arr[rowR][i] = count++;
			}
			colR++;
			side++;

			for (int i = colR; i < num- colR +1; i++)
			{
				arr[i][num - colR] = count++;
			}
			rowR++;

		}
		else if (side % 2 != 0)
		{
			rowL++;
			for (int i = num - rowL-1; i >= rowL -1; i--)
			{
				arr[num - rowL][i] = count++;
			}
			colL++;
			side++;
			for (int i = num - colL-1; i >= colL; i--)
			{
				arr[i][colL -1] = count++;
			}

		}

	}

	Print2(arr, num);
}
void Practice2()
{
	int arr[10][10] = { 0 };

	SnailSort(arr);
}

 

반응형

 

반응형

'연습문제' 카테고리의 다른 글

C 복소수 구하기  (0) 2023.05.24
C언어 주사위 굴리기  (0) 2023.05.22
C언어 90도씩 회전하기  (0) 2023.05.22
C언어 tictactoe  (0) 2023.05.19
C 포인터2 문제  (0) 2023.05.18
반응형
void Print1(int(*arr)[4])
{
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			printf("%2d ", arr[i][j]);
		}
		printf("\n");
	}
}
void ArrayRotate(int(*arr)[4])
{
	printf("90도 회전\n");
	int temp[4][4] = { 0 };
	for (int i = 3; i >= 0; i--)
	{
		for (int j = 0; j < 4; j++)
		{
			temp[j][i] = arr[3 - i][j];
		}
	}

	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			arr[i][j] = temp[i][j];
		}
	}

}
void Practice1()
{
	int arr[4][4] = { {1,2,3,4,},
	{5, 6, 7, 8},
	{9, 10, 11, 12},
	{13, 14, 15, 16} };
	Print1(arr);
	ArrayRotate(arr);
	Print1(arr);
	ArrayRotate(arr);
	Print1(arr);
	ArrayRotate(arr);
	Print1(arr);
}

 

반응형

 

반응형

'연습문제' 카테고리의 다른 글

C언어 주사위 굴리기  (0) 2023.05.22
C언어 달팽이 정렬  (0) 2023.05.22
C언어 tictactoe  (0) 2023.05.19
C 포인터2 문제  (0) 2023.05.18
C 포인터 문제  (0) 2023.05.17
반응형
구조체의 정의

여러 데이터형을 하나의 묶음으로 새로운 자료형을 정의하는 것이다.

프로그래머가 정의한 자료형이기에 '사용자 정의 자료형(user defined data type)'이라 한다.

 

구조체는 아래의 코드처럼 정의 및 선언할 수 있다.

struct point
{
    int xPos;	// 멤버변수
    int yPos;	// 멤버변수
};

 

 

 

구조체 변수 선언, 접근

구조체는 아래의 코드처럼 struct type_name val_name; 으로 선언이 가능하다

struct point pos;
struct person man;

 

멤버변수 접근 방식

구조체 변수의 이름.구조체 멤버의 이름

 

맨 밑에서의 방식은 구조체 멤버변수에 각 대응되는 값을 순차적으로 넣어주는 방식입니다.

struct point
{
    int xPos;
    int yPos;
};
struct person
{
    char name[20];
    char phoneNum[20];
    int age;
};

pos.xPos = 10;	// 구조체 변수 pos의 멤버 xPos에 10을 저장

struct person man = {"홍길동", "010-8923-9520", 20};	// 구조체 변수에 각각 대응되는 값 저장

 

 

 

구조체 정의와 동시에 변수 선언

아래의 코드처럼 구조체를 선언하면서 동시에 구조체 변수 또한 선언할 수 있다.

아래와 같은 방식은 잘 사용되지 않는다.

struct point
{
    int xPos;
    int yPos;
}pos1, pos2, pos3;

 

 

 

구조체를 정의하는 이유
  • 연관 있는 데이터를 하나로 묶을 수 있는 자료형을 정의할 수 있다.
  • 데이터의 표현 및 관리가 용이.
  • 위의 이유로 인해 합리적인 코드를 작성할 수 있다.

 

반응형

 

반응형

'C' 카테고리의 다른 글

구조체 변수 전달과 반환  (0) 2023.05.23
구조체 typedef 선언  (1) 2023.05.23
문자열 관련 함수  (0) 2023.05.22
표준 입출력 버퍼  (0) 2023.05.22
문자와 문자열 함수  (0) 2023.05.22
반응형
strlen함수 : 문자열 길이 반환

문자열의 길이 반환, 널 문자는 길이에 포함되지 않는다.

size_t strle(const char* s);

 

 

 

strcpy, strncpy : 문자열 복사 함수

strcpy : 두번째 인자의 값을 첫번째 인자에 복사.

strncpy : n 길이만큼만 두번째인자를 첫번째 인자에 복사, 널문자는 복사해주지 않는다.

char* strcpy(char* dest, const char* src);
char* strncpy(char* dest, const char *src, size_t n);

 

 

 

strcat, strncat : 문자열 덧붙이는 함수

strcat : 두번째 인자를 첫번째 인자 뒤에 연결시킨 주소 값을 반환

strncat : 두 번째 인자 n 길이만큼만 첫번째 인자 뒤에 연결시킨 주소 값을 반환,

널 문자를 포함하여 n+1개의 문자를 덧붙인다.

char* strcat(char* dest, const char* src);
char* strncat(char* dest, const char* src, size_t n);

 

 

 

strcmp, strncmp : 문자열 비교 함수

문자열의 내용이 같으면 0, 같지 않으면 0이 아닌 값 반환

 

  • s1 이 더 크면 0보다 큰 값 반환
  • s2가 더 크면 0보다 작은 값 반환
int strcmp(const char* s1, const char* s2);
int strncmp(const char* s1, const char* s2, size_t n);

 

 

 

atoi, atol atof : 변환함수

헤더파일 stdlib.h 에 선언되어 있다.

 

atoi : 문자열의 내용을 int형으로 변환

atol : 문자열의 내용을 long형으로 변환

atof : 문자열의 내용을 double형으로 변환

int atoi(const char* str);
long atol(const char* str);
double atof(const char* str);

 

반응형

 

반응형

'C' 카테고리의 다른 글

구조체 typedef 선언  (1) 2023.05.23
구조체  (0) 2023.05.22
표준 입출력 버퍼  (0) 2023.05.22
문자와 문자열 함수  (0) 2023.05.22
함수 포인터  (0) 2023.05.19

+ Recent posts