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 |