본문 바로가기

c언어

8. 반복문

1. 1~100까지의 합을 구하는 프로그램을 작성하세요.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

void main(void)
{
	int sum = 0;
	for (int i = 1; i <= 100; ++i)
	{
		sum += i;
	}
	printf("1~100 합: %d", sum);
	return;
}

[실행결과]

 

 

2. 10~100까지의 숫자 중에서 4의 배수가 몇 개이며, 이들의 총합이 얼마인지 알아내오 출력하는 프로그램을 작성하세요.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

void main(void)
{
	int cnt = 0, sum = 0;
	for (int i = 10; i <= 100; ++i)
	{
		if (i % 4 == 0)
		{
			++cnt;
			sum += i;
		}
	}
	printf("10~100 4의 배수: %d, 4의 배수 합: %d\n", cnt, sum);
	return;
}

[실행결과]

 

 

3. 구구단(2~9단)을 출력하는 프로그램을 작성하세요. 단, 반드시 for 문을 중첩하여 작성하세요.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

void main(void)
{
	printf("구구단 프로그램\n");
	for (int i = 2; i < 10; ++i)
	{
		for (int j = 1; j < 10; ++j)
		{
			printf("%d x %d = %-2d  ", i, j, i * j);
			if (j == 4)
			{
				putc('\n', stdout);
			}
		}
		putc('\n', stdout);
	}
	return;
}

[실행결과]

 

 

4. 사용자로부터 다섯 개의 정수를 입력받고, 그 중 가장 큰 수와 가장 작은 수를 골라서 출력하는 프로그램을 작성하세요.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

int max_num(int n1, int n2)
{
	return n1 < n2 ? n2 : n1;
}

int min_num(int n1, int n2)
{
	return n1 < n2 ? n1 : n2;
}

void main(void)
{
	int arr[5] = { 0 };
	printf("Input Your Number: ");
	for (int i = 0; i < sizeof(arr) / sizeof(int); ++i)
	{
		scanf("%d", &arr[i]);
	}
	int max, min;
	max = min = arr[0];
	for (int i = 1; i < sizeof(arr) / sizeof(int); ++i)
	{	
		max = max_num(max, arr[i]);
		min = min_num(min, arr[i]);
	}

	printf("최댓값: %d, 최솟값: %d\n", max, min);
	
	return;
}

[실행결과]

 

 

5. 사용자로부터 입력받은 문자열에서 문자 t가 몇 개나 있는지 세어서(Count) 결과를 출력하는 프로그램을 작성하세요. 단, 입력받은 문자열에 슬래시( / )가 있으면 더 이상 세지 않고 문자열이 끝났다고 판단하며, 슬래시( / )가 입력될 때까지 계속해서 입력을 받습니다.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>



void main(void)
{
	int i = 0, cnt = 0;
	char c;
	char buffer[1025] = { 0 };
	printf("Input your string: ");
	fgets(buffer, sizeof(buffer), stdin);

	while ((c = buffer[i]) != '\0')
	{
		if (c == '/')
		{
			break;
		}
		else if (c == 't')
		{
			++cnt;
		}
		++i;
	}

	printf("문자열 %st의 갯수: %d \n", buffer, cnt);
	return;
}

[실행결과]

 

 

6. 사용자가 입력한 문자열에서 단어의 개수를 알아내는 프로그램을 작성하세요. 단, 단어 와 단어 사이에는 빈칸이나 키가 있을 수 있으며, 빈칸이나 키가 연속되면 개수와 상관없이 하나로 간주합니다. 즉, 빈칸이 셋이라 해도그 중 한 개만 인정하고 나머 지 둘은 무시합니다. 따라서 "A B"와 같은 형식의 문자열이 있다면 단어의 개수는 2입 니다. 그리고 개행 문자는 문자열의 끝으로 간주하여 더는 세지(Count) 않습니다.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

void main(void)
{
	char prev, cur, sep = ' ';
	int cnt = 0, i = 0;
	char buffer[256] = { 0 };

	printf("Word Counter Program!!!\n");
	printf("Input your word: ");
	gets_s(buffer, sizeof(buffer));
	prev = cur = buffer[i];
	while ((cur = buffer[i]) != '\0')
	{
		if (cur == sep && prev != cur)
		{
			++cnt;
		}
		prev = cur;
		++i;
	}
		
	printf("Word Count: %d\n", cnt);
	return;
}

[실행결과]

 

 

7. 다음과 같은 모양으로 숫자를 출력하는 프로그램을 작성하세요. 단, 숫자들 사이 공간은 탭(\t)으로 출력하세요. 참고로 왼쪽이 비어 있는 것들은 숫자를 출력하지 않고 키만 출력한 것입니다.

1)
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25

2) 
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
3) 
             1
           2 3
         4 5 6
      7 8 9 10
11 12 13 14 15

4) 
            1
         2  3  4
      5  6  7  8  9 
  10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25

 

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

void main(void)
{
	int n = 1;
	printf("1)\n");
	for (int i = 0; i < 5; ++i)
	{
		for (int j = 0; j < 5; ++j)
		{
			printf("%2d  ", n++);
		}
		putc('\n', stdout);
	}
	puts("\n\n");

	n = 1;
	printf("2)\n");
	for (int i = 0; i < 5; ++i)
	{
		for (int j = 1; j <= i + 1; ++j)
		{
			printf("%-2d  ", n++);
		}
		putc('\n', stdout);
	}
	puts("\n\n");

	n = 1;
	printf("3)\n");
	for (int i = 0; i < 5; ++i)
	{
		for (int j = 0; j < 5; ++j)
		{
			if (j >= 4 - i)
			{
				printf("%2d  ", n++);
			}
			else
			{
				printf("    ");
			}
		}
		putc('\n', stdout);
	}
	puts("\n\n");

	n = 1;
	printf("4)\n");
	for (int i = 0; i < 5; ++i)
	{
		for (int j = 0; j < i + 5; ++j)
		{
			if (j >= 4 - i && j <= 4 + i)
			{
				printf("%2d  ", n++);
			}
			else
			{
				printf("    ");
			}
		}
		putc('\n', stdout);
	}
	return;
}

[실행결과]

 

'c언어' 카테고리의 다른 글

10. 배열과 포인터  (0) 2023.06.13
9. 포인터와 메모리 관리  (0) 2023.06.09
7. 기초 제어문  (0) 2023.06.05
6. 기타 연산자  (0) 2023.05.29
5. 기초 연산자  (0) 2023.05.27