본문 바로가기

C언어 콘서트

C언어 콘서트 챕터6 프로그래밍 (~16번)

1. 간단한 카운트 다운 프로그램.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void) 
{
	for (int count = 60; count >= 0; count--)
		printf("%d ", count);
	printf("발사");
	return 0;
}

2. "안녕하세요" 입력받은 반복횟수만큼 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void) 
{
	int repeat;

	printf("몇번이나 반복할까요? : ");
	scanf("%d", &repeat);

	for (int i = 1; i <= repeat; i++)
		printf("안녕하세요?\n");

	return 0;
}

3. 1234567 *******

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int i, j, k;
	for (i = 1; i <= 7; i++) {
		for (j = 1; j <= i; j++)
			printf("%d", j);
		for (k = 8; k > j; k--)
			printf("*");
		printf("\n");
	}

	return 0;
}

4. 정수입력받아서 계속 더하는 프로그램 / 0입력 시 합계 출력 후 종료

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int input, sum = 0;

	while (1) {
		printf("정수를 입력하시오: ");
		scanf("%d", &input);
		if (input == 0) {
			printf("합계 = %d", sum);
			break; 
		}
		else 
			sum += input;
	}
	return 0;
}

5. 1부터 100까지의 자연수 중에서 3의 배수를 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	for (int i = 1; i <= 100; i++) {
		if (i % 3 == 0)
			printf("%d ", i);
	}
	return 0;
}

6. 1부터 100까지 자연수 중 3의 배수&5의 배수를 출력

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	for (int i = 1; i <= 100; i++) {
		if (i % 3 == 0 && i % 5 == 0)
			printf("%d ", i);
	}
	return 0;
}

7.  사용자로부터 정수 x,y를 입력받아서 x에서 y 까지의 합 구하는 프로그램

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int x, y, sum = 0;

	printf("시작정수 : ");
	scanf("%d", &x);

	printf("종료정수 : ");
	scanf("%d", &y);

	for (int z = x; z <= y; z++)
		sum += z;

	printf("%d에서 %d까지의 합 = %d", x, y, sum);
	return 0;
}

8. 아스키 코드 표를 출력하는 프로그램

int main(void)
{
	for (int i = 0; i <= 127; i++)
		printf("%d :			%c\n", i, i);
	return 0;
}

9. 사용자에게 'a'를 받으면 카운터 하나씩 증가. / '.'을 받으면 반복 종료 후 입력한 'a'의 총 개수 출력.

getchar() 사용할 것.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	char ch;
	int count = 0;

	do {
		printf("문자를 입력하시오: (종료 .)  ");
		ch = getchar();
		getchar();

		if (ch == 'a')
			count++;

	} while (ch != '.');
	printf("a의 개수 = %d", count);
	return 0;
}

 

 

============================================================================================

============================================================================================

여기서부터는 별 2개짜리 문제만...

========================================================================================================================================================================================

 

 

11. 중첩 반복문을 사용하여 다음과 같은 출력프로그램 작성

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int num;

	printf("정수를 입력하시오: ");
	scanf("%d", &num);

	for (int i = 1; i <= num; i++) {
		for (int j = 1; j <= i; j++)
			printf("%d ", j);
		printf("\n");
	}
	return 0;
}

12. 1부터 50 사이 숫자 10개 입력받고, 숫자만큼의 별표를 출력하는 프로그램 작성

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int data, count = 0;

	while (count < 10) {
		while (1) {
			printf("데이터를 입력하시오: ");
			scanf("%d", &data);
			if (data < 1 || data > 50) {
				printf("1부터 50까지의 숫자를 입력하십시오. \n");
				break;
			}
			for (int j = 1; j <= data; j++) {
				printf("*");
			}
			printf("\n");
			count++;
			if (count == 10)
				break;
		}
	}
	return 0;
}

13. 피보나치 수열을 계산하는 프로그램

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int n, fib;
	int fib1 = 1;
	int fib2 = 0;

	printf("몇번째 항까지 구할까요? : ");
	scanf("%d", &n);

	printf("%d, %d, ", fib1, fib2);

	for (int i = 3; i <= n; i++) {
		fib = fib1 + fib2;
		printf("%d, ", fib);
		fib2 = fib1;
		fib1 = fib;
	}
	return 0;
}

15. 자동차의 연료 탱크 프로그램 시뮬레이션

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	double amount, oil = 1000;
	char code;

	printf("초기연료량 : %.0lf\n", oil);

	while (1) {
		printf("연료 충전은 +, 소모는 -로 입력해주세요: ");
		scanf("%c%lf", &code, &amount);
		getchar();

		if (oil <= amount)           // 남은 연료량보다 높은 수의 amount를 소모할 경우
			oil = amount;            // 같은 수치로 만들어서 출력되는 남아있는 양을 0으로 표시되게 함.

		if (code == '+')	
			oil += amount;
		else if (code == '-')
			oil -= amount;
		printf("현재 남아있는 양은 %lf입니다.\n", oil);

		if (oil <= 0) {
			printf("연료가 모두 소모되었습니다.\n프로그램을 종료합니다.\n");
			break;
		}
		if (oil < 100)
			printf("(!경고!) 연료가 10%%이하입니다.\n");
	}
	return 0;
}

16. 사용자가 입력한 수가 소수인지 아닌지 출력하는 프로그램.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h>  //time()

int main(void)
{
	int num;

	printf("정수를 입력하시오: ");
	scanf("%d", &num);

	for (int i = 2; i <= num; i++) {
		if (num % i == 0 && i != num) {
			printf("%d는 소수가 아닙니다.\n", num);
			return 0;
		}
	}
	printf("%d는 소수입니다.\n", num);

	return 0;
}

17. 피타고라스 뭐시기

여기부터는 다음번에~