7장 Programming
1.
(a)
#include <stdio.h> //while
int main()
{
int i=1, sum=0;
while(i<=100)
{
if(i%3==0)
sum = sum + i;
i++;
}
printf("1부터 100사이의 모든 3의 배수의 합은 %d입니다.", sum);
return 0;
}
(b)
#include <stdio.h> // for
int main()
{
int i, sum=0;
for(i=1; i<=100; i++)
{
if(i%3==0)
sum = sum + i;
}
printf("1부터 100사이의 모든 3의 배수의 합은 %d입니다.", sum);
return 0;
}
(c)
#include <stdio.h> // do..while
int main()
{
int i=1, sum=0;
do
{
if(i%3==0)
sum = sum + i;
i++;
} while(i<=100);
printf("1부터 100사이의 모든 3의 배수의 합은 %d입니다.", sum);
return 0;
}
2.
#include <stdio.h>
int main()
{
int x, sum;
while ( scanf("%d", &x) !=EOF)
{
sum = sum + x;
}
printf("정수의 합은 %d입니다.", sum);
return 0;
}
3.
#include <stdio.h>
int main()
{
int x, y, z;
for (x=1; x<8; x++)
{
for (y=0; y<8-x; y++)
printf(" ");
for (z=0; z<x; z++)
printf("*");
printf("\n");
}
return 0;
}
4.
#include <stdio.h>
int main()
{
int x,y,z;
printf("정수를 입력하시오: ");
scanf("%d", &x);
for(y=1; y<=x; y++)
{
for (z=1; z<=y; z++)
printf("%d", z);
printf("\n");
}
return 0;
}
5.
#include <stdio.h>
int main()
{
int x, y;
printf("카운터의 초기값을 입력하시오 :");
scanf("%d", &x);
for (y=x; y>=1; y--)
printf("%2d", y);
printf("(경고 벨소리)%c", '\a');
}
6.
#include <stdio.h>
int main()
{
int x, y, z;
char c;
printf("**************\n");
printf("A---- Add\n");
printf("S---- Subtract\n");
printf("M---- Multiply\n");
printf("D---- Divide\n");
printf("Q---- Quit\n");
printf("**************\n");
do
{
printf("연산을 선택하시오 : ");
scanf("%c", &c);
if(c=='Q')
break;
printf("두수를 공백으로 분리하여 입력하시오: ");
scanf("%d %d", &x, &y);
fflush(stdin);
switch(c)
{
case 'A':
z=x+y;
printf("연산의 결과는 %d입니다\n", z); break;
case 'S':
z=x-y;
printf("연산의 결과는 %d입니다\n", z); break;
case 'M':
z=x*y;
printf("연산의 결과는 %d입니다\n", z); break;
case 'D':
z=x/y;
printf("연산의 결과는 %d입니다\n", z); break;
}
} while(1);
return 0;
7.
#include <stdio.h>
int main()
{
int x, y;
for(x=2; x<100; x++)
{
for (y=2; x>y; y++)
{
if(x%y == 0)
break;
}
if (x==y)
{
printf("%d ", x);
}
}
return 0;
}
<참고 : is_prime 함수이용한 소수판별기>
#include <stdio.h>
int is_prime(int);
int get_integer(void);
main()
{
int n, result;
n = get_integer();
result = is_prime(n);
if (result == 1)
printf("%d은 소수입니다.\n", n);
else
printf("%d은 소수가 아닙니다.\n", n);
return 0;
}
int get_integer(void)
{
int n;
printf("정수를 입력하시오: ");
scanf("%d", &n);
return n;
}
int is_prime(int n)
{
int divisors = 0, i;
for (i=1; i<=n; i++)
{
if (n%i == 0)
divisors++;
}
return (divisors == 2);
}
8.
#include <stdio.h>
int main()
{
int x,y;
while(1)
{
printf("막대의 높이 (종료: -1): ");
scanf("%d", &x);
if(x==-1)
break;
for(y=1; y<=x; y++)
{
printf("*");
}
printf("\n");
}
return 0;
}
9.
#include <stdio.h> //선if 후계산
int main()
{
int x, sum=0;
for(x=1; ; x++)
{
if(sum>10000)
break;
else
sum = sum + x;
}
printf("1부터 %d까지의 합은 %d입니다.", x-1-1, sum-(x-1));
}
또는
#include <stdio.h> // 선계산 후if, 가장 나은 방법
int main()
{
int x, sum=0;
for(x=1; ; x++)
{
sum = sum + x;
if(sum>10000)
break;
}
printf("1부터 %d까지의 합은 %d입니다.", x-1, sum-x);
}
또는
#include <stdio.h>
int main()
{
int x=0, sum=0;
while(1)
{
sum = sum + x;
if(sum>10000)
break;
x++;
}
printf("1부터 %d까지의 합은 %d입니다.", x-1, sum-x);
}
10.
#include <stdio.h>
int main()
{
int r, n, i, result=1;
printf("실수의 값을 입력하시오: ");
scanf("%d", &r);
printf("거듭제곱횟수를 입력하시오: ");
scanf("%d", &n);
for(i=1; i<=n; i++)
result = result *r;
printf("결과값은 %d", result);
}
11.
#include <stdio.h>
int main()
{
int i, n, result=0;
printf("n의 값을 입력하시오: ");
scanf("%d", &n);
for (i=1; i<=n; i++)
result = result + i*i;
printf("계산값은 %d입니다.", result);
}
12.
#include <stdio.h> // a 출력방법
int main()
{
int a=0, b=1, c, i, n;
printf("몇 번째 항까지 구할까요? ");
scanf("%d", &n);
for(i=0; i<=n; i++)
{
printf("%d ", a);
c=a+b;
a=b;
b=c;
}
}
또는
#include <stdio.h> // c 출력방법
int main()
{
int a=0, b=1, c, i, n;
printf("몇 번째 항까지 구할까요? ");
scanf("%d", &n);
printf("%d %d ", a, b);
for(i=1; i<n; i++)
{
c=a+b;
printf("%d ", c);
a=b;
b=c;
}
}
13.
#include <stdio.h>
int main()
{
int n, r, i, result=1;
printf("n의 값: ");
scanf("%d", &n);
printf("r의 값: ");
scanf("%d", &r);
for(i=n; i>=n-r-1; i--)
result = result*i;
printf("순열의 값은 %d입니다.", result);
}
14.
#include <stdio.h>
int main()
{
int i=1, n, x;
printf("정수를 입력하시오: ");
scanf("%d", &n);
do
{
x = n/i%10;
printf("%d", x);
i = i*10;
} while(i<n);
return 0;
}
'프로그래밍 > 쉽게 풀어쓴 C언어 Express' 카테고리의 다른 글
쉽게 풀어쓴 C언어 Express 8장 Exercise (3) | 2018.10.05 |
---|---|
쉽게 풀어쓴 C언어 Express 8장 Summary (0) | 2018.10.05 |
쉽게 풀어쓴 C언어 Express 7장 Exercise (0) | 2018.09.28 |
쉽게 풀어쓴 C언어 Express 6장 Programming (0) | 2018.09.20 |
쉽게 풀어쓴 C언어 Express 6장 Exercise (1) | 2018.09.20 |