# 1071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기1(설명)
입력 : 정수를 순서대로 입력 (개수는 알 수 없다)
출력 : 입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력 X)
#include <stdio.h>
int main()
{
int n;
reload:
scanf("%d", &n);
if (n != 0)
{
printf("%d\n", n);
goto reload; // reload:로 돌아감
}
return 0;
}
while( ), for( ), do~while( ) 등의 반복문을 사용하지 말라고 했으므로, goto 반복문 사용
값을 입력받고, 입력받은 값이 0이 아니면 해당 값을 출력하고 reload:로 돌아갑니다.
이 때 scanf("%d", &n)으로 값을 하나만 입력받는데도 7 4 2 3 0 1 5 6 9 10 8을 입력했을 때 실행이 잘 되는 이유는 n에 첫 번째로 7이 들어가고 나머지 4 2 3 0 1 5 6 9 10 8은 사라지는 것이 아니라 입력 버퍼에 그대로 남아있기 때문입니다. 모든 입력 값은 입력 버퍼에 잠깐 저장됩니다.
Ex) 7 입력 --> 입력 버퍼에 7 저장 --> 입력 버퍼에 있던 7이 변수 n에 저장
scanf는 입력 버퍼에 값이 없을 때만 새로 입력을 받습니다. 입력 버퍼에 4 2 3 ... 의 값이 남아있으므로 2번째로 반복이 진행되었을 때 4가 다시 변수 n에 저장되고, 그 뒤엔 2가 저장되고, 그 뒤엔 3이 저장되고.. 의 방식입니다.
# 1072 : [기초-반복실행구조] 정수 입력받아 계속 출력하기(설명)
입력 : 첫 줄에 정수의 개수 n이 입력되고, 두 번째 줄에 n개의 정수가 공백을 두고 입력된다. -2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.
출력 : n개의 정수를 한 개씩 줄을 바꿔 출력한다.
#include <stdio.h>
int main()
{
int n, num;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
// scanf로 num에 값 입력받기(입력 버퍼에 값이 있다면 그 값을 num에 저장)
scanf("%d", &num);
printf("%d\n", num);
}
return 0;
}
# 1073 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기2(설명)
입력 : 정수를 순서대로 입력 (개수는 알 수 없다)
출력 : 입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력 X)
#include <stdio.h>
int main()
{
int a;
while (1)
{
scanf("%d", &a);
if (a != 0)
{
printf("%d\n", a);
}
else break;
}
return 0;
}
# 1074 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1(설명)
입력 : 정수 1개가 입력된다. (1 ~ 100)
출력 : 1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
while(n > 0)
{
printf("%d\n", n);
n--;
}
return 0;
}
# 1075 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기2(설명)
입력 : 정수 1개가 입력된다. (1 ~ 100)
출력 : 1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
while(n > 0)
{
printf("%d\n", n-1);
n--;
}
return 0;
}
# 1076 : [기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기(설명)
입력 : 영문자 1개가 입력된다. (a ~ z)
출력 : a부터 입력한 문자까지 순서대로 공백을 두고 출력한다.
#include <stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
int i = 97; // 'a'의 아스키코드 값인 97로 설정
do
{
printf("%c ", i);
i++;
}while(i <= ch);
return 0;
}
# 1077 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기(설명)
입력 : 정수 1개가 입력된다. (0 ~ 100)
출력 : 0부터 그 수까지 줄을 바꿔 한 개씩 출력한다.
#include <stdio.h>
int main()
{
int num;
scanf("%d", &num);
for(int i=0; i<=num; i++) printf("%d\n", i);
return 0;
}
'Coding > C언어 - Codeup' 카테고리의 다른 글
[코드업/Codeup] C언어 : 1093~1095 풀이 [기초-1차원배열] (0) | 2024.04.29 |
---|---|
[코드업/Codeup] C언어 : 1078~1092 풀이 [기초-종합] (2) | 2024.04.28 |
[코드업/Codeup] C언어 : 1065~1070 풀이 [기초-조건/선택실행구조] (0) | 2024.03.01 |
[코드업/Codeup] C언어 : 1063~1064 풀이 [기초-삼항연산] (3) | 2024.03.01 |
[코드업/Codeup] C언어 : 1059~1062 풀이 [기초-비트단위논리연산] (3) | 2024.03.01 |