1078 : [기초 - 종합] 짝수 합 구하기
문제 설명 : https://codeup.kr/problem.php?id=1078
정수를 입력받아 1부터 그 수까지 짝수의 합을 구하는 문제다.
이제부터는 지금까지 배운 문제를 종합하는 문제가 나온다.
종합문제에 대한 설명은 주석으로 대신하겠다.
#include < stdio.h>
int main()
{
int sum = 0;
int i, j;
scanf("%d", &j); // 정수를 입력받아 j에 저장
for(i = 1; i <= j; i++) // for문 i는 1부터 j까지 밑 구문을 실행 후 i를 1 증가
{
if(i % 2 == 0) // if문 i를 2로 나눈 나머지가 0일 때
sum += i; // sum = sum + i와 같다. 누적 연산.
} // i가 j 작거나 같을 때(이하)까지 반복 후 for문을 빠져나감
printf("%d", sum); // sum을 출력한다.
return 0;
}
1079 : [기초 - 종합] 원하는 문자가 입력될 때까지 반복 출력하기
문제 설명 : https://codeup.kr/problem.php?id=1079
원하는 문자가 입력될 때까지 반복 출력 문제다.
#include <stdio.h>
int main()
{
char i ;
// do while문을 이용
do
{
scanf("%c ", &i); // 문자를 입력받아 변수 i에 저장
printf("%c\n", i); // 변수 i를 출력 후 개행
} while(i != 'q'); // i가 q가 아닐 때까지 반복, q가 나오면 do while문을 빠져나감
return 0;
}
1080 : [기초 - 종합] 언제까지 더해야 할까?
문제 설명 : https://codeup.kr/problem.php?id=1080
1부터 순서대로 누적 연산을 더하다가 입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력하는 문제다.
#include
int main()
{
int i, j, sum = 0; // 변수 초기화
scanf("%d", &j); // 정수를 입력받아 j에 저장
for(i = 1; sum < j; i++) // for문
{ // i는 1부터 sum이 j 보다 작을때 밑 구문을 실행 후 i를 1 증가
sum += i; // 1부터 누적 연산해서 sum에 저장
if(sum >= j) // sum이 j보다 크거나 같을 때 밑 구문을 실행
printf("%d", i); // i를 출력
}
return 0;
}
1081 : [기초 - 종합] 주사위를 2개 던지면?
문제 설명 : https://codeup.kr/problem.php?id=1081
- 중첩 반복문을 배운다.
- for문의 응용이다.
중첩 for문이란 if문 안에 또 다른 if문을 넣을 수 있는 것처럼, for문 안에 또 다른 for문을 포함시키는 것도 가능하다.
중첩 for문은 첫 for문은 두 번째 for문의 증감식이 끝나고 나서 증감식이 일어난다.
전체 for문은 첫 for문의 조건식이 거짓이면 모든 for문을 빠져나간다.
#include <stdio.h>
int main()
{
int x, y;
scanf("%d %d", &x, &y); // 정수를 입력받아 x, y에 저장
for(int i = 1; i <= x; i++)
{ // for문 i가 1부터 x보다 작거나 같을 때까지 밑 구문을 실행 후 i를 1 증가
for (int j = 1; j <= y; j++) // for문
// j가 1부터 j보다 작거나 같을 때까지 밑 구문을 실행 후 j를 1 증가
printf("%d %d\n", i , j);
}
return 0;
}
/* x = 2, y = 2를 입력받았을 때
첫 for문은 for( int i = 1; i <= 2; i++)가 되고 두 번째 for문은 for(int j = 1; j <= y; j++)가 된다.
이때 중첩 for문의 실행 구조는 첫 for문에서 i에 1을 저장하고 두 번째 for문에서 j가 1에 저장된다.
그래서 첫 출력은 1, 1이 나온다.
아직 두 번째 for문의 조건식이 참이기 때문에 두 번째 for문을 실행한다.
두 번째 출력은 1, 2가 나온다
첫 for문은 두 번째 for문의 조건식이 거짓일 때까지 고정된다는 생각을 하면 쉽다.
j가 3이 되어 두 번째 for문의 조건식이 거짓이 되어 첫 번째 for문으로 이동한다.
첫 번째 for문에서 증감식을 실행해 i에 2를 저장 후 두 번째 for문으로 이동한다.
두 번째 for문에서 다시 초기화가 이루어져 j는 다시 1이 되어 j에 저장한다.
세 번째 출력은 2, 1이 나온다. 네 번째는 같은 방법으로 2,2 가 나오게 된다. */
1082 : [기초 - 종합] 16진수 구구단?
문제 설명 : https://codeup.kr/problem.php?id=1082
16진수 구구단을 출력하는 문제다.
#include <stdio.h>
int main()
{
int input = 0;
scanf("%X", &input); // 16진수 대문자로 저장
for(int i = 1; i <=15; i++ ) // for문 i는 1부터 i가 15보다 작거나 같을 때 밑 구문 실행
printf("%X*%X=%X\n", input, i, input*i); // 16진수로 출력
return 0;
}
1083 : [기초 - 종합] 3 6 9 게임의 왕이 되자!
문제 설명 : https://codeup.kr/problem.php?id=1083
3 6 9 게임을 코드로 바꾸는 문제다.
#include <stdio.h>
int main()
{
int i, input;
scanf("%d", &input);
for(i = 1; i <= input; i++)
{ // for문 i가 1부터 i가 input보다 작거나 같을 때 밑 구문을 실행 후 i를 1 증가
if(i %3 ==0) // i를 3으로 나눈 나머지가 0(3의 배수) 일 때 밑 구문을 실행
printf("X ");
else // i를 3으로 나눈 나머지가 0(3의 배수)이 아닐 때 밑 구문을 실행
printf("%d ", i); // i를 그대로 출력
}
return 0;
}
1084 : [기초 - 종합] 빛 섞어 색 만들기
문제 설명 : https://codeup.kr/problem.php?id=1084
경우의 수를 출력하는 문제다.
1081에서 중첩 for문 실행 순서에 대해 자세히 설명했다. 어떤 게 고정되는지를 생각하면 쉽다.
1081에서 자세히 설명했으니 설명과 주석은 생략하겠다.
#include <stdio.h>
int main()
{
int r, g, b, c = 0;
scanf("%d %d %d", &r, &g, &b);
// 중첩 for문
for(int i = 0; i < r; i++)
for(int j = 0; j < g; j++)
for(int k = 0; k < b; k++)
{
printf("%d %d %d\n", i, j, k);
c++;
}
printf("%d", c);
return 0;
}
1085 : [기초 - 종합] 소리 파일 저장용량 계산하기
문제 설명 : https://codeup.kr/problem.php?id=1085
소리 파일 저장용량을 계산문제다.
문제 설명에 소리 파일의 저장용량을 계산하는 설명이 있다.
#include <stdio.h>
int main()
{
int h, b, c, s;
scanf("%d %d %d %d", &h, &b, &c, &s);
printf("%.1f MB", (float)h * b * c * s / 8 / 1024 / 1024);
// 강제 형 변환을 통해 int형을 float형으로 변환했고, 소수점 첫 째자리까지 출력.
// 1024를 나누는 것은 단위를 바꾸는 것이다.
// cm에서 m로 바꾸는 것과 같은 방식인데 컴퓨터 분야에서 이숫자는 단위의 기준으로써 1000 대신 사용한다.
return 0;
}
'CodeUp 기초 100제 > C' 카테고리의 다른 글
CodeUp[코드업] C언어 1093 ~ 1095 : [기초 - 1차원 배열] (0) | 2019.12.09 |
---|---|
CodeUp[코드업] C언어 1086 ~ 1092 : [기초 - 종합] (0) | 2019.12.09 |
CodeUp[코드업] C언어 1071 ~ 1077 : [기초 - 반복 실행구조] (0) | 2019.12.09 |
CodeUp[코드업] C언어 1063 ~ 1070 : [기초 - 삼항연산] ~ [기초 - 조건/선택 실행구조] (0) | 2019.12.09 |
CodeUp[코드업] C언어 1053 ~ 1062 : [기초 - 논리 연산] ~ [기초 - 비트단위 논리 연산] (0) | 2019.12.09 |
댓글