클래식 C 언어 프로그래밍 100가지 예-제목+답안 코드(21-30)

【프로그램 21】
제목: 원숭이가 복숭아를 먹는 문제: 원숭이가 첫날에 몇 개의 복숭아를 따서 바로 반을 먹었는데 맛이 없다. 또 하나를 더 먹었다. 다음날 아침에 남은 복숭아를 반만 먹고 또 하나를 더 먹었다.앞으로 매일 아침 전날 남은 하나를 먹었다.열흘째 아침에 먹고 싶을 때 복숭아 하나만 남은 것을 보았다.첫날 얼마나 땄는지
1. 프로그램 분석: 역방향 사고의 방법을 취하여 뒤에서 앞으로 추정한다.2. 프로그램 소스 코드:
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*          2       1    2  */
x2=x1;
day--;
}
printf("the total is %d
",x1); }

==============================================================
【프로그램 22】
제목: 두 탁구팀이 시합을 하는데 각각 세 명씩 출전한다.갑팀은 a, b, c 세 명, 을팀은 x, y,z 세 명이다.이미 추첨하여 경기 명단을 결정하였다.누군가가 선수에게 경기의 명단을 물었다.a는 x비와 맞지 않는다고 말했고, c는 x,z비와 맞지 않는다고 말했으니, 프로그램을 짜서 3팀 선수의 명단을 찾아주세요.1. 프로그램 분석: 소수를 판단하는 방법: 한 수로 각각 2에서 sqrt(이 수)를 제거하고 정제될 수 있다면 이 수는 소수가 아니라 반대로 소수임을 나타낸다.2. 프로그램 소스 코드:
main()
{
char i,j,k;/*i   a    ,j   b    ,k   c    */
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{ if(i!=k&&j!=k)
{ if(i!='x'&&k!='x'&&k!='z')
printf("order is a--%c\tb--%c\tc--%c
",i,j,k); } } } }

==============================================================
【프로그램 23】
제목: 다음 그림을 인쇄합니다(마름모꼴)
*
***
******
********
******
***
*
1. 프로그램 분석: 먼저 도형을 두 부분으로 나누어 보면 앞의 네 줄은 하나의 규칙이고 뒤의 세 줄은 하나의 규칙이다. 이중 for순환을 이용하여 1층 제어행, 2층 제어열을 사용한다.2. 프로그램 소스 코드:
main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("
"); } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf(" "); for(k=0;k<=4-2*i;k++) printf("*"); printf("
"); } }

==============================================================
【프로그램 24】
제목: 1분수 서열이 있다: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13...이 수열의 20항의 합을 구해라.1. 프로그램 분석: 분자와 분모의 변화 법칙을 잡으세요.2. 프로그램 소스 코드:
main()
{
int n,t,number=20;
float a=2,b=1,s=0;
for(n=1;n<=number;n++)
{
s=s+a/b;
t=a;a=a+b;b=t;/*         ,      t    */
}
printf("sum is %9.6f
",s); }

==============================================================
【프로그램25】제목: 1+2를 구하세요! +3!+...+20!의 및 1.프로그램 분석: 이 프로그램은 누적을 누승으로 만들었을 뿐이다.2. 프로그램 소스 코드:
main()
{
float n,s=0,t=1;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf("1+2!+3!...+20!=%e
",s); }

==============================================================
【프로그램 26】
제목: 귀속 방법을 이용하여 5!1. 프로그램 분석: 귀속 공식: fn=fn1*4! 2. 프로그램 소스 코드:
#include "stdio.h"
main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf("\40:%d!=%d
",i,fact(i)); } int fact(j) int j; { int sum; if(j==0) sum=1; else sum=j*fact(j-1); return sum; }

==============================================================
【프로그램27】제목: 귀속 함수 호출 방식을 이용하여 입력한 다섯 문자를 반대 순서로 출력한다.1. 프로그램 분석: 2.프로그램 소스 코드:
#include "stdio.h"
main()
{
int i=5;
void palin(int n);
printf("\40:");
palin(i);
printf("
"); } void palin(n) int n; { char next; if(n<=1) { next=getchar(); printf("
\0:"); putchar(next); } else { next=getchar(); palin(n-1); putchar(next); } }

==============================================================
【프로그램 28】
제목: 다섯 명이 함께 앉았는데 다섯 명이 몇 살이냐고요?그는 네 번째 사람보다 두 살 많다고 말했다.네 번째 사람에게 나이를 물었더니 세 번째 사람보다 두 살 많다고 말했다.세 번째 사람에게 물었더니 두 번째 사람보다 두 살 많다고 한다.두 번째 사람에게 물어보니 첫 번째 사람보다 두 살 많다고 한다.마지막으로 첫 번째 사람에게 물었더니 그는 열 살이라고 말했다.다섯 번째 사람은 몇 살입니까?
1. 프로그램 분석: 귀속의 방법을 이용하여 귀속은 귀속과 추이 두 단계로 나뉜다.다섯 번째 사람의 나이를 알고 싶다면 네 번째 사람의 나이를 알고 순서대로 유추해 첫 번째 사람(10세)으로 미루고 다시 돌려야 한다.
2. 프로그램 소스 코드:
age(n)

{
int n;
int c;
if(n==1) c=10;
else c=age(n-1)+2;
return(c);
}
main()
{ printf("%d",age(5));
}

==============================================================
【프로그램 29】
제목: 5자리 이하의 정수를 주십시오. 요구: 첫째, 몇 자리인지 구하고, 둘째, 역순으로 여러 숫자를 출력하십시오.1. 프로그램 분석: 한 자릿수를 분해하는 것을 배워서 다음과 같이 설명한다. (이곳은 간단한 알고리즘이다).프로그램 소스 코드:
main( )
{
long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*     */ b=x 000/1000;/*     */
c=x 00/100;/*     */
d=x 0/10;/*     */
e=x ;/*     */
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld
",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld
",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld
",e,d,c); else if (d!=0) printf("there are 2, %ld %ld
",e,d); else if (e!=0) printf(" there are 1,%ld
",e); }

==================================================================[프로그램 30] 제목: 한 다섯 자리수로 회문수인지 아닌지를 판단한다.즉 12321은 회문수로 개위는 만 자리와 같고 열 자리는 천 자리와 같다.1. 프로그램 분석: 동29예2.프로그램 소스 코드:
main( )
{
long ge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x 000/1000;
shi=x 0/10;
ge=x ;
if (ge==wan&&shi==qian)/*              */ printf("this number is a huiwen
"); else printf("this number is not a huiwen
"); }

좋은 웹페이지 즐겨찾기