본문 바로가기

전체 글

(196)
C언어 연습문제9 [문제] 프로그램 사용자로부터 10진수 형태로 정수를 하나 입력 받은 다음, 이를 2진수로 변환해서 출력하는 프로그램을 작성해 보자. 조건) 배열을 사용하는 방법과 재귀함수를 사용하는 방법 둘 다 프로그램 해볼 것 [실행결과] 10진수 정수 입력: 15 1111 [코드1: 배열 사용] #include int main(void) { char bin_arr[30]; int num, cnt = 0; printf("10진수 정수 입력: "); scanf_s("%d", &num); while (num > 0) // 2진수로 변환 { bin_arr[cnt++] = num % 2; num /= 2; } while (cnt > 0) // 2진수 변환 결과 출력 printf("%d", bin_arr[--cnt]); re..
C언어 연습문제8 [문제] 길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성해보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main함수 내에서 입력 받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 완성하자. [실행결과] 총 10개의 숫자입력 입력: 1 입력: 3 입력: 5 입력: 20 입력: 33 입력: 25 입력: 42 입력: 6 입력: 7 입력: 0 홀수 출력: 1 3 5 33 25 7 짝수 출력: 20 42 6 0 [코드] #include void Print_odd(int* ptr, int len); void ..
C언어 연습문제7 [문제] 세 변수에 저장된 값을 서로 뒤바꾸는 함수를 정의해보자. 예를 들어서 함수의 이름이 Swap3라 하면, 다음의 형태로 함수가 호출되어야 한다. Swap3(&num1, &num2, &num3); 그리고 함수호출의 결과로 num1에 저장된 값은 num2에 , num2에 저장된 값은 num3에, 그리고 num3에 저장된 값은 num1에 저장되어야 한다. [실행결과] 3개의 정수 입력: 1 2 3 3 1 2 [코드] #include void Swap3(int* ptr1, int* ptr2, int* ptr3); int main(void) { int num1, num2, num3; printf("3개의 정수 입력: "); scanf_s("%d %d %d", &num1, &num2, &num3); Swap..
C언어 연습문제6 [문제] 변수 num에 저장된 값의 제곱을 계산하는 함수를 정의하고, 이를 호출하는 main 함수를 작성해보자. 단, 여기서는 다음 두 가지 형태로 함수를 정의해야 한다. - Call-by-value 기반의 SquareByValue 함수 - Call-by-reference 기반의 SquareByReference 함수 SquareByValue 함수는 인자로 전달된 값의 제곱을 반환해야 하며, SquareByReference 함수는 정수가 저장되어 있는 변수의 주소 값을 인자로 받아서 해당 변수에 저장된 값의 제곱을 그 변수에 다시 저장해야 한다. [실행결과] 정수 입력: 5 입력한 정수의 제곱: 25 입력한 정수의 제곱: 25 [코드] #include int SquareByValue(int n); void..
C언어 연습문제5 [문제] 프로그램 사용자로부터 두 점의 x, y 좌표를 입력 받아서, 두 점이 이루는 직사각형의 넓이를 계산하여 출력하는 프로그램을 작성해보자. 단, 좌 하단의 x, y 좌표 값이 우 상단의 x, y좌표 값보다 작아야 한다. 좌 하단의 좌표정보를 먼저 입력 받는 형태로 우 상단의 값이 잘못들어오는 경우 [실행결과] 좌 하단의 x, y 좌표: 2 4 우 상단의 x, y 좌표: 1 6 좌 하단의 x좌표가 우 상단의 x좌표보다 큽니다. 우 상단의 x, y 좌표: 4 2 좌 하단의 y좌표가 우 상단의 y좌표보다 큽니다. 우 상단의 x, y 좌표: 1 2 좌 하단의 x, y좌표가 우 상단의 x, y좌표보다 큽니다. 우 상단의 x, y 좌표: 4 8 두 점이 이루는 직사각형의 넓이는 8입니다. [코드1] #incl..
C언어 연습문제4 [문제] 사용자로부터 영단어를 입력 받아서 char형 배열에 저장한다. 그 다음 배열에 저장된 영단어를 역순으로 뒤집는다. 그리고 역순으로 뒤집은 단어를 출력한다. 조건1) 배열을 하나만 사용할 것 [실행결과] 단어 입력: banana ananab [코드] #include int main(void) { char voca[100]; char temp; int i, len = 0; printf("단어 입력: "); scanf_s("%s", voca, 100); while (voca[len] != '\0') len++; for (i = 0; i < len / 2; i++) { temp = voca[i]; voca[i] = voca[(len - i) - 1]; voca[(len - i) - 1] = temp; ..
C언어 연습문제3 [문제] 길이가 5인 int형 배열을 선언해서 프로그램 사용자로부터 총 5개의 정수를 입력 받자! 그리고 입력이 끝나면 다음의 내용을 출력하도록 하자. - 입력된 정수 중에서 최대값 - 입력된 정수 중에서 최소값 - 입력된 정수의 총 합 단, 반드시 입력을 완료한 상태에서 최대값, 최소값, 총 합을 계산해야 한다. [실행결과] 1번째 정수 입력: 1 2번째 정수 입력: 5 3번째 정수 입력: 3 4번째 정수 입력: 7 5번째 정수 입력: 9 최대값: 9 최소값: 1 총 합: 25 [코드1] #include int main(void) { int str[5]; int Max, Min, Sum, i; for (i = 0; i < 5; i++) { printf("%d번째 정수 입력: ", i + 1); scan..
C언어 연습문제2 [문제] 10개의 소수(Prime Number)를 출력하는 프로그램을 작성해 보자. 참고로 정수 num이 1과 num으로 밖에 나눠지지 않는다면 이는 소수에 해당한다. 조건1) 소수를 판단하는 함수 IsPrime()을 만들 것 [실행결과] 2 3 5 7 11 13 17 19 23 29 [코드1] #include int IsPrime(int n); int main(void) { int i=2, cnt=0; while(cnt!=10) { if(IsPrime(i)==1) { printf("%d ", i); cnt++; } i++; } return 0; } int IsPrime(int n) // 소수면 true(1) 리턴 { int divisors=0, i; for(i=1; i