久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 4986|回復(fù): 11

C語言經(jīng)典算法100例

[復(fù)制鏈接]
1#
發(fā)表于 2017-9-22 09:34:26 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序1
9 P2 ^+ P% d* D; L題目:有1234個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? 7 i4 c; ^; f' D& e3 }/ U
1.程序分析:可填在百位、十位、個位的數(shù)字都是1234。組成所有的排列后再去
7 W3 m2 E$ H& [# T掉不滿足條件的排列。 : I0 r) ~. t& B) b, W& Y
2.程序源代碼:
% V' P2 a' A8 d" q8 ?3 J2 u# t5 Ymain() { 6 e9 E2 y9 Y8 ~$ |
int i,j,k;
$ g5 q( u; c# [+ X7 A5 {printf("\n"); 3 V( x; _8 K. w/ |: t
for(i=1;i<5;i++) *以下為三重循環(huán)*/ 3 y* b0 M  P& v/ X6 p0 k8 _# r. }
for(j=1;j<5;j++) 6 z& l! p% j. L' l: T5 \/ v4 @" ]& R! |: s
for (k=1;k<5;k++) {
8 P& c& O6 V( D2 I! a2 P" Jif (i!=k&&i!=j&&j!=k) /*確保ijk三位互不相同*/
9 |; f0 E8 J' v4 E4 F. Iprintf("%d,%d,%d\n",i,j,k); }}
% s3 Z) z8 k2 W% p==============================================================
$ x+ }. D7 C  u/ ^! R3 b: i【程序25 F2 n& Y9 q, m! k+ r) M+ \/ X
題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高
4 t2 K8 `! R) E. U" j) {$ i10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提
& f1 q+ B3 _9 D) F, C7.5%20萬到40萬之間時,高于20萬元的部分,可提成5%40萬到60萬之間時高于
' A4 h$ F  \6 Q' g$ t40萬元的部分,可提成3%60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于
4 p- N' A  q9 _, [; M1 g! m/ x100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎金總數(shù)?
' Z2 i7 o9 K2 g) P: m1.程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型。 5 O. J  m0 H4 Q. o, d
2.程序源代碼:
6 \( B( }. C& ^; _4 {9 `4 imain() { % ]2 m1 @! s7 d4 j; b' ?2 L
long int i; - [; J' G. p  v0 x
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
) \7 p  q: _0 ?* A! {$ ?( s# _scanf("%ld",&i); - D9 F3 c8 j! e( `3 T5 D  W' I  W
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
  ?& F: b* o1 ^' C; I8 pbonus4=bonus2+200000*0.5;
; g. ^3 k: n5 O, i" |% o, Dbonus6=bonus4+200000*0.3;
% S3 k; Z6 {# N- ?. `* _bonus10=bonus6+400000*0.15;
- q( l6 q+ `1 lif(i<=100000) ' i' U+ h- u- X# L- e& S
bonus=i*0.1; 1 W. W  o' e. ^! r3 f! J
else if(i<=200000) & L) _& Q# j' ]
bonus=bonus1+(i-100000)*0.075;
0 Z5 k4 E# o/ K# l5 p( O; P& ~7 helse if(i<=400000) ; {( G. O: x7 L  q: s# }: j
bonus=bonus2+(i-200000)*0.05; & }! Y: q! T( b- m- ]: G' X
else if(i<=600000) / o4 u1 b* ^, F" i6 a& {
bonus=bonus4+(i-400000)*0.03; * C3 d$ a9 c+ w0 g3 k3 I; `
else if(i<=1000000)
8 b' V- D! R8 |) M( j5 }5 mbonus=bonus6+(i-600000)*0.015; 7 ?( M* W8 ^5 [! ~0 X: n& ]) ^
else 6 i  ], m5 G) c1 c' [1 J
bonus=bonus10+(i-1000000)*0.01;
- K, O/ Y5 f! ?9 L2 w( |+ Aprintf("bonus=%d",bonus); }
; t, e" [/ X( c9 M8 }  O$ z============================================================== - [  R; J! o5 H6 Q$ n  U9 d
【程序3
3 \# X2 d  {$ j0 y% P, Y題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
3 H- Z  Y1 g# K  d, e; w8 X1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后
, B3 \% I: H. I2 Q4 E5 e的結(jié)果滿足如下條件,即是結(jié)果。請看具體分析: & e8 k. }" O2 W, b, z  B
2.程序源代碼:
, Z/ u; @8 K6 z5 h, Z; a' {#include "math.h"
2 y/ r2 b) R1 \: g$ [main() { 3 h" n* ^8 \  H. D; G, `! T
long int i,x,y,z; 5 O% X) u- v5 `8 x
for (i=1;i<100000;i++) 5 o( N: J2 b- b+ |1 B1 U
{ x=sqrt(i+100); /*x為加上100后開方后的結(jié)果*/
0 l: a4 [9 z9 A: c3 Fy=sqrt(i+268); /*y為再加上168后開方后的結(jié)果*/
+ g+ g1 C1 R. V) l! a3 M8 tif(x*x==i+100&&y*y==i+268)/*如果一個數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/ : U$ O1 O8 f# g5 z
printf("\n%ld\n",i); } }
8 ?- n  \7 J* m% N============================================================== $ Q6 g0 S! Y% v, z, k* ?
【程序41 O& L( V2 i. x+ v0 i1 d* T, g1 `3 n4 T
題目:輸入某年某月某日,判斷這一天是這一年的第幾天? / ?' ?5 X# |5 u& Q1 I5 @/ f+ o
1.程序分析:以35日為例,應(yīng)該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊
5 X: l" c- s) X/ p. E$ t情況,閏年且輸入月份大于3時需考慮多加一天。 0 z8 s7 D% ?- p3 m
2.程序源代碼: 6 G2 `! I5 \7 x6 r. y7 P- `5 K
main() { ) F; {2 ?# k. p$ s8 q( ]" V+ D$ g
int day,month,year,sum,leap; * ^- R0 i" [* \
printf("\nplease input year,month,day\n");
' A: D& l+ L: {7 @8 e4 }6 T3 Lscanf("%d,%d,%d",&year,&month,&day);
1 O/ u+ K* E; ]" }7 Zswitch(month)/*先計算某月以前月份的總天數(shù)*/
{ case 1:sum=0;break; ! Z$ ~/ m2 ^! n4 Q
case 2:sum=31;break;
1 A1 l! s0 j2 k: n1 jcase 3:sum=59;break; 9 O: {) I$ \- W; c  }9 [5 s
case 4:sum=90;break; / W! G; S) @0 v( Y8 d" ]
case 5:sum=120;break; 8 R) w, e& I4 _! G% D, k6 n0 W
case 6:sum=151;break;
. W. \0 _5 X( a: S) \. Ncase 7:sum=181;break;
2 ]* ~5 t( {  A- g, K+ v+ h; ~, Zcase 8:sum=212;break; * T2 D7 Q, z. Y8 Y
case 9:sum=243;break;
4 F9 B3 H6 q, k4 Z' b  ucase 10:sum=273;break;
) K1 ^2 ~. ?7 A+ q' Fcase 11:sum=304;break; ! p2 ^& F; S0 s+ ]9 Y5 e4 ?
case 12:sum=334;break;
! I' n' {! ]( e: k/ k: `default:printf("data error");break; } / ?* g  Y* f& \6 P0 P0 P9 c
sum=sum+day; /*再加上某天的天數(shù)*/
8 Q4 H8 F* {$ G6 k3 Oif(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/
8 P* m( X8 h$ M, Z* R, h$ T, @, }leap=1; & A6 l# V) S3 l1 ]5 O
else " `- E1 L) T7 z; p+ \  z
leap=0; 4 h0 l4 ?6 d8 c+ j
if(leap==1&&month>2)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/
! U, \+ W4 f, W' i& i! c7 asum++; 8 R  O: [- F- V9 p, {* }
printf("It is the %dth day.",sum);} 2 G, Y( Z+ C# B; @" w. ?  u+ o: x; N
==============================================================
! d( C+ V  L; X) i, p【程序5
! q& V* Z$ S9 B. H8 k! y- l題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
2 A5 j! H" G4 z6 x: Y# a: ?1.程序分析:我們想辦法把最小的數(shù)放到x上,先將xy進(jìn)行比較,如果x>y則將xy的值進(jìn)行交換,
" g) l3 ^* ]3 v& @3 `3 o; C  D然后再用xz進(jìn)行比較,如果x>z則將xz的值進(jìn)行交換,這樣能使x最小。 + J/ S/ N- N. j* z5 [
2.程序源代碼:
  s1 \9 T/ s& \" R8 m6 z6 ymain() {
# o& x/ a) @3 O# k& ?' f7 Yint x,y,z,t; 8 g* L. @. O; i; J* Y5 J
scanf("%d%d%d",&x,&y,&z); 4 [/ M' I* B( K# ~; j4 {) y: }) k$ g
if (x>y) 6 g7 I; {! {% a; j2 _: G7 b
{t=x;x=y;y=t;} /*交換x,y的值*/ % y& h7 R, f( f
if(x>z)
! b2 r* K9 `$ h1 g5 {{t=z;z=x;x=t;}/*交換x,z的值*/
% M  J( F+ G8 R# r5 _if(y>z) / j) {/ K$ y. P  g; [7 r
{t=y;y=z;z=t;}/*交換z,y的值*/ 1 T6 b8 `, ?. L, ?6 y* A4 \, I. T! r  l
printf("small to big: %d %d %d\n",x,y,z); }
8 ^7 D3 {% t& S3 V+ \/ P==============================================================
0 w. p1 c) Z  a9 e3 }【程序6
6 t2 o3 s5 \. k3 r3 j7 Z/ t題目:用*號輸出字母C的圖案。
0 a' H. k! F+ M( G1.程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。 + O3 M% r% ?5 f9 H$ Z# I
2.程序源代碼: ; J' k9 o0 {. \
#include "stdio.h"
  T8 d; e/ g& Jmain() { 9 G8 e4 y9 C0 x/ {, B: z/ q
printf("Hello C-world!\n"); . L  L/ D4 X" a% Z0 P
printf(" ****\n");
: a! }/ m. a  y" O$ ?  a  iprintf(" *\n");
) }+ s9 e& ^% [  z4 g& k% Qprintf(" * \n"); 6 h3 j; ?$ X0 ~6 ]- k9 x8 Q6 r
printf(" ****\n"); } * v- Q7 Y3 o0 e
==============================================================   n- ?% V. f$ m5 B
【程序7
& M& c" X4 u' L4 P* w題目:輸出特殊圖案,請在c環(huán)境中運行,看一看,Very Beautiful!
  [1 k9 E. o, v1.程序分析:字符共有256個。不同字符,圖形不一樣。
' Z& }5 l' f) n0 }. y) B$ Y5 k2.程序源代碼: " J& G/ w$ o  G4 W
#include "stdio.h"
" c9 u7 j: n- Bmain()
( K- Q5 ?! q0 t% D2 ?9 h1 D{
( _4 B$ g* v- Y7 B+ w( j/ u, lchar a=176,b=219;
& ^: S3 }1 j6 B0 q2 E9 }- gprintf("%c%c%c%c%c\n",b,a,a,a,b);
2 S4 k1 _/ [4 \4 @printf("%c%c%c%c%c\n",a,b,a,b,a); / ~8 L- Q7 Q- Q
printf("%c%c%c%c%c\n",a,a,b,a,a); " z3 V9 O' E0 ]& j/ ]& e, v! M
printf("%c%c%c%c%c\n",a,b,a,b,a); ( b. A( g. L3 D) U" I; d9 U
printf("%c%c%c%c%c\n",b,a,a,a,b);}
. G- V7 J8 F' n4 {============================================================== 2 ^) _# E1 `* g  K* t5 Y+ ?- m
【程序8
2 L8 M  O% X1 k: x! |, e! G題目:輸出9*9口訣。
' A: h1 R9 e) ~0 q3 v  E1.程序分析:分行與列考慮,共99列,i控制行,j控制列。
, \6 P- t* O" r0 i/ B- T: s1 }4 z2.程序源代碼: 2 ^% g. z; }; y$ B: L
#include "stdio.h" 8 Y: L2 D: e7 I! ^  C1 {
main()
" P% ], r( B2 P" d5 q/ `' X{ 2 B# U6 Y1 D  C+ ]9 n) p3 h
int i,j,result; 2 ~( v# }: t2 B$ q
printf("\n");
& l* ~# |, z# m2 ?, g3 B$ Nfor (i=1;i<10;i++) 8 W# l" b. n5 R5 f- ]( \/ w0 i
{ for(j=1;j<10;j++)
, X' v  O/ ?0 j2 r: d6 I* e{ ; _3 e  v! }/ R7 D5 ?
result=i*j; + Z' S$ ?$ Y9 ?( p5 N
printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3*/
2 i: B/ s- t5 ]% A2 O1 h/ o}
- u% `+ z  i( d- M$ C0 v* Y7 Fprintf("\n");/*每一行后換行*/
0 w( |# O1 L+ m- q} " ^& w7 ^) p! W" {9 Q
}
  x. N4 B2 {8 F' d7 x* ~& i& y/ ^; `. o===============================================
4 w- h% s6 S. }$ b1 f+ z
回復(fù)

使用道具 舉報

2#
發(fā)表于 2017-9-22 10:21:51 | 只看該作者
感謝樓主的分享!!!
3#
發(fā)表于 2017-9-22 10:22:12 | 只看該作者
我竟然發(fā)現(xiàn)我有點看得懂
4#
發(fā)表于 2017-9-22 10:42:30 | 只看該作者
c語言。。。。看不懂
5#
發(fā)表于 2017-9-22 10:59:43 | 只看該作者
說好的一百例怎么只有幾個?
6#
發(fā)表于 2017-9-22 11:32:18 | 只看該作者
附件呢???
回復(fù)

使用道具 舉報

7#
發(fā)表于 2017-9-22 12:26:17 | 只看該作者
基本都忘了! f( o5 o+ [3 m; a# ?: w, A
軟件類的,學(xué)了就要用
8#
發(fā)表于 2017-9-22 12:54:50 | 只看該作者
樓主,求分享剩下的
9#
發(fā)表于 2017-9-22 15:44:21 | 只看該作者
玩玩的東西
10#
發(fā)表于 2017-9-22 23:42:20 | 只看該作者
這是和電腦有關(guān)的知識,做機(jī)械的用不上吧
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

Archiver|手機(jī)版|小黑屋|機(jī)械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2025-8-3 18:08 , Processed in 0.065578 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復(fù) 返回頂部 返回列表