Basics/자기주도 C언어 프로그래밍

[Chapter] 08 반복제어문 III

whereareyoung 2023. 7. 14. 15:13
//1
1부터 차례로 누적하여 합을 구하다가 합이 입력받은 수를 넘으면 중단하고 마지막으로 더해진 값과 그 때까지의 합을 출력하는 프로그램을 작성하시오.
입력 예 1000
출력 예 45 1035
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int N, i;
int sum = 0;
 
scanf("%d", &N);
 
for (i = 1; ; i++)
{
sum += i;
if (sum > N) break;
}
printf("%d %d \n", i, sum);
return 0;
}
 
 
 
자가진단 1 자연수 n을 입력받고 1부터 홀수를 차례대로 더해 나가면서 합이 n 이상이면 그 때까지 더해진 홀수의 개수와 그 합을 출력하는 프로그램을 작성하시오.
입력 예 100
출력 예 10 100
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n, i;
int sum = 0, cnt = 0;
 
scanf("%d", &n);
 
for (i = 1; ; i++)
{
if (i % 2 == 1)
{
sum += i;
cnt++;
}
if (sum >= n) break;
}
printf("%d %d \n", cnt, sum);
return 0;
}
 
 
 
//2
아래 모양과 같이 출력하는 프로그램을 for문을 이용하여 작성하시오.
출력 예
*
**
***
 
#include <stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 3; i++)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
 
 
자가진단 2 자연수 n을 입력받아서 n줄만큼 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예 5
출력 예
*
**
***
****
*****
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
 
 
//3
아래 모양과 같이 출력하는 프로그램을 for문을 이용하여 작성하시오.
출력 예
*
**
***
***
**
*
 
#include <stdio.h>
int main()
{
int i, j;
 
for (i = 1; i <= 3; i++)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
 
for (i = 3; i >= 1; i--)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
 
return 0;
}
 
 
 
자가진단 3 자연수 n을 입력받아서 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예 3
출력 예
***
**
*
*
**
***
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
for (i = n; i >= 1; i--)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
 
 
//4
자연수 n을 입력받아 n줄만큼 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예 5
출력 예
*
**
***
****
*****
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i; j++)
{
printf(" ");
}
for (j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
 
 
자가진단 4 자연수 n을 입력받아서 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예 3
출력 예
***
**
*
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i - 1; j++)
{
printf(" ");
}
for (j = 1; j <= n - i + 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
<교수님 방법이 제일 효율적인 이유(앞을 1로 통일)>
1. 매번 같은 방식으로 코딩하게 되어 속도 상승
2. 코드를 재검토 해야 할 때 조금만 읽으면 됨 (가운데만 보고 가운데만 수정하고)
3. 능숙해지면 딱 보고 늘어나네 줄어나네 하고 편해짐
+ 본능적으로 처음 여러가지 시도했을때 같은 방식으로 하게됨
 
//5
아래와 같이 출력하는 프로그램을 작성하시오.
출력 예
*
***
*****
*******
*********
 
(소스1)
#include <stdio.h>
int main()
{
int i, j;
 
for (i = 1; i <= 5; i++)
{
for (j = 1; j <= 5 - i; j++)
{
printf(" ");
}
for (j = 1; j <= i * 2 - 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
(소스2)
#include <stdio.h>
int main()
{
int i, j, k;
 
for (i = 4, j = 1; i >= 0; i--, j += 2)
{
for (k = 1; k <= i; k++)
{
printf(" ");
}
for (k = 1; k <= j; k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
 
 
자가진단 5 자연수 n을 입력받아서 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예
출력 예
*****
***
*
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i - 1; j++)
{
printf(" ");
}
for (j = n; j >= (2*i)-n ; j--)
{
printf("*");
}
printf("\n");
}
return 0;
}
 
<교수님 방법채택>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i - 1; j++)
{
printf(" ");
}
for (j = 1; j <= n-i + 1 ; j++)
{
printf("*");
}
for (j = 1; j <= n-i ; j++)
{
printf("*");
}
 
 
printf("\n");
}
return 0;
}
 
 
 
//6
자연수 n을 입력받아 n줄만큼 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예 5
출력 예
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
 
int main()
{
int i, j;
int n, num = 1;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d ", num++);
}
printf("\n");
}
return 0;
}
 
 
 
자가진단 6 자연수 n을 입력받아서 다음과 같이 영문자를 출력하는 프로그램을 작성하시오.
입력 예 3
출력 예
ABC
DE
F
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n, num = 65;
 
scanf("%d", &n);
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i + 1; j++)
{
printf("%c", num++);
}
printf("\n");
}
return 0;
}
 
 
 
 
//7
For문을 이용하여 다음과 같이 출력하는 프로그램을 작성하시오.
출력 예
a 1 2 3 4
b c 5 6 7
g h i j 10
 
#include <stdio.h>
int main()
{
int i, j;
int num = 1;
char alpha = 'a';
 
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= i; j++)
{
printf("%c ", alpha++);
}
for (j = 1; j <= 5 - i; j++)
{
printf("%d ", num++);
}
printf("\n");
}
return 0;
}
 
 
 
자가진단 7 자연수 n을 입력받아서 n개의 줄에 n + 1개의 숫자와 문자로 채워서 다음과 같이 출력하는 프로그램을 작성하시오.
입력 예 3
출력 예
1 2 3 A
4 5 B C
6 D E F
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, j;
int n;
 
scanf("%d", &n);
 
int num = 1;
char alpha = 65;
 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i + 1; j++)
{
printf("%d ", num++);
}
for (j = 1; j <= i; j++)
{
printf("%c ", alpha++);
}
printf("\n");
}
return 0;
}
 
 
 

'Basics > 자기주도 C언어 프로그래밍' 카테고리의 다른 글

[Chapter] 10 배열 II  (0) 2023.07.14
[Chapter] 09 배열 I  (0) 2023.07.14
[Chapter] 07 반복제어문 II  (0) 2023.07.14
[Chapter] 06 반복제어문 I  (0) 2023.07.14
[Chapter] 05 선택제어문  (0) 2023.07.14