C 프로그래밍(새내기를 위한 첫 C언어 책) 08 연습문제
*주*
다운로드
장바구니
소개글
"C 프로그래밍(새내기를 위한 첫 C언어 책) 08 연습문제"에 대한 내용입니다.목차
1. 배열에 저장된 값 중 사용자가 입력한 값이 몇 개 들어 있는지 표시하려고 한다. 이 프로그램에서 밑줄 친 곳에는 무언가가 생략되어 있거나 에러가 난다. 잘못된 이유와 어떻게 수정해야 하는지 적으시오.2. 다음 식을 예와 같이 C언어에 맞게 표현하시오.
3. 다음 프로그램을 실행했을 때 9행에서 convert 함수가 호출되어 반환 값이 전달된 직후 10행에서의 second 값을 적으시오.
4. 1feet는 30.48cm이다. cm 단위의 키를 height 변수에 입력받은 후 feet 단위로 변환하여 출력하도록 다음 프로그램을 완성하시오.
5. 사용자의 키(height)와 몸무게(weight)를 입력받아 입력된 키에 해당하는 체중이 표준체중보다 초과인지, 미달인지, 같은지를 다음과 같이 출력하는 프로그램을 작성하시오. 표준체중은 (키-100)*0.9이며, 표준체중과의 차이 즉 (표준체중-사용자의 체중)은 difference 함수를 이용해 구한다. 단 표준체중과의 차이는 0.1 미만일 때는 0을 반환하도록 한다. 표준체중과의 차이가 0.01일 때는 '0.0kg 초과'로 출력되는 것을 막기 위해서다.
6. [프로그램 8-23]의 find_min 함수는 배열의 최솟값만 반환하므로 최솟값이 배열의 어느 원소에 해당하는지는 알 수 없다. 배열 원소의 첨자를 반환하는 함수 index를 정의해 이 최솟값이 배열의 어느 원소에 해당하는지 나타내도록 [프로그램 8-23]을 수정하시오.
7. 연도(year)와 월(month)을 입력받아 year년 month월의 마지막 일(28~31 중 1개)을 출력하는 프로그램을 작성하시오. 이때 마지막 일은 함수 last_day를 이용해 구하시오.
8. 한 달 동안의 음성 통화 시간이 voice분이고 문자 전송 건수가 text건일 때 휴대폰 사용료 계산 방법을 사용해 휴대폰 사용료 charge를 구하는 프로그램을 작성하시오. 음성 통화료는 voice_charge 함수를, 문자 전송료는 text_charge 함수를 정의해 사용한다.
9. 학생 N명의 퀴즈 점수 10, 8, 7, 9, 6, 10, 9, 8, 7이 저장된 배열 class에 대하여 사용자의 점수가 입력되면 순위를 출력하는 프로그램을 작성하시오. 입력된 점수 my_score의 순위를 구하는 함수 rank를 정의해 사용하시오.
10. [프로그램 7-3]의 연예인 인기도 설문 조사 프로그램을 확장하여 다음과 같이 출력하는 프로그램을 작성하시오. 각 연예인의 득표수는 1번 문제의 frequency 함수를 완성해 이용하고, 득표수 순위는 9번 문제의 rank 함수를 이용한다.
11. [프로그램 8-32]를 반복문 형태로 수정하시오.
12. 함수의 원형이 int factorial(int n); 인 n!(팩토리얼)을 구하는 재귀 함수를 정의하여 사용자가 입력한 임의의 양의 정수 n에 대해 n!을 구하는 프로그램을 작성하시오. n! = 1 × 2 ×3 ··· × n이다.
13. [프로그램 8-32]를 참고해 사용자가 입력한 양의 정수를 2진수로 출력하는 binary 함수를 정의하시오.
본문내용
1. 배열에 저장된 값 중 사용자가 입력한 값이 몇 개 들어 있는지 표시하려고 한다. 이 프로그램에서 밑줄 친 곳에는 무언가가 생략되어 있거나 에러가 난다. 잘못된 이유와 어떻게 수정해야 하는지 적으시오.#include
#define N 30
void print_title();
--------------------------------------
void main()
{
int result[N] = { 1, 3, 2, 5, 3, 2, 1, 2, 3, 4, 5, 2, 3, 3, 2,
1, 4, 5, 2, 3, 5, 1, 3, 4, 2, 3, 1, 4, 2, 3 };
int count, i, target;
printf("갯수를 구하고 싶은 값은(1~5)?");
scanf("%d", &target);
print_title;
count = frequency(result[N], target);
printf("배열에는 %d가 %d개 있습니다.", target, count);
return 0;
}
void print_title()
{
printf("=====================\n");
printf("배열에 특정 값이 몇 개 포함되어 있는지 찾는 프로그램\n");
printf("=====================\n");
}
int frequency(int arr[N], value)
{
int i, count = 0;
for (i = 0; i if (arr[i] == value)
count++;
-----------------------------------
}
4 행에서 함수의 원형이 선언되어 있지 않는상태다. 23행을 보면 함수 int frequency를 볼수 있다.
5 행에서는 15행을 보면 return 0이라는 것을 볼수 있기 때문에 void가 아닌 int형을 써서 리턴값이 있다는 것을 알려줘야한다.