본문 바로가기

C 언어

(48)
C언어 연습문제30 [문제] 난수 함수를 이용하여 두 개의 주사위를 던졌을 때의 결과를 출력하는 프로그램을 작성하라. [실행결과] 주사위 1의 결과 2 주사위 2의 결과 6 [코드] #include #include #include int RollDie(void); int main(void) { int dice1, dice2; srand((unsigned int)time(NULL)); dice1 = RollDie(); dice2 = RollDie(); printf("주사위 1의 결과 %d \n주사위 2의 결과 %d", dice1, dice2); return 0; } int RollDie(void) { return (rand() % 6 + 1); } 윤성우의 열혈 C 프로그래밍
C언어 연습문제29 [문제] 달팽이 배열을 만들어서 이를 출력하는 프로그램을 작성하라. 달팽이 배열은 아래의 그림과 같다. 아래 그림에서는 4x4의 달팽이 배열과 5x5의 달팽이 배열을 보여주고 있다. 이 내용을 참조하여 프로그램 사용자로부터 하나의 숫자 n을 입력 받아서 n x n의 길이에 해당하는 달팽이 배열을 출력해주는 프로그램을 작성하라. [실행결과] [코드] #include int main(void) { int arr[50][50]; int i, j, idx, len; int w = -1, s = 0, inc = 1, val = 0; printf("숫자를 입력하시오: "); scanf_s("%d", &len); idx = len; while (1) { for (i = 0; i < idx; i++) // 가로 단위 ..
C언어 연습문제28 [문제] 길이가 4x4인 int형 2차원 배열을 선언하고, 모든 요소를 아래 그림의 왼쪽에 있는 형태와 동일하게 초기화하자. 그리고 배열의 요소들을 오른쪽 방향으로 90º씩 이동시켜서 그 결과를 출력하는 프로그램을 작성해보자. 참고로 배열이 변경되는 형태는 아래와 같다. 출력을 하는 함수와 90º회전하는 함수 두 개를 만들 것 [실행결과] [코드] #include void ShowArr(int(*arr)[4]); void RotateArr(int(*arr)[4]); int main(void) { int i; int arr[4][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12}, {13, 14, 15, 16} }; for (i = 0; i < 3; i++) {..
C언어 연습문제27 [문제] 아래의 코드에서 WhoIsFirst 함수를 완성하시오. #include int OlderFirst(int age1, int age2) { if (age1 > age2) return age1; else return age2; } int YoungerFirst(int age1, int age2) { if (age1 < age2) return age1; else return age2; } int WhoIsFirst() { } int main() { int age1 = 20; int age2 = 30; int first; printf("입장순서 1 \n"); first = WhoIsFirst(age1, age2, OlderFirst); printf("%d세와 %d세 중 %d세가 먼저 입장! \n\n",..
C언어 연습문제26 [문제] 먼저 아래와 같이 2차원 배열 arr1, arr2를 선언한다. arr1 1 2 3 4 5 6 7 8 arr2 1 1 1 1 3 3 3 3 5 5 5 5 그리고 배열요소를 출력하는 함수 ShowArr2Dstyle()와 배열요소의 합을 반환하는 함수 Sum2DArr()을 사용하여 arr1, arr2의 배열 요소와 배열 요소의 합을 출력하라. [실행결과] 1 2 3 4 5 6 7 8 1 1 1 1 3 3 3 3 5 5 5 5 arr1의 합: 36 arr2의 합: 36 [코드] #include void ShowArr2Dstyle(int(*arr)[4], int column) // 2차원 배열 전체 요소 출력 { int i, j; for (i = 0; i < column; i++) { for (j = 0..
C언어 연습문제25 [문제] 다음과 같이 두 개의 int형 포인터 변수와 길이가 5인 int형 배열을 선언한다. int* maxPtr; int* minPtr; int arr[5]; 그리고 MaxAndMin이란 이름의 함수를 정의하고 이를 호출하면서 위의 배열과 두 포인터 변수에 대한 정보를 전달하자. 그리고 함수호출이 완료되면, 포인터 변수 maxPtr에는 가장 큰 값이 저장된 배열요소의 주소 값이, minPtr에는 가장 작은 값이 저장된 배열요소의 주소 값이 저장되어야 한다. [실행결과] 정수 입력 1: 1 정수 입력 2: 3 정수 입력 3: 7 정수 입력 4: 9 정수 입력 5: 5 Max: 9, Min: 1 [코드] #include void MaxAndMin(int* arr, int len, int** mxPtr, i..
C언어 연습문제24 [문제] 아래와 같이 main함수를 작성하고 사용자 정의 함수 SwapIntPtr를 만들어서 ptr1과 ptr2의 값을 바꿔라 int main(void) { int num1 = 10, num2 = 20; int* ptr1, * ptr2; ptr1 = &num1; ptr2 = &num2; printf("%d %d\n", *ptr1, *ptr2); SwapIntPtr(); printf("%d %d\n", *ptr1, *ptr2); return 0; } [실행결과] 10 20 20 10 [코드] #include void SwapIntPtr(int** p1, int** p2) { int* temp = *p1; *p1 = *p2; *p2 = temp; } int main(void) { int num1 = 10, ..
C언어 연습문제23 [문제] 성적관리 프로그램을 작성하자. 과목은 국어, 영어, 수학, 국사 이렇게 네 과목이고 학생은 철희, 철수, 영희, 영수 이렇게 네 사람이다. 프로그램 사용자로부터 이 네 사람의 네 과목 점수를 입력 받는다. 그리고 미리 선언해 놓은 배열에 다음의 형태로 그 값을 저장해야 한다. 저장이 끝났다면, 개인별 총점과 과목별 총점을 계산해서 다음 그림에서 보이는 배열의 위치에 저장해야 한다. 그리고 마지막에는 저장된 값의 검증을 위한 출력을 보여야 한다. 학생별 성적 입력 & 합계를 구하는 함수 WriteRecord 과목별 성적 합계를 구하는 함수 WriteSumRecord 배열에 저장된 값 출력하는 함수 ShowAllRecord [실행결과] [코드] #include int record[5][5]; // ..