国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

機械社區

標題: C語言經典算法100例 [打印本頁]

作者: tainqing    時間: 2017-9-22 09:34
標題: C語言經典算法100例
【程序1
2 x# ~* e; Y  K  o% m* [- s8 b& ^題目:有1234個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? & k2 g, u8 y$ G+ A5 y5 ?
1.程序分析:可填在百位、十位、個位的數字都是1234。組成所有的排列后再去
0 X+ g  [# f9 ~& ~9 t! l掉不滿足條件的排列。 6 B  ^) v/ q1 k' f: u
2.程序源代碼: % J$ Z- J( W( n- {( B
main() { ) o3 _5 k( i/ r+ Y. }8 m) \
int i,j,k;
! X3 e. N% {" \4 e% m  [printf("\n"); ' b& o/ J, G- K
for(i=1;i<5;i++) *以下為三重循環*/
; k+ B+ i! S5 r( s+ afor(j=1;j<5;j++)   l8 ?! p/ x1 l6 a% ^9 q7 \
for (k=1;k<5;k++) { # E" T9 `% V) z- A
if (i!=k&&i!=j&&j!=k) /*確保ijk三位互不相同*/
% I4 a0 s, ~8 D6 k$ }7 Vprintf("%d,%d,%d\n",i,j,k); }} 7 D* n& L1 e! A/ i/ R' m8 [
==============================================================
1 s% A- `9 P( a/ i2 M, u) s【程序2
) w0 s7 |' [# b9 l" C8 c題目:企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高
! x5 w/ l! p1 A, K$ F' G' P8 V10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提 7 v! r7 k4 p$ @+ Y
7.5%20萬到40萬之間時,高于20萬元的部分,可提成5%40萬到60萬之間時高于 * m& |5 x/ T! m' {% N: i% E
40萬元的部分,可提成3%60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于 % K6 D/ f" f8 ^# d& n
100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
0 w4 G4 p. B: K$ }6 j8 h- ]1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。
- a0 _  L2 `( F: \2 T2.程序源代碼: 8 I/ A  ^& [/ v
main() { ' R2 ?1 B3 F, `
long int i; 8 {! Q# q% b7 ?6 U; j
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
' d2 L! E4 F7 S5 o$ Kscanf("%ld",&i);
2 t9 P. w: N5 nbonus1=100000*0.1;bonus2=bonus1+100000*0.75; 1 h, m$ G! v( |+ Y
bonus4=bonus2+200000*0.5; : ^8 @4 T, E' H; k& }! k
bonus6=bonus4+200000*0.3;
( C; k5 w# I( Y$ B3 d' Obonus10=bonus6+400000*0.15;
4 ^1 J1 ?  H' R* Z8 {if(i<=100000) ! M. e# Q% g( A" H
bonus=i*0.1; 5 G  q+ f1 H3 _1 S  f8 ~
else if(i<=200000) 3 T2 ]1 g  w& P" w- {& I" n7 a, o
bonus=bonus1+(i-100000)*0.075; $ k0 o# f( Q1 \* U4 P
else if(i<=400000) 7 b4 |, f7 b3 {  [5 M+ i: C
bonus=bonus2+(i-200000)*0.05;
' e: d5 T# ?0 ?" \- V% Qelse if(i<=600000) 3 X; U" A- ?$ |2 K. a
bonus=bonus4+(i-400000)*0.03;
, x- T. k+ |- E, uelse if(i<=1000000) 1 Z! Y0 \- R4 u  U- p) G
bonus=bonus6+(i-600000)*0.015;
; g; _0 g" u5 t: Pelse
2 h6 E% c& s% k8 G/ E) u# rbonus=bonus10+(i-1000000)*0.01; ! M% t. X; P: R# i' E
printf("bonus=%d",bonus); } , O; D8 J, ^' O# T
==============================================================
7 ^, p* y& G  R/ e* v5 v【程序3
" l& Q" K+ B) d0 w9 g- d. M; W題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
) C' W& Q2 u; X) @6 O1.程序分析:在10萬以內判斷,先將該數加上100后再開方,再將該數加上268后再開方,如果開方后 9 z, X6 s* M2 k8 |( K, N3 k" s
的結果滿足如下條件,即是結果。請看具體分析: # S: @  ]* j* S( l% y5 I( d
2.程序源代碼: / W. ~& z8 w5 V. {# [8 V* k
#include "math.h" # ^4 @! v: V: D/ q7 Q
main() { $ q8 F, H8 D& s9 Y( |) n. J
long int i,x,y,z; ' [, ?' v- U9 A2 _) ~2 L
for (i=1;i<100000;i++)   l' o. F2 o1 U/ f
{ x=sqrt(i+100); /*x為加上100后開方后的結果*/ % Z8 |8 _% X2 U. l! u! R- B; G* q0 G
y=sqrt(i+268); /*y為再加上168后開方后的結果*/
9 L4 d3 T( j' S. U! {: b1 [if(x*x==i+100&&y*y==i+268)/*如果一個數的平方根的平方等于該數,這說明此數是完全平方數*/
5 h  I5 W- `/ E0 K' |$ A. H! i+ yprintf("\n%ld\n",i); } }
' [4 i7 T- F3 b( t==============================================================
* D) t  u2 L7 M6 c5 \/ I【程序4
* l; Q1 g5 Z& P題目:輸入某年某月某日,判斷這一天是這一年的第幾天? & U5 c- @: P( c0 E8 [4 ^2 {9 S
1.程序分析:以35日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊
- a6 O& k0 a0 x" L6 j情況,閏年且輸入月份大于3時需考慮多加一天。 , r& N0 `3 ~5 r! D- b- O
2.程序源代碼:
' j5 f8 L) a1 |, ymain() { 7 J0 _1 i" A3 n$ A" o0 i
int day,month,year,sum,leap;
6 v9 I7 J7 C7 ~* l7 X, R7 D% wprintf("\nplease input year,month,day\n"); 6 B8 o) P0 _! F" y  I0 t) @
scanf("%d,%d,%d",&year,&month,&day); 6 m* C2 ?2 ]3 e# r2 i
switch(month)/*先計算某月以前月份的總天數*/
{ case 1:sum=0;break; ' p/ z- l7 b5 I, R. z7 n2 v
case 2:sum=31;break; 3 {: f' c: P! e! o6 Z( H1 ^
case 3:sum=59;break; 5 |3 G, z! ?+ }1 n, m& p
case 4:sum=90;break; ' T( F: x9 D% f8 }( J4 M
case 5:sum=120;break;   j1 `+ _# D' [( H) @; f
case 6:sum=151;break;
5 i# D2 N9 t) m: P6 kcase 7:sum=181;break;
% T4 `4 o/ Z6 V4 C1 D4 ?( Y. Lcase 8:sum=212;break; & T6 L% O6 ^5 W' Y8 t1 _
case 9:sum=243;break;
$ P) w7 C% ?3 rcase 10:sum=273;break;   i7 s3 `2 {  [6 j  I
case 11:sum=304;break; ' T) U* G, I) U$ [/ Q9 O+ j1 @
case 12:sum=334;break;
7 t8 f9 w# ?1 @+ P* |. t' q9 ddefault:printf("data error");break; }
2 r- F6 _* v. h5 P8 |sum=sum+day; /*再加上某天的天數*/
4 ]7 l. S( o  Q$ S. nif(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/
0 n) d7 {( u  _5 g4 i* aleap=1;
1 E) B) A6 C$ B5 h6 K7 ?: Oelse " ?- p- e& I; y6 @3 @
leap=0;
3 v* {  I) _* J5 h0 tif(leap==1&&month>2)/*如果是閏年且月份大于2,總天數應該加一天*/
" f* G2 W8 [/ h* C5 b  vsum++;
. T8 }& e5 P# d. u* o5 zprintf("It is the %dth day.",sum);}
; h, y* h  R- Q( @/ \==============================================================
- Z* R) F0 t4 M6 l9 y. R【程序5
, p1 [) w% @' H. T& y, l題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。   |  A: c+ S8 `- q' M/ J0 K
1.程序分析:我們想辦法把最小的數放到x上,先將xy進行比較,如果x>y則將xy的值進行交換,
- K$ p  Q3 U% x: J, [+ z3 h然后再用xz進行比較,如果x>z則將xz的值進行交換,這樣能使x最小。 6 c& j/ O: T  `# ^  U
2.程序源代碼: % I! u/ x7 i! h; q( f+ {. z
main() {
! ]) _0 j5 P" F9 i1 kint x,y,z,t;   H& {# c' n9 M. o! ]
scanf("%d%d%d",&x,&y,&z);
# B0 R7 d+ j% [7 S# a" s( D4 c# {if (x>y) 9 `- G/ Q1 M  o/ A( D, T
{t=x;x=y;y=t;} /*交換x,y的值*/ 0 L- f1 \! r- d" ^
if(x>z)
8 X8 A+ Y& S) ?7 u0 F{t=z;z=x;x=t;}/*交換x,z的值*/ * i. E5 E* E# F5 S( O0 U
if(y>z)
7 X' I9 l) [0 `{t=y;y=z;z=t;}/*交換z,y的值*/
% g3 J- X3 P4 S: H8 f: Hprintf("small to big: %d %d %d\n",x,y,z); } ; m& q' k. p9 Q; o  s  N) B5 k
============================================================== ( N! w. I) b1 D; ^1 T
【程序64 v& W! f. H" {7 V/ }8 i& L+ y
題目:用*號輸出字母C的圖案。 / b/ k9 m" m* j' i+ ^& Q6 _" W. X
1.程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。
- [! `- K7 e+ A) W/ M2.程序源代碼: 8 P  L# c: I6 f
#include "stdio.h"
1 v9 H1 ?: Z. p8 o' pmain() {
" q) @$ V9 c! P7 F0 ]5 P+ ~4 Q# Q! Mprintf("Hello C-world!\n"); ) u% s0 y0 m3 I: J4 ~
printf(" ****\n"); ; K4 _# ^4 j- L+ }9 g
printf(" *\n");
' K. v. I+ Z8 s1 Cprintf(" * \n"); # A9 c7 K; r# B' e* G# [
printf(" ****\n"); } 9 }7 L+ }8 R' d: n2 j, ]7 I
============================================================== & U5 `8 J. P( \: H& o
【程序76 z1 B4 B0 O& w
題目:輸出特殊圖案,請在c環境中運行,看一看,Very Beautiful! * `1 E! l% w/ A, a3 \
1.程序分析:字符共有256個。不同字符,圖形不一樣。
! @) q3 ]. T: R  m0 ^4 f2.程序源代碼:
" H2 o$ d' ]* \: h- s) u1 E#include "stdio.h"
7 [! w9 `3 E8 T) l% s' I2 y6 Kmain() 1 p4 x9 {: T7 V9 F
{
/ Q1 o# K( y3 gchar a=176,b=219;
2 e  F# Q4 A; i1 u8 Hprintf("%c%c%c%c%c\n",b,a,a,a,b);
1 r* ?$ A; v- x6 W9 N6 o# tprintf("%c%c%c%c%c\n",a,b,a,b,a);
; d% P9 `6 ~3 a  w2 O& O! j8 `printf("%c%c%c%c%c\n",a,a,b,a,a); " K! j  F% p6 v; O6 s8 M# t
printf("%c%c%c%c%c\n",a,b,a,b,a);
: a& C8 K9 I6 c4 Rprintf("%c%c%c%c%c\n",b,a,a,a,b);} 4 {2 A7 R+ B+ @+ w
==============================================================
- a1 m' a# ^, a# m; x【程序8& j' e' K* o" r( r$ i( Z& q
題目:輸出9*9口訣。
, w- A+ f3 w! f: t' t( o1.程序分析:分行與列考慮,共99列,i控制行,j控制列。
  W; I& Q  ^$ d0 L0 \9 z2.程序源代碼: - h3 f, a% j  c
#include "stdio.h"
' K8 d! S8 C* w; q) @. G2 p& y  pmain()
3 G# n' i* S( u* R, j/ j{
. w# \7 Z' ^, O( h9 w0 Xint i,j,result; $ Y) [' d9 x: j3 H, J# `# e; P: y
printf("\n"); . e% C, U' h/ Q* Q; R& s' N
for (i=1;i<10;i++) 9 K/ z& `- S- M3 o8 a9 ]
{ for(j=1;j<10;j++)
" Q/ J6 t! C) K0 ]* S1 m, Y{
+ K. ?0 x7 b. d- e/ R# U0 [5 presult=i*j; 6 d$ b( F) y; q3 Z/ g4 a0 r
printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3*/ & E5 T1 O- I/ b! u' V- n
}
+ p3 L# B# j  `& p& Wprintf("\n");/*每一行后換行*/ " V8 V5 E/ Q3 r1 p* O* Q
} 3 O- r/ ?5 N( C: T
} . M8 ~/ q' I1 p! a8 y7 e
===============================================

4 o+ {1 e0 l% L$ f+ I
作者: jiangsuwanhua    時間: 2017-9-22 10:21
感謝樓主的分享!!!
作者: qq642446015    時間: 2017-9-22 10:22
我竟然發現我有點看得懂
作者: qaz111772015    時間: 2017-9-22 10:42
c語言。。。。看不懂
作者: 藍色格    時間: 2017-9-22 10:59
說好的一百例怎么只有幾個?
作者: gg157551    時間: 2017-9-22 11:32
附件呢???
作者: 星-星    時間: 2017-9-22 12:26
基本都忘了
& l6 j8 \, I: }4 y  }軟件類的,學了就要用
作者: 我最帥    時間: 2017-9-22 12:54
樓主,求分享剩下的
作者: 林泉之樂    時間: 2017-9-22 15:44
玩玩的東西
作者: 韓寒11    時間: 2017-9-22 23:42
這是和電腦有關的知識,做機械的用不上吧
作者: moldzsdj    時間: 2017-10-10 15:58
看不懂,努力看。。。。。用的上,PLC,單片機,靠這些驅動機構做工,達自動化
作者: wei381690115    時間: 2017-11-23 17:22
好東西




歡迎光臨 機械社區 (http://www.whclglass.com.cn/) Powered by Discuz! X3.5