코딩해요/C

[백준/C언어] 반복문 문제풀이

yenas0 2023. 7. 16. 04:39
반응형

 

 

#2739번: 구구단

 

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int dan;
	scanf("%d", &dan);
	int i;
	for (i = 1; i < 10; i++)
		printf("%d * %d = %d\n", dan, i, dan * i);
	return 0;
}

 

 

 

 

 

 

 

 

 

 

 

#8393번: 합

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int n;
	int i;
	int result = 0;

	scanf("%d", &n);

	for (i = 1; i <= n; i++)
	{
		result += i;
	}

	printf("%d", result);
}

 

 

 

 

 

 

 

 

 

 

 

#25304번: 영수증

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int total;
	int n;
	int i;
	int result = 0;
	int price;
	int a;
	int b;

	scanf("%d", &total);
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		scanf("%d %d", &a, &b);
		price = a * b;
		result += price;
	}

	if (total == result)
	{
		printf("Yes");
	}

	else
		printf("No");
}

 

 

 

 

 

 

 

 

 

 

 

#25314번: 코딩은 체육과목 입니다.

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int n;
	int i;

	scanf("%d", &n);

	int k = n / 4;

	for (i = 1; i <= k; i++)
	{
		printf("long ");
	}

	printf("int");
}

 

 

 

 

 

 

 

 

 

 

 

#11022번: A + B - 8

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int n;
	int a;
	int b;
	int i;

	scanf("%d", &n);

	for (i = 1; i <= n; i++)
	{
		scanf("%d %d", &a, &b);
		printf("Case #%d: %d + %d = %d\n", i, a, b, a + b);
	}
}

 

 

 

 

 

 

 

 

 

 

 

#2438번: 별 찍기 - 1

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int n;
	int i;
	int k;

	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		for (k = 1; k <= i; k++)
		{
			printf("*");
		}
		printf("\n");
	}
}

 

 

 

 

 

 

 

 

 

 

 

#2439번: 별 찍기 - 2

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int n;
	int i;
	int k;

	scanf("%d", &n);

	for (i = 1; i <= n; i++)
	{
		for (k = 1; k <= (n-i); k++)
		{
			printf(" ");
		}
		for (k = 1; k <= i; k++)
		{
			printf("*");
		}
		printf("\n");
	}

	return 0;
}

전공 수업때 비슷한 예제 풀었었던것 같은데도 헷갈렸음. 이중으로 반복문 사용하니까,,

 

i = 1

   k = 1 " "

   k = 2 "  "

   k = 3 "   "

   k = 4 "    "

 

   k = 1 "    *"

.

..

...

이런식으로 i를 n까지 출력시킨 것이다.

 

 

 

 

 

 

 

 

 

 

 

#10952번: A + B - 5

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int a;
	int b;

	while(1)
	{
		scanf("%d %d", &a, &b);
		if (a == 0 && b == 0)
			break;
		printf("%d\n", a + b);
	}
}

while(1)으로 무한루프를 돌려주었다.

 

a와 b값을 입력받도록하고 while문 안에 if문을 넣어서 조건을 만족시켰을 시에는 반복문을 빠져나가도록 프로그래밍했다.

 

 

 

 

 

 

 

 

 

 

#10951번: A + B - 4

 

 

 

이 문제 보고 그냥 계속 출력하라는 건가 해서 아래처럼 코드를 제출했더니 출력초과라는 문구가 표시되었다.

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int a;
	int b;

	while(1)
	{
		scanf("%d %d", &a, &b);
		printf("%d\n", a + b);
	}
}

 

 

 

아마 중간에 멈춰야 되는것같은데 멈추는 조건이 문제에 제시되어있지않아서 어쩌란거지 했다.

문제 다시 보니까 EOF에 대해서 알아보라고 한다,,

 

EOF는 end of file이라고 배우긴 했었는데 그래서 머... 또 어쩌라는..건지.. 하다가 그냥 인터넷 찾아봄.

 

 

 

찾아보니 while문의 조건에

while (scanf("%d %d", &A, &B) != EOF)

다음과 같이 작성하게 되면 입력이 없을 때까지 반복문을 실행하게 된다고 한다.

 

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int a;
	int b;

	while(scanf("%d %d", &a, &b)!=EOF)
	{
		printf("%d\n", a + b);
	}

	return 0;
}

즉 위와 같이 작성하면 출력초과가 나지않고 입력이 멈췄을 때 프로그램이 종료되게 된다.

 

(수업 열심히 들을 걸...

 

반응형