10 기본 알고리즘 C 언어

10 기본 알고리즘 C 언어

 

 

알고리즘은 좋은 프로그래머로, 프로그램 및 소프트웨어의 영혼이며, 단지 기본 알고리즘의 일부는 포괄적 이해, 그것은 설계 프로세스와 코드를 작성하는 과정에서 편리한 것 같다있다. 이 문서에서는 거의 C 언어 알고리즘은 소수 검사 알고리즘으로, 회문을 확인, 고전 피보나치 순서, 간단한 계산기를 포함하여 시리즈의 두 번째입니다. 어쩌면 그들은 설계 할 수 있습니다 또는 인터뷰는 졸업에 편리.

 

1 피보나치 시퀀스를 계산

 

1,1,2,3,5,8,13,21 : 또한 일련의 참조도 황금 열이라고도 피보나치 시퀀스 피보나치 수로 알려진.

 

다음과 같이 C 언어 코드는 다음과 같습니다

/ * N은 사용자에 의해 입력 된 제 n 기간까지 피보나치 시퀀스를 표시. * /
#INCLUDE <STDIO.H>
INT의 main ()
{
INT 카운트 N, T1 = 0, T2 = 1, 디스플레이 = 0;
의 printf (이하 "용어의 번호를 입력 :");
scanf와 ( "%의 D", N);
의 printf ( "피보나치 시리즈 %의 D + %의 D + ', T1, T2); / * 표시 처음 두 항 * /
횟수 = 2; / * 첫번째 두 용어가 이미 표시되기 때문에 횟수 = 2. * /
동안 (COUNT <N)
{
DISPLAY = T1 + T2;
T1 = T2;
T2 = 디스플레이;
카운트 ++;
의 printf ( "% d 개 +"표시);
}
0을 반환;
}
结果输出:

용어의 개수가 입력 한 10
피보나치 시리즈 :.. + 1 0 + 1 + 2 + + 8 3.5 + + + 34 21 13 것은 + +는
다음과 같은 소스 코드를 사용할 수있다 :

/ * 사용자가 입력 한 특정 번호로 표시 피보나치 시리즈까지. * /

#INCLUDE <STDIO.H>
INT의 main ()
{
INT의 T1 = 0, T2 = 1, 디스플레이 = 0, NUM;
의 printf는 ( "정수를 입력 :");
scanf와 ( "%의 D", NUM);
의 printf ( "피보나치 시리즈 %의 D + %의 D + ', T1, T2); / * 첫번째 두 용어 * / 표시
디스플레이 = T1 + T2 단계;
(표시 <NUM) 동안
{
의 printf ( "% d 개 +"표시);
T1 = T2;
T2 = 디스플레이;
디스플레이 = T1 + T2;
}
0을 반환;
}
结果输出:

200 : 정수 입력
피보나치 시리즈 : 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 + 144 +


2, 체크 회문

 

출처 :

다수 회문인지 아닌지 / * C 프로그램 확인할 * /

#INCLUDE <STDIO.H>
INT의 main ()
{
INT의 N = 0, REM, 온도 역;
의 printf는 ( "정수를 입력 :");
scanf와 ( "%의 D", N);
온도 = N;
반면 (TEMP! = 0)
{
REM = 임시 10 %;
* 10 + REM 역방향 = 역방향
온도 / = 10;
}
/ * 수는 사용자가 입력하고 역방향 수가 동일하다면 확인. * /
경우 (후진 == N)
의 printf ( "% D는 회문이다.", N);
사람
의 printf ( "% D는 회문 아니다.", N);
0을 반환;
}
结果输出:

정수를 입력 : 12321
12321은 회문이다.


3, 소수 체크

 

주 : (1)가 결합되지도 소수되지도.

 

출처 :

/ * C 프로그램은 숫자가 소수인지 여부를 확인합니다. * /

#INCLUDE <STDIO.H>
INT의 main ()
{
INT의 N, I, 플래그 = 0;
의 printf는 ( "양의 정수를 입력 :");
scanf와 ( "%의 D", N);
대 (I = 2; I <= N / 2이고; I ++)
{
경우 (N % I == 0)
{
플래그 = 1;
단절;
}
}
경우 (플래그 == 0)
의 printf ( "% (D)가 소수 (prime number)이다.", N);
사람
의 printf ( "% D는 소수가 아닙니다.", N);
0을 반환;
}
结果输出:

양의 정수를 입력 : (29)
(29)는 소수이다.


4 인쇄 피라미드 삼각형

 

* 삼각형의 확립하여

*
* *
* * *
* * * *
* * * * *
출처 :

#INCLUDE <STDIO.H>
INT의 main ()
{
int로 I, J, 행;
의 printf (이하 "행 번호를 입력")
; scanf와 ( "%의 D", 행)
. 대 (I = 1; I <= 행; I는 ++)
{
대 (J 용 = 1]. J <= I, J ++)
{
의 printf ( "*");
}
의 printf ( "\ N- ');
}
리턴 0;
}
도 수를 이용하여 아래. 반 피라미드를 인쇄합니다.

. (1)
. (1) (2)
. (1) (2) (3)
. 1 2 3 4
. 1 2 3 4 5
출처 :

#INCLUDE <STDIO.H>
INT) (주
{
int로 I, J, 행;
의 printf는 ( "행의 번호를 입력 :");
scanf와 ( "%의 D", 행);
대해 (ⅰ = 1; 나는 = 행 <; I ++)
{
대한 (j = 1; J <= I, J ++)
{
printf와 ( "%의 D ', J);
}
의 printf ( "\ n")를;
}
0을 반환;
}
用*打印半金字塔

* * * * *
* * * *
* * *
* *
*
출처 :

#INCLUDE <STDIO.H>
INT) (주
{
int로 I, J, 행;
의 printf는 ( "행의 번호를 입력 :");
scanf와 ( "%의 D", 행);
- (I; I> = I = 1 행)에 대한
{
대한 (j = 1; J <= I, J ++)
{
printf와 ( "*");
}
의 printf ( "\ n")를;
}
0을 반환;
}
用*打印金字塔

*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
출처 :

#INCLUDE <STDIO.H>
INT) (주
{
int로 난, 공간, 행, K = 0;
의 printf는 ( "행의 번호를 입력 :");
scanf와 ( "%의 D", 행);
대 (I = 1; i가 = 행 <; I ++)
{
대 (공간 = 1; 공간 <= 행-I, 공간 ++)
{
printf와 ( "");
}
하면서 (K = 2 * I-1!)
{
의 printf ( "*");
++ K;
}
K = 0;
의 printf ( "\ n")를;
}
0을 반환;
}
用*打印倒金字塔

* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
출처 :

#INCLUDE <STDIO.H>
INT의 main ()
{
INT 행, I, J, 공간;
의 printf는 ( "행의 번호를 입력 :");
scanf와 ( "%의 D", 행);
대 (I = 로우; I> = 1 - I)
{
대 (공간 = 0; 공간 <행-I; ++ 공간)
의 printf ( "");
에 대한 (j = 1; J <= 2 * I-1, J ++)
의 printf ( "*");
에 대한 (j = 0; J <Ⅰ-1, J ++)
의 printf ( "*");
의 printf ( "\ n")를;
}
0을 반환;
}


5, 단순한 덧셈과 뺄셈, 곱셈과 나눗셈의 계산

 

출처 :

/ * 소스 코드는 C 프로그래밍에서 스위치 케이스 ... 문을 이용하여 더하기, 빼기, 곱하기 및 나누기 위해 간단한 계산을 생성한다. * /

# 1 <STDIO.H> 포함
INT의 main ()
{
숯을 O;
NUM1, NUM2을 떠;
의 printf ( "연산자 + 하나 또는 입력 - 또는 * 또는 나누기");
scanf와 ( "%의 C", O);
의 printf ( "두 개의 피연산자를 입력 :");
scanf와 ( "% F 형 %의 F", NUM1, NUM2);
스위치 (O) {
경우 '+'
의 printf ( ". % 1F + % .1f입니다 = % .1f입니다"NUM1, NUM2, NUM1 NUM2 +);
단절;
경우에 '-'
의 printf ( ". 1F % - % .1f입니다 = % .1f입니다"NUM1, NUM2, NUM1-NUM2);
단절;
경우에 '*'
의 printf ( ". % 1F * % .1f입니다 = % .1f입니다"는 NUM1, NUM2, NUM1의 *의 NUM2);
단절;
경우 '/':
의 printf ( "% 1F / % .1f입니다 = % .1f입니다."NUM1, NUM2, NUM1 / NUM2);
단절;
기본값 :
운영자가 다른 것입니다 / * 경우에 비해 +, -, * 또는 /, 오류 메시지가 표시됩니다 * /
printf와 ( "! 오류는 운영자가 정확하지 않습니다");
단절;
}
0을 반환;
}
结果输出:

운영자 중 + 또는 입력 - 또는 분할 또는 * -
입력 개의 피연산자 : 3.4
8.4
3.4 - 8.4 = -5.0


6, 수표의 수 개의 소수의 합으로 표현 될 수 있고

 

출처 :

#INCLUDE <STDIO.H>
INT 프라임 (INT 않음);
INT의 main ()
{
INT의 N, I, 플래그 = 0;
의 printf는 ( "양의 정수를 입력 :");
scanf와 ( "%의 D", N);
대해 (ⅰ = 2; ++ 나, 나는 = N / 2 <)
{
경우 (! 프라임 (I) = 0)
{
경우 (! 프라임 (NI) = 0)
{
의 printf ( "%의 D = %의 D + %를 D \ 없음 ", N, I, NI);
플래그 = 1;
}

}
}
(플래그 == 0) 경우
의 printf ( "% d의 두 소수의 합으로 표현 될 수 없다.", N);
0을 반환;
}
INT 프라임 (INT 않음)의 소수를 확인 / * 함수 * /
{
int로 I, 플래그 = 1;
대 (I = 2; I <= N / 2이고; I ++)
의 경우 (N % I == 0)
플래그 = 0;
플래그를 반환;

34 : 양의 정수 입력
(34) = 3 + 31
34 + 5 = 29
34 = 11 + 23
34 = 17 + 17


7, 반전 된 문자열 재귀

 

출처 :

/ * 예 스트링을 사용하지 않고 사용자에 의해 입력 된 문장을 반대로. * /

#INCLUDE <STDIO.H>
공극 뒷면 ();
INT 주 ()
{
printf와 ( "문장을 입력 :");
역();
0을 반환;
}
공극 뒷면 ()
{
숯 C;
scanf와 ( "%의 C", 및 C);
(c = '\ n을'!) 경우에
{
뒷면 ();
의 printf ( "%의 C", c);
}
}
结果输出:

문장을 입력 margorp를 emosewa
멋진 프로그램


도 8은, 바이너리와 소수점 간의 변환을 달성

 

/ * C 프로그래밍 소스 코드는 사용자가 입력 한 데이터에 따른 이진 진수 또는 이진 소수점 하나를 변환하는 방법. * /

#INCLUDE <STDIO.H>
#INCLUDE <math.h>
INT binary_decimal INT (N);
INT decimal_binary INT (N);
INT의 main ()
{
INT 않음;
숯 C;
의 printf ( "지침 : \ n을");
의 printf ( "1 진수로 바이너리를 변환하는 알파벳 'D'를 입력합니다. \ n.");
의 printf ( ".이 알파벳을 입력 B는 이진 소수를 변환합니다. \ n");
scanf와 ( "%의 C", 및 C);
(c == 'D'는 C || == 'D') 경우에
{
인 printf ( "이진수 입력 :");
scanf와 ( "%의 D", N);
의 printf ( "이진 소수점 = %에 D가 % d", N, binary_decimal (N));
}
경우 (c == 'B'|| C == 'B')
{
의 printf (이하 "진수 번호를 입력 :");
scanf와 ( "%의 D", N);
의 printf ( "진수가 % d = %의 이진 D", N, decimal_binary (N));
}
0을 반환;
}

INT decimal_binary INT (N) / * 함수는 이진 소수점을 변환 * /.
{
INT의 REM, I = 1 이진 = 0;
동안 (N! = 0)
{
REM = N % 2;
N / 2 =;
이진 + REM = I *;
난 = 10 *;
}
이진 반환;
}

INT binary_decimal INT (N) / * 함수 진수 바이너리 변환 * /.
{
INT 진수 = 0, I = 0, REM;
동안 (N! = 0)
{
REM N = 10 %;
N / = 10;
소수 + REM = * POW (2, I);
++ 난;
}
진수 반환;
}


출력 결과 :

 

9 다차원 어레이는 두 개의 행렬들의 합을 이용하여 구현

 

출처 :

#INCLUDE <STDIO.H>
INT의 main () {
INT의 R, C, A [100] [100], B [100] [100], 합 [100] [100], I, J;
인 printf ( "1, 100) 사이의 행 수 (입력");
scanf와 ( "%의 D", R);
인 printf ( "1, 100) 사이의 열 번호 (입력");
scanf와 ( "%의 D", 및 C);
의 printf ( "첫번째 행렬 \의 nEnter 요소 : \ n을");

/ * 사용자에 의해 입력 된 제 1 행렬의 요소를 저장. * /

(I = 0; I <R; ++ I)에 대한
대한 (j = 0; J <C; ++ j)는
{
의 printf ( "입력 A 원소 % D % D"내가 + 1, j 개의 + 1);
scanf와 ( "%의 D ', A [i]를 [J]);
}

/ * 사용자가 입력 2 매트릭스의 저장 요소. * /

인 printf ( "2 행렬의 요소를 입력 \ 않음을");
대 (I = 0; I <R;


인 printf ( "요소를 입력 % D % D"내가 + 1, J + 1);
scanf와 ( "%의 D ', B [I] [J]);
}

/ * 두 행렬 * / 추가

대 (; I <R ++ I I = 0)
에 대한 (j = 0; J <C; ++ j)의
합계 [I]은 [J]은 [I] [J를 = ] + B [I] [J]

/ * 얻어진 합 매트릭스 디스플레이. * /

의 printf ( "두 행렬된다 nSum를 \ : \ n \ n");
(; I <R ++ I I = 0)에 대한
대한 (j = 0; J <C, J ++)
{
printf와 ( "% d의"합 [I] [J]);
만약 (j의 ==은 C-1)
의 printf ( "\ n을 \ 없음");
}

0을 반환;
}


10 매트릭스 전치

 

출처 :

#INCLUDE <STDIO.H>
INT의 main ()
{
A [10] [10], 트랜스 [10] [10], R, C, I, J에서 INT;
의 printf ( "행 및 매트릭스의 열을 입력");
scanf와 ( "%의 D % d에", R, C);

/ * A [] [] 어레이에 사용자가 입력 행렬의 저장 소자. * /
의 printf ( "매트릭스 \의 nEnter 요소 : \ n을");
(; I <R ++ I I = 0)의 경우
에 대한 (j = 0; J <C; ++ j)는
{
의 printf ( "요소를 입력 % D % D"내가 + 1, J + 1) ;
scanf와 ( "%의 D ', A [i]를 [J]);
}
/ * A [] [] * / 매트릭스 디스플레이
에서 printf ( "\ nEntered 매트릭스 : \ n");
(; I <R ++ I I = 0)에 대한
대한 (j = 0; J <C, J ++)
{
printf와 ( "%의 D"는 [I] [J]);
만약 (j의 ==은 C-1)
의 printf ( "


/ * 행렬 A [] [] 및 트랜스 [] [] 배열에 저장 찾기의 전치. * /
(I = 0; I <R; I ++)에 대한
대한 (j = 0; J <C, J ++)
{
트랜스 [J]를 [I]은 [I] [J]를 =;
}

/ * 전치를 표시 즉 표시 어레이 트랜스 [] []. * /
의 printf ( "\ 매트릭스 nTranspose : \ n");
대 (I = 0; I는 C를 <; I ++)
에 대한 (j = 0; j를 <R, J ++)
{
printf와 ( "%의 D", 트랜스 [I] [J]);
만약 (j == R-1)
의 printf ( "\ n을 \ 없음");
}
0을 반환;
}

추천

출처www.cnblogs.com/dxg123/p/11458404.html