[정답] 41. 반복문(while, do while, for)
◈ 기본 연습
1. 두 수를 입력받은 후 작은 수~큰 수 사이의 모든 수의 합을 구하는 프로그램을 작성하시오.
답:
//두 수를 입력받은 후 작은 수~큰 수 사이의 모든 수의 합을 구하는 프로그램
#include <stdio.h>
int main(void)
{
int a, b;
int sum;
printf("두 개의 정수 입력:");
scanf_s("%d%d", &a, &b);
if (a > b)//a가 b보다 크면
{
//두 수를 교환
int temp = a;
a = b;
b = temp;
}
printf("%d
~ %d =", a, b);
for (sum = 0; a <= b; a++)
{
sum += a;
}
printf("%d\n", sum);
return 0;
}
2. 1부터 100 사이에 있는 모든 6의 배수를 출력하는 프로그램을 작성하시오.
답:
//1부터 100 사이에 있는 모든 6의 배수를 출력하는 프로그램
#include <stdio.h>
int main(void)
{
int n;
for (n = 1; n <= 100; n++)
{
if (n % 6 == 0)//6으로 나누어서 나머지가 없으면
{
printf("%d ", n);
}
}
printf("\n");
return 0;
}
3. 한 자리의 정수를 입력받아 입력받은 수의 단을 출력하는 프로그램을 작성하시오.
예:
한 자리의 정수를 입력하시오.
7
7*1 = 7 7*2 = 14 7*3 = 21
7*4 = 28 7*5 = 35 7*6 = 42
7*7 = 49 7*8 = 56 7*9 = 63
답:
//3. 한 자리의 정수를 입력받아 입력받은 수의 단을 출력하는 프로그램
//예:
//한 자리의 정수를 입력하시오.
//7
//7 * 1 = 7 7 * 2 = 14 7 * 3 = 21
//7 * 4 = 28 7 * 5 = 35 7 * 6 = 42
//7 * 7 = 49 7 * 8 = 56 7 * 9 = 63
#include <stdio.h>
int main(void)
{
int n;
int i;
printf("한 자리의 정수를 입력하세요.\n");
scanf_s("%d", &n);
if ((n <= 0) || (n> = 10))
{
printf("잘못 입력하였습니다.");
}
else
{
for (i = 1; i
<= 9; i++)
{
printf("%d*%d= %2d ", n, i, n*i);
if (i
% 3 == 0)
{
putchar('\n');
}
}
}
return 0;
}
4. 다음을 반복하는 프로그램을 작성하시오.
“I: 추가 D: 삭제 S:검색 L:전체 출력 E:종료”를 화면에 출력
하나의 문자를 입력받음
입력받은 문자가 ‘i’ 혹은 ‘I’일 때는 추가, ‘d’ 혹은 ‘D’일 때는 삭제 , ‘s’ 혹은 ‘S’일 때는 검색, ‘l’,
L’일 때는 전체 출력이라고 화면에 출력
(단, E를 누르면 프로그램을 종료)
답:
//다음을 반복하는 프로그램
//하나의 문자를 입력받아 ‘i’ 혹은 ‘I’일 때는 추가, ‘d’ 혹은 ‘D’일 때는 삭제,
//‘s’ 혹은
‘S’일 때는 검색,
‘l’, ‘L’일 때는 전체 출력이라고 화면에 출력
//단, E를 누르면 프로그램 종료
#include <stdio.h>
int main(void)
{
char key='\0';
while (key!='E')
{
printf("I:추가 D:삭제 S:검색 L:전체 출력\n");
printf("메뉴 선택:");
scanf_s(" %c",
&key, 1); //엔터를 스킵하기 위해 앞에 공백을 포함
switch (key)
{
case 'i': case 'I': printf("추가\n"); break;
case 'd': case 'D': printf("삭제\n"); break;
case 's': case 'S': printf("검색\n"); break;
case 'l': case 'L': printf("전체 출력\n"); break;
case 'E': break;
default: printf("잘못 선택하셨네요.\n"); break;
}
}
return 0;
}
5. 두 개의 양의 정수를 입력받아 공약수의 합을 계산하는 프로그램을작성하시오.
답:
//두 개의 정수를 입력받아 공약수의 합을 계산
#include <stdio.h>
int main(void)
{
int a, b;
int n;
int sum=0;
printf("두 개의 정수 입력:");
scanf_s("%d%d", &a, &b);
if (a > b)//a가 b보다 크면
{
//두 수를 교환
int temp = a;
a = b;
b = temp;
}
printf("%d와 %d의 공약수:",a,b);
for (n = 1; n <= a; n++)
{
if ((a%n == 0)
&& (b%n == 0))//n이 a와 b의 약수일 때
{
sum += n;
printf("%d ", n);
}
}
printf("\n%d와 %d의 공약수의 합:%d\n",a,b,
sum);
return 0;
}
6. 두 개의 양의 정수를 입력받아 공배수를 작은 순서부터 차례대로 10개를 출력하는 프로그램을 작성하시오.
답:
//두 개의 정수를 입력받아 공약수 10개를 차례대로 출력
#include <stdio.h>
int main(void)
{
int a, b;
int n;
int count = 0;
printf("두 개의 정수 입력:");
scanf_s("%d%d", &a, &b);
if (a > b)//a가 b보다 크면
{
//두 수를 교환
int temp = a;
a = b;
b = a;
}
printf("%d와 %d의 공약수를 차례대로 (최대)10개 출력\n", a, b);
for (n = 1; (n <= a)&&(count<10); n++)
{
if ((a%n == 0)
&& (b%n == 0))//n이 a와 b의 약수일 때
{
count++;
printf("%d ", n);
}
}
printf("\n");
return 0;
}
7. ‘a’문자에서 ‘z’문자 사이의 모든 문자와 아스키 코드 값을 출력하는 프로그램을 작성하시오.
답:
//소문자의 아스키 코드값을 출력
#include <stdio.h>
int main(void)
{
char ch;
for (ch = 'a'; ch <= 'z'; ch++)
{
printf("%c:%d\n",
ch, ch);
}
return 0;
}
본문 41. 반복문 (while, do while, for)
'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글
[정답] 디딤돌 C언어 49. 간접 연산자 (0) | 2016.05.01 |
---|---|
[정답] 디딤돌 C언어 47. 포인터 + 정수 (0) | 2016.05.01 |
[정답] 디딤돌 C언어 46. 배열 선언문 (0) | 2016.05.01 |
[정답] 디딤돌 C언어 44.정리하기(제어문) (0) | 2016.05.01 |
[정답] 디딤돌 C언어 43. 제어문 연습 - 별출력 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 40. 선택문(switch case) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 39. 조건문(if, else) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 38. 정리하기 (연산자) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 36. 증감 연산자 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 35. 대입 연산자 (0) | 2016.04.30 |