- 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.
#include <stdio.h>
int main()
{
int x,i,sum=0;
scanf("%d",&x);
for(i=1;i<=x;i++)
{
if(i%2==0)
sum+=i;
}
printf("%d",sum);
return 0;
}
짝수만 더하려면 if(i%2==0) 조건을 걸면 짝수만 더해진다.
- 'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자.
#include <stdio.h> int main() { char c; while(1) { scanf("%c ",&c); printf("%c\n",c); if(c=='q') break; } return 0; }
while(1)은 무한루프이다.
무한루프에 q가 입력이 되면 break를 걸어준다.
- 1, 2, 3 ... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지
계속 더하는 프로그램을 작성해보자.
1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가,
입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.#include <stdio.h> int main() { int x,i,sum=0; scanf("%d",&x); for(i=1;i<=x;i++) { sum+=i; if(sum>=x) { printf("%d",i); break; } } return 0; }
for반복문과 if조건문으로 쉽게 풀수있다.
- 1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.입력
주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수출력
나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.슬슬 응용이되는 문제가 나오는것 같다.
#include <stdio.h> int main() { int n,m,i,j; scanf("%d %d",&n,&m); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { printf("%d %d\n",i,j); } } return 0; }
주사위의 수를 출력할때 2개의 주사위를 모두 출력해야하기때문에
2차원배열을 사용한다.
- A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)#include <stdio.h> int main() { int hex; int i; scanf("%X",&hex); for(i=1;i<16;i++) { printf("%X*%X=%X\n",hex,i,hex*i); } return 0; }
16진수를 입력받거나 출력할때는 (문제에 A~F까지만 입력된다라고 나와있기때문에)%X를 쓴다.
- 3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.
입력
10 보다 작은 정수 1개가 입력된다.
(1 ~ 9)출력
1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.369의 완벽한 프로그램이라고 보기엔 어렵지만 나중에 더 완벽한 369게임을 만들 수 있을것이다
#include <stdio.h> int main() { int x,i; scanf("%d",&x); for(i=1;i<=x;i++) { if(i%3==0) printf("X "); else printf("%d ",i); } return 0; }
369게임은 숫자에 3,6,9가 들어가면 박수를 치는게임이다.
3의 배수일때 박수를 치는게임이 아니다.
그래도 지금은 입력받을 정수의 범위가 매우작기때문에 3의 배수일때 X를 출력하도록 했다.
제대로 하려면
if(i==3 || i==6 || i==9)조건문을 붙이면 될것이다.
- 빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.입력
빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.출력
만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345... abcde..., 가나다라마...)으로
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.#include <stdio.h> int main() { int r,g,b,i,j,k,cnt=0; scanf("%d %d %d",&r,&g,&b); for(i=0;i<r;i++) for(j=0;j<g;j++) for(k=0;k<b;k++) { printf("%d %d %d\n",i,j,k); cnt++; } printf("%d",cnt); return 0; }
3가지 색깔을 출력해야하므로 3차원 배열을 이용한다.
k가 한바퀴돌면 j가 한바퀴돌아가고, j가 한바퀴돌면 i가 한바퀴돌아가는 구조이다.
이러면 모든 경우의수가 돌아간다.