제목: 1, 2, 3, 4 개 숫자가 있습니다. 너는 몇 개의 다른 세 자릿수를 편성할 수 있니? 그들은 모두 얼마입니까?
1. 프로그램 분석: 채울 수 있는 10 단위 수는 모두 1, 2, 3, 4 입니다. 가기 전에 모든 일을 잘 안배해라
부적격한 스케줄을 삭제하다.
2. 프로그램 소스 코드:
주 ()
{
Int I, j, k;
Printf ("\ n");
For (I =1; 나<5; I++)/* 다음은 트리플 사이클 */
For (j =1; J<5; J++)
For (k =1; K<5; K++)
{
만약! = k & amp& amp 나! = j & amp& ampj! =k) /* I, j, k 가 서로 다른지 확인 */
Printf("%d, %d, %d\n ",I, j, k);
}
}
절차 2
제목: 정수, 100 을 더하면 완전한 제곱수, 168 을 더하면 완전한 제곱수가 됩니다. 숫자는 얼마입니까?
1. 방안 분석: 판단이 65438+ 백만 이내라면 약을 처방하기 전에 이 수에 100 을 더하고 약을 처방하기 전에 이 수에 268 을 더한다. 약을 처방한 후 결과가 다음 조건을 충족하면 결과입니다. 구체적인 분석을 보십시오.
2. 프로그램 소스 코드:
# "math.h" 포함
주 ()
{
Long int I, x, y, z;
For (I =1; 나< 100000; I++)
{x = sqrt (I+100); /*x 는 처방전에 100 을 더한 결과 */
Y = sqrt (I+268); /*y 는 168 을 더한 결과 */
If (x * x = = I+100 & & ampY*y==i+268)/* 한 수의 제곱근의 제곱근이 그 수와 같으면 그 수는 완전한 제곱수 */
Printf("\n%ld\n ",I);
}
}
절차 3
제목: 출력 9*9 공식.
1. 프로그램 분석: 분기 열 고려 사항, ***9 행 9 열, I 제어 행, j 제어 열.
2. 프로그램 소스 코드:
#' stdio.h' 포함
주 ()
{
Int I, j, result
Printf ("\ n");
For (I =1; 나< 10; I++)
{for (j =1; J< 10; J++)
{
결과 = I * j;;
Printf("%d*%d=%-3d ",I, j, result); /*-3d 는 왼쪽 정렬을 나타내며 3 자리 */
}
Printf ("\ n"); /* 각 줄 뒤에서 줄 바꿈 */
}
}
절차 4
제목: 바둑판 출력이 필요합니다.
1. 절차 분석: I 제어줄, j 제어줄, I+J 합계의 변화에 따라 출력 검은색 상자 또는 흰색 정사각형을 제어합니다.
2. 프로그램 소스 코드:
#' stdio.h' 포함
주 ()
{
Int I, j;
For(I = 0;; 나<8; I++)
{
For(j = 0;; J<8; J++)
((i+j)%2==0 인 경우
Printf("%c%c ",2 19, 219);
기타
Printf ("");
Printf ("\ n");
}
}
계획 5
제목: 고전적인 질문: 한 쌍의 토끼가 생후 3 개월부터 한 달에 한 쌍의 토끼를 낳고, 3 개월 후에는 한 달에 한 쌍의 토끼를 낳는다. 만약 토끼가 죽지 않는다면, 매달 토끼 총수는 얼마입니까?
1. 절차 분석: 토끼의 법칙은 1, 1, 2,3,5,8,13,2 입니다 ....
2. 프로그램 소스 코드:
주 ()
{
Long f 1, F2;
Int I;;
F1= F2 =1;
For (I =1; 나 & lt=20; I++)
{printf ("%12ld%12ld", f 1, F2);
If (I% 2 = = 0) printf ("\ n"); /* 출력 제어, 행당 4 개 */
F1= f1+F2; /* 처음 두 달을 더하고 세 번째 달에 할당 */
F2 = f1+F2; /* 처음 두 달을 더하고 세 번째 달에 할당 */
}
}
절차 6
제목: 10 1-200 사이에 얼마나 많은 소수가 있는지 판단하여 모든 소수를 출력합니다.
1. 프로그램 분석: 수를 결정하는 방법: 숫자를 2 에서 sqrt (이 수) 로 나누면 이 숫자가 소수가 아니며 그 반대의 경우도 마찬가지입니다.
2. 프로그램 소스 코드:
# "math.h" 포함
주 ()
{
Int m, I, k, h=0, leap =1;
Printf ("\ n");
For (m =101; M & lt=200; M++)
{k = sqrt (m+1);
For(I = 2;; 나<= k;; I++)
(m%i==0) 인 경우
{leap = 0;; 깨뜨리다 }
If(leap) {printf("%-4d ",m); H++;+;
If(h% 10==0)
Printf ("\ n");
}
Leap =1;
}
Printf(" \ n 총 %d ",h);
}
절차 7
제목: 모든 수선화를 인쇄하십시오. 수선화수란 세 자리, 입방체와 숫자 자체를 가리킨다. 예를 들어 153 은 153= 1 큐브 +5 큐브 +3 큐브이기 때문에 "수선화 수" 입니다.
1. 프로그램 분석: for 루프로 100-999 의 수를 제어하며 각 숫자는 비트, 10 비트, 100 비트로 분할됩니다.
2. 프로그램 소스 코드:
주 ()
{
Int I, j, k, n;
Printf ("'물보라' 호는");
For (n =100; N< 1000; N++)
{
I = n/100; /* 수백 개로 분해 */
J = n/10%10; /* 10 자리로 분할 */
K = n%10; /* 비트로 분해 */
If (I *100+j *10+k = = I * I * I+j * j * j+k * k * k
{
Printf("%-5d ",n);
}
}
Printf ("\ n");
}
절차 8
제목: 양의 정수를 질량 요소로 분해합니다. 예를 들어 90 을 입력하여 90=2*3*3*5 를 인쇄합니다.
절차 분석: N 의 품질 요소를 분해하려면 먼저 가장 작은 소수 K 를 찾은 후 다음 단계에 따라 완료합니다.
(1) 이 소수가 n 과 정확히 같으면, 분해 품질 요소 과정이 끝났음을 설명하고 인쇄하면 된다.
(2) n 인 경우
(3) n 이 k 로 나눌 수 없다면 k+ 1 을 k 값으로 사용하여 첫 번째 단계를 반복합니다.
2. 프로그램 소스 코드:
/* 정 int 가 나뉘었다 */
주 ()
{
Int n, I;
Printf(" \ n 숫자를 입력하십시오: \ n ");
Scanf("%d ",& ampn);
Printf("%d= ",n);
For(I = 2;; 나<= n;; I++)
{
그리고 (n! =i)
{
(n%i==0) 인 경우
{printf("%d* ",I);
N = n/I; 사항 없음 :
}
기타
깨뜨리다
}
}
Printf("%d ",n); }
절차 9
제목: 두 개의 양의 정수 M 과 N 을 입력하여 최대 공약수와 최소 공배수를 구합니다.
1. 프로그램 분석: 스크롤 나누기 사용.
2. 프로그램 소스 코드:
주 ()
{
Int a, b, num 1, num2, temp
Printf ("두 개의 숫자를 입력하십시오: \ n");
Scanf("%d, %d ",& ampnum 1. Num 2);
If (num1< Num2)/* 두 숫자를 교환하여 큰 수를 num 1 */
{temp = num1;
Num1= num2;
Num2 = temp
}
A = num1; B = num2
그리고 (b! =0)/* b 가 0 */
{
Temp = a% b; :
A = b;;
B = 온도;
}
Printf("gongyueshu:%d\n ",a);
Printf ("공북서: %d\n", num1* num 2/a);
}
프로그램 10
제목: 한 줄의 문자를 입력하여 영문자, 공백, 숫자 등의 문자 수를 집계합니다.
1. 프로그램 분석: 입력 문자가' \n' 이 아닌 경우 while 문을 사용합니다.
2. 프로그램 소스 코드:
#' stdio.h' 포함
주 ()
{char c;;
Int 문자 =0, 공백 =0, 숫자 =0, 기타 = 0;
Printf ("일부 문자를 입력하십시오. \ n");
While((c=getchar ())! ='\n')
{
If(c & gt;; =' a'& & ampc & lt =' z' | | c> =' a'& & ampc & lt =' z')
글자++;
Else if(c=='')
스페이스++;
Else if(c & gt;; =' 0' & amp& ampc & lt='9')
Digit++;+;
기타
기타++;
}
Printf ("all in all: char =% d space =% d digit =% d others =% d \ n", 문자,
공백, 숫자, 기타);
}
프로그램 1 1
제목: s=a+aa+aaa+aaaa+aa 의 값 ... a 를 구합니다. 여기서 a 는 숫자입니다. 예를 들어, 2+22+222+2222+22222 (이 경우 * * * * 5 개의 숫자가 추가됨), 몇 개의 숫자의 추가는 키보드로 제어됩니다.
1. 프로그램 분석: 핵심은 각 항목의 가치를 계산하는 것입니다.
2. 프로그램 소스 코드:
주 ()
{
Int a, n, count =1;
Long int sn=0, TN = 0;;
Printf ("a 와 n 을 입력하십시오. \ n");
Scanf("%d, %d ",& 1, & ampn);
Printf("a=%d, n=%d\n ",a, n);
While(count & lt;; =n)
{
Tn = TN+a;
Sn = sn+TN :
A = a *10;
++개수;
}
Printf("a+aa+...=%ld\n ",일련 번호);
}
프로그램 12
제목: 숫자가 그 계수의 합계와 정확히 같으면' 완전수' 라고 합니다. 예를 들면 6 = 1+2+3 입니다. 프로그램은 1000 내의 모든 완전한 수를 찾습니다.
1. 시나리오 분석: 시나리오 8 을 참조하십시오.
2. 프로그램 소스 코드:
주 ()
{
정적 int k [10];
Int I, j, n, s;
For(j = 2;; J< 1000; J++)
{
N =-1;
S = j;;
For (I =1; 나 & ltj;; I++)
{
((j%i)==0 인 경우
{n++;+;
S = s-I;
K [n] = I;
}
}
(s==0) 인 경우
{
Printf("%d 는 만나무다 ",j);
For(I = 0;; 나 & ltn;; I++)
Printf("%d ",k);
Printf("%d\n ",k [n]);
}
}
}
프로그램 13
제목:100m 높이에서 공이 자유낙하되어 착지할 때마다 원래 높이의 절반으로 튕겨집니다. 한 번 더 넘어져서 10 번 착륙할 때 * * * 몇 미터가 지났는지 물어보세요. 10 의 바운스는 얼마나 높습니까?
1. 프로그램 분석: 아래 참고 사항을 참조하십시오.
2. 프로그램 소스 코드:
주 ()
{
Float sn= 100.0, HN = sn/2;
Int n;;
For(n = 2;; N<= 10; N++)
{
Sn = sn+2 * HN; : /* n 번째 착륙시 * * * 통과 된 미터 수 */
Hn = HN/2; /* n 번째 바운스의 높이 */
}
Printf ("총 도로는 %f\n", sn);
Printf ("열 번째는 %f 미터 \n", HN);
}
프로그램 14
제목: 원숭이가 복숭아를 먹는다: 첫날, 원숭이는 복숭아 몇 개를 따서 바로 반을 먹었는데, 아직 재미가 없다. 그는 또 하나를 먹었다. 다음날 아침, 그는 남은 복숭아의 절반과 다른 하나를 먹었다. 이후 매일 아침 먹기 전날에 남은 반쪽을 먹는다. 10 아침, 다시 먹고 싶을 때 복숭아가 하나만 남아 있는 것을 보았다. 첫날에 얼마나 골랐는지 물어보세요.
1. 절차 분석: 역방향 사고 방식을 채택하여 뒤에서 앞으로 추론한다.
2. 프로그램 소스 코드:
주 ()
{
Int day, x 1, x2;
일 = 9;
X2 =1;
While(day & gt;; 0)
{x1= (x2+1) * 2; /* 첫날의 복숭아 수는 다음날의 복숭아 수의 두 배에 1 */
X2 = x1;
일-;
}
Printf ("합계는 %d\n", x1);
}
프로그램 15
제목: 모래사장에는 복숭아 한 송이가 있고, 다섯 마리의 원숭이가 그것들을 공유할 것이다. 첫 번째 원숭이는 이 복숭아 더미를 다섯 몫으로 나누고 또 한 몫을 했다. 원숭이는 여분의 것을 바다에 던져서 하나를 가져갔다. 두 번째 원숭이는 나머지 복숭아를 평균 5 인분과 1 인분으로 나누었다. 그것은 또한 더 많은 것을 바다에 던져서 일부분을 가져갔다. 세 번째, 네 번째, 다섯 번째 원숭이도 이렇게 물었습니다. 모래사장에 복숭아가 얼마나 있습니까?
1. 프로그램 분석:
2. 프로그램 소스 코드:
주 ()
{int I, m, j, k, count
For(I = 4;; 나< 10000; I+=4)
{count = 0;;
M = I;;
For(k = 0;; K<5; K++)
{
J = I/4 * 5+1;
I = j;;
If(j%4==0)
Count++;+;
기타
깨뜨리다
}
I = m;;
If(count==4)
{printf("%d\n ",j);
깨뜨리다 }
}
}
프로그램 16
제목: 두 탁구 팀 경기, 팀당 세 명의 선수. A 팀은 A, B, C 세 명으로 구성되며, B 팀은 X, Y, Z, Y, Z 세 명으로 구성되며, 경기 명단은 이미 추첨을 통해 결정되었다. 어떤 사람이 선수들에게 경기 명단에 대해 물었다. A 는 X 와 비교하지 않을 것이라고 말했다. C 는 X 와 Z 와 비교하지 않을 것이라고 말했다. 프로그램을 만들어 세 팀의 이름을 찾아라.
1. 프로그램 분석: 소수를 판단하는 방법: 2 에서 sqrt (이 수) 로 나눌 수 있다면,
이 숫자는 소수가 아니라 소수라는 뜻이다.
2. 프로그램 소스 코드:
주 ()
{
Char I, j, k; /*i 는 a 의 상대, j 는 b 의 상대, k 는 c 의 상대 */
For (I =' x'); 나<=' zi++)
For (j =' x'); J<=' zj++)
{
만약! =j)
For (k =' x'); K<=' zk++)
{만약! = k & amp& ampj! =k)
{만약! =' x' & amp& AMPK! =' x' & amp& AMPK! ='z')
Printf("order 는 a-%c\tb-%c\tc-%c\n ",I, j, k);
}
}
}
}
프로그램 17
제목: 다음 패턴을 인쇄합니다.
*
* * *
* * * * * *
* * * * * * * * *
* * * * * *
* * *
*
1. 프로그램 분석: 먼저 그래프를 두 부분으로 나눕니다. 처음 네 줄은 규칙이고 마지막 세 줄은 규칙입니다. Double for 루프, 첫 번째 레벨은 행을 제어하고 두 번째 레벨은 열을 제어합니다.
2. 프로그램 소스 코드:
주 ()
{
Int I, j, k;
For(I = 0;; 나 & lt=3; I++)
{
For(j = 0;; J< = 2-I; J++)
Printf ("");
For(k = 0;; K<= 2 * I;; K++)
Printf ("*");
Printf ("\ n");
}
For(I = 0;; 나 & lt=2; I++)
{
For(j = 0;; J<= I;; J++)
Printf ("");
For(k = 0;; K<= 4-2 * I;; K++)
Printf ("*");
Printf ("\ n");
}
}
프로그램 18
제목: 2/ 1, 3/2, 5/3, 8/5, 13/8, 2/kloc-0 과 같은 점수 시퀀스가 있습니다
1. 절차 분석: 분자 분모의 변화 법칙을 파악하세요.
2. 프로그램 소스 코드:
주 ()
{
Int n, t, number = 20
부동 소수점 a=2, b= 1, s = 0;;
For (n =1; N<= 숫자 : N++)
{
S = s+a/b :
T = a;; A = a+b; B = t;; /* 이 부분은 절차의 핵심입니다. T */ 의 기능을 맞춰보세요
}
Printf("sum 은 %9.6f\n ",s);
}
계획 19
제목: 찾기 1+2! +3! +...+20! 합계
1. 프로그램 분석: 이 프로그램은 단지 누적을 곱셈으로 바꿀 뿐이다.
2. 프로그램 소스 코드:
주 ()
{
부동 소수점 수 n, s=0, t =1;
For (n =1; N & lt=20; N++)
{
T * = n;;
S+= t;
}
Printf(" 1+2! +3! ... +20! =%e\n ",s);
}