목록C/문제 (23)
개인노트
문제 1) 변수 num에 저장된 값의 제곱을 계산하는 함수를 정의하고 이를 호출하는 main 함수를 작성해보자.(함수 1. Call-By-Value 기반의 SquareByValue 함수 함수 2. Call-By-Reference 기반의 SquareByReference 함수) Q) 14-1_1.c #include int SquareByValue(int);void SquareByReference(int*, int); int main(void) { int num; printf("양의 정수를 입력하시오 : ");scanf_s("%d", &num);SquareByValue(num);printf("num의 값 1 : %d \n", num);SquareByReference(&num,num);printf("num의 값..
문제 1.) 길이가 5인 int형 배열을 1,2,3,4,5로 선언 및 초기화 후 포인터 변수 ptr에 저장된 값을 증가시키는 형태의 연산을 기반으로 배열 요소에 접근 하면서 모든 배열 요소의 값을 2씩 증가 시킨 후 출력하여라. Q) 13-1_1.c #include int main(void) {int arr[] = { 1,2,3,4,5 };int *ptr = arr;int i; for (i = 0; i < 5; i++) {*ptr += 2;ptr++;} for (i = 0; i < 5; i++) {printf("%d 번째 배열의 값 : %d \n", i, arr[i]);}getchar();} 문제 2.) 문제 1과 달리 포인터 변수 ptr에 저장된 값을 변경시키지 않고 ptr을 대상으로 덧셈 연산을 하여..
문제 1. 아래의 예제 실행 시 포인터 변수와 변수의 관계를 그림으로 그린 후 출력의 결과를 말하여라. Q) 12-1_1.cint main(void) {int num = 10;int * ptr1 = #int * ptr2 = ptr1; (*ptr1)++;(*ptr2)++; printf("%d \n", num);getchar(); } 출력 결과 : num의 값은 2번 상승하여 12이다. 문제 2. int형 변수 num1, num2를 10과 20으로 선언 및 초기화 → int형 포인터 변수 ptr1, ptr2 선언 후 num1, num2를 가리킴 → 포인터 변수를 이용하여 num1은 10증가 num2는 10 감소 → ptr1과 ptr2이 가리키는 대상을 바꾸고 출력 하여라. Q) 12-1_2.c #in..
문제 1. 하나의 영단어를 입력 받아서 영단어의 길이를 출력하여라. ex) apple을 입력하면 5가 출력 되어야한다. Q) 11-2_1.c #include int main(void) {char word[100]; // 문자열을 입력 받을 배열int idx = 0; // 배열의 위치 printf("영단어를 입력하세요 : ");scanf_s("%s", word, sizeof(word)); printf("입력받은 영단어 : %s \n", word); while (word[idx] != '\0') {idx++;}printf("영단어의 철자 수 : %d \n", idx); getchar();getchar();} 문제 2. 영단어를 배열에 입력 받은 다음 영단어를 역순으로 뒤집고 출력하여라. 단 널 문자의 위치는..
1. 길이가 5인 int형 배열을 선언하여 총 5개의 수를 입력 받은 후 최댓값, 최솟값, 총 합을 구하여라. 문제11-1_1.c #include #include "stdlib.h" void arry(void);int max(void);int min(void);int sum(void);static int arr[5]; int main(void){arry();max();min();sum();system("pause");} void arry(void) {int i; printf("5개의 정수를 입력하세요.\n"); for (i = 0; i < sizeof(arr) / sizeof(int); i++)scanf_s("%d", &arr[i]);} int max(void) {int i=0, max=arr[i], a..
문제) 두 개의 정수를 입력 받아서 최대 공약수를 구하여라. 도전1-3.c #include #include "stdlib.h" int GCM(int, int); int main(void) {int num1, num2; printf("두 개의 정수를 입력하세요. \n");scanf_s("%d", &num1);scanf_s("%d", &num2); GCM(num1, num2); system("pause"); } int GCM(int num1, int num2) {int i, small, su=1; // su = 최대공약수 if (num1 < num2)small = num1;elsesmall = num2;for (i = 2; su < small ; NULL) {if (num1 % i == 0 && num2 %..
문제. 두 개의 정수를 입력받아서 그 사이 수들의 구구단을 구하여라.ex) 두 수 2와 4를 입력받으면 2,3,4의 구구단을 출력하고, 순서를 바꾸어 4와 2를 입력받을 때에도 같은 결과값을 출력해라. 도전1-2.c #include #include "stdlib.h" void dosu(int, int);int gugu(int, int);int max, min; int main(void) {int a, b; printf("첫번째 정수 입력 : ");scanf_s("%d", &a);printf("두번째 정수 입력 : ");scanf_s("%d", &b); dosu(a,b);gugu(a,b);system("pause");} void dosu(int a, int b) {if (a > b) {max = a;min..
도전1-1.c #include #include "stdlib.h" int main(void) {int num;printf("16진수로 변환시킬 10진수를 입력하세요. : ");scanf_s("%d", &num);printf("입력한 10진수 : %d \n", num);printf("변환된 16진수 : %X \n", num);system("pause");}
Q. 재귀함수를 사용하여 입력 받은 정수의 팩토리얼 값을 구하여라.팩토리얼 : ( n! = n x (n-1) x (n-2) x (n-3) x (n-4) x ... 2 x 1 ) → n x (n-1)! Soruce.c #include #include "stdlib.h" void recursive(int);int factorial(int); int main(void){int n;printf("수를 입력하세요 : ");scanf_s("%d", &n);recursive(n);printf("\n= %d \n", factorial(n));system("pause");} void recursive(int num){int a;if (num >= 1){for (a = num; a >= 1; a--){if (a = 1)r..
다음은 입력하는 값을 누적하여 합계를 출력하는 예제이다.다음에서 사용된 전역변수 total을 static 변수로 대체하여보자.단, 대체 과정에서 main 함수의 변경은 없어야 하며 실행 결과도 동일해야 한다. #include #include "stdlib.h" int total = 0; int AddToTal(int num){total += num;return total;} int main(void){int num, i;for (i = 0; i Source.c #include #include "stdl..