본문 바로가기
Coding/C언어 - Codeup

[코드업/Codeup] C언어 : 1071~1077 풀이 [기초-반복실행구조]

by 이브(Eve) 2024. 4. 28.

# 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;
}