본문 바로가기
IT/프로그래밍

C언어 본색 파트1 Chapter 7 연습문제 솔루션

by nutrient 2021. 5. 31.
728x90
728x170

 

1번

#include <stdio.h>
int main(void)
{
	int n, i;

	printf("입력(양의 정수): ");
	scanf("%d", &n);
	
	printf("%d의 배수 : ", n);
	for(i=1; n*i<=100; i++)				
		printf("%d ", n*i);	
	
	printf("\n%d의 배수 개수 : %d \n", n, i-1);

	return 0;
}

/*
	10번째 줄에서 반복문을 수행할 조건으로써 n*i<=100을 해줌으로써 
	100보다 작은 n의 배수들을 출력하게 합니다.

	반복문이 종료될 때 i는 배수가 100을 넘어가게 되는 경우까지 포함하기 때문에
	i-1은 배수의 개수가 됩니다. 
*/

 

2번

#include <stdio.h>
int main(void)
{
	int i, j;

	for (i = 0; i < 5; i++) {
		for (j = 0; j < i+1; j++)
			printf("*");
		printf("\n");
	}
	
	return 0;
}

/*
	i는 출력될 *의 줄 번호를
	j는 한 줄에서 출력되는 *의 수를 결정합니다.
*/

 

3번

#include  <stdio.h>
int main(void)
{
	int i, j;
	
	for (i = 0; i < 5; i++)
	{
		for (j = 0; j < i; j++)
			printf(" ");
		
		for (; j < 7 - i; j++)
			printf("*");
		
		printf("\n");
	}

	return 0;
}

/*
	i는 줄번호를 나타내며, j는 한 줄에서의 각 글자를 나타냅니다.
	각 줄에서 처음 i 번째 글자까지는 공백으로 출력하고
	그 뒤부터 7 - i 번째 글자까지 *을 출력하면 됩니다. 
*/

 

4번

#include <stdio.h>
int main(void)
{
	int num, i;
	
	printf("숫자를 입력하세요 : ");
	scanf("%d", &num); 

	for (i = 1; i < 10; i++)
		printf("%d * %d = %d입니다. \n", num, i, num*i);
	
	return 0;

}

 

5번

#include <stdio.h>
int main()
{
	int num, i, result = 1;
	
	printf("팩토리얼 연산을 원하는 숫자를 입력하세요 : ");
	scanf("%d", &num);

	for (i = num; i > 0; i--)
		result *= i;
	
	printf("%d의 팩토리얼 연산 결과는 %d입니다. \n", num, result);

	return 0;
}

/*
	책에 제시된 힌트를 9, 10번째 줄과 같이 구현하면 됩니다.
*/

 

6번

#include <stdio.h>
int main()
{
	int operand1, operand2;
	
	while(1)
	{
		printf("첫 번째 수를 입력해 주세요 : ");
		scanf("%d", &operand1);
		printf("두 번째 수를 입력해 주세요 : ");
		scanf("%d", &operand2);

		printf("%d + %d = %d입니다. \n", operand1, operand2, operand1 + operand2);
	}
	return 0;
}

/*
	operand1, 2 를 입력받고 덧셈 결과를 출력해주는 코드가 무한 루프 내에 작성되면 됩니다. 
*/

 

7번

#include <stdio.h>
int main()
{
	int i, score;
	double sum = 0;
	
	printf("열 과목의 점수를 평균 계산합니다. \n");
	
	for (i = 0; i < 10; i++)
	{
		printf("점수를 입력해 주세요 : ");
		scanf("%d", &score);
		sum += score;
	}
	
	printf("열 과목 점수의 평균은 %.1lf점입니다. \n", sum/10);

	return 0;
}

/*
	반복문이 10번 반복되면서 점수를 입력받고 
	입력받을 때마다 sum 변수에 누적한 뒤
	10으로 나누어 출력하면 됩니다. 
*/

 

8번

#include <stdio.h>
int main()
{
	int i = 0, num = 1, sum = 0;

	while (num != 0) {
		printf("정수를 입력해 주세요 : ");
		scanf("%d", &num);
		
		sum += num;
		i++;
	}
		
	printf("덧셈 결과 : %d\n", sum);
	printf("입력 횟수 : %d\n", i-1); 

	return 0;
}

/*
	변수 num은 입력받은 값을 저장합니다. while 문의 조건으로 num이 0이 아닐 때에
	반복문을 수행하도록 하면 입력이 0이 들어왔을 때 while 문을 탈출하여
	덧셈 결과와 입력 횟수를 출력하게 됩니다. 
*/
728x90
그리드형

댓글