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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2619|回復: 0

C語言算法6-15

[復制鏈接]
1#
發表于 2017-10-5 16:43:28 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序6
! I* O3 b# G3 B: z! L6 H題目:用*號輸出字母C的圖案。
' n! O! ]! X6 S. m% k, U1.程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。
+ u: Q" ]% U! B: s* P2.程序源代碼:
& W6 T. L! J, x9 r8 x* t& ]#include "stdio.h"
5 ^" R; F$ w; Y) bmain() {
) r8 r9 Z7 Q9 ^printf("Hello C-world!\n"); 6 W( q$ R/ l- d$ p/ w! X
printf(" ****\n"); / u' k6 w2 a1 R. Z
printf(" *\n"); - b9 V. ~% j5 }7 I* ^+ K
printf(" * \n"); % f  D9 q) _2 p6 H3 m
printf(" ****\n"); }
6 s. g* P9 S1 F# q0 j8 \5 v$ h==============================================================
3 |; N! \- a* Q4 t/ b* l. P【程序7% \) D* }% P) f3 v
題目:輸出特殊圖案,請在c環境中運行,看一看,Very Beautiful! & P5 M. l6 k5 R" f2 j" N7 T
1.程序分析:字符共有256個。不同字符,圖形不一樣。 / E. b9 B1 j" Q; f2 p7 ?+ O
2.程序源代碼:
$ e9 [5 y& o& C/ m#include "stdio.h"
$ {% E$ X. y: [main()
( f6 ]( k# n; L/ N" s) s7 e* Y{
% c  S% {; a& @% C1 xchar a=176,b=219; $ g& W/ z6 o: B
printf("%c%c%c%c%c\n",b,a,a,a,b); & ^7 A/ `1 N! d8 r9 P/ U5 U
printf("%c%c%c%c%c\n",a,b,a,b,a);
. A% g! l" a% _- }8 W0 d: Yprintf("%c%c%c%c%c\n",a,a,b,a,a); ( F$ B6 b$ N- r( Q( Y# w! U* i& v
printf("%c%c%c%c%c\n",a,b,a,b,a);
% F- a5 @" [5 x3 Fprintf("%c%c%c%c%c\n",b,a,a,a,b);} ) R+ f2 Z% Q( y. Q, b: T
============================================================== $ H# y* `' c* W! K/ v% j
【程序8
9 `" g9 O7 k7 c  J* v" _7 P題目:輸出9*9口訣。 ( ^: G: T" \7 x7 o8 b' @5 s4 l
1.程序分析:分行與列考慮,共99列,i控制行,j控制列。
' [7 C  t" o" j. t# H" u/ m2.程序源代碼:
; ^/ z7 A6 N: \% U' g#include "stdio.h"
& U% P, U3 S% ^/ `1 |main() : m5 M) {% y- X$ q- w. a7 ]
{
6 n0 x. K9 k8 O7 _! i4 L# jint i,j,result; $ Z. C/ V+ Y  I4 h" p
printf("\n");
( t  X2 u: c% K& S! ~for (i=1;i<10;i++)
& q5 w+ w5 z% I, ?' x{ for(j=1;j<10;j++)
/ C9 Q5 j8 o- Q$ K{
4 p( _/ y% x* l& `; Rresult=i*j;
7 `. m0 u. v( S: e3 @printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3*/
/ v7 t' k% Z% {% M2 p) H4 ~5 z}
& M/ q- I1 F) e6 N, Lprintf("\n");/*每一行后換行*/ & \  V0 l" z& I  x- D
} # p  B/ b% E3 ?. x# q, t. v
}
. i2 s) N3 A+ [& O4 T& P9 K============================================================== - O+ u9 N- s* p7 e
【程序9
7 o4 L: P; f6 i# ?題目:要求輸出國際象棋棋盤。 (嵌入式學習企鵝要妖氣嗚嗚吧久零就要)8 B+ v1 \3 g# l
1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
1 r0 I& V! l' d2.程序源代碼:
! v+ z5 E8 o) I2 K! w1 u2 n#include "stdio.h" ! N# M  i! g( `" Y3 E6 |, l
main()
+ k- |8 l% P! M{
) r' i+ \- E+ F3 V' v) Oint i,j;
) q' v0 k5 j- R+ d5 qfor(i=0;i<8;i++)
# P! t* e, f5 h) O8 G{
0 C# @0 v; c$ \& F" e/ K* vfor(j=0;j<8;j++)
+ |% h, x! d# F9 O' d- {if((i+j)%2==0)
0 W. h) ^$ c/ z$ n. O9 C4 E8 P% @printf("%c%c",219,219);
7 O3 d' _, d. t0 qelse 3 P% H# ?7 j5 \
printf(" "); & i5 B( U5 p1 I: e% ]% W
printf("\n");
* Q  o1 _, i+ a! A% e6 J}
( ~/ O; u# D$ K) [# J8 ^, h} 9 C7 G0 I- M7 I+ k. B3 _
==============================================================
* I2 s* I& b0 ~7 ^& q0 Z; w【程序10* S: P' N- ^$ j5 D9 _( m! N7 i
題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
: e5 O7 {; b. A% k1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。 6 B( S" `* o* |% j4 p' _  k
2.程序源代碼: & U  h! n- ^2 z0 F0 F$ E2 Z
#include "stdio.h"
* L* e' R, ?$ V( ymain()
+ K8 E2 f4 q- B3 |  i{ 9 x. G# x. e9 G) i7 m! i8 p
int i,j;
9 q0 P. Y7 [+ y$ @  I& wprintf("\1\1\n");/*輸出兩個笑臉*/
; x& o( W; @7 J# z& Z, rfor(i=1;i<11;i++) / {; @* b( N! V
{ 0 s4 ?" n: Y, U2 A; \! ]
for(j=1;j<=i;j++)
/ _$ k, R6 v, m, Pprintf("%c%c",219,219);
- m4 m" J8 X( |6 C! G; ]  W: u$ \printf("\n"); & x5 m$ z+ X# k8 ]( y/ ?
}
* W! v, y8 V4 |8 W}
' e1 j. E0 _# F3 k% j# A! p6 M, j. O1 w. N6 `
! ^9 _9 j6 x! O0 ^

) E1 Q1 o+ C; E& r) {( B- A* U" X作者: zhlei81 2005-1-22 11:29 回復此發言 6 W1 p6 T( v5 p# J/ J

, C: e. ?- z. _4 I/ R/ ]--------------------------------------------------------------------------------
/ H' v: Z% i0 d. v9 @
- B5 J  \7 b! }6 M0 p% {3 回復:經典C源程序100# Q6 U% \8 I" Z' C* R7 C
【程序11; a. ]/ u- t! r7 E, t
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月 7 N) _' ]1 W4 l1 O" v1 e
后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 4 r* L  e+ Q0 v6 A, f
1.程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... + `' Y' l+ N( S' ?
2.程序源代碼:
7 n9 U) f8 R) h. ?main() 4 ]" J! k. l% X0 X5 W4 ~
{ . p' W; t$ e! v; B8 _7 C! M
long f1,f2;
3 S, j9 T; A# N4 @. G1 Nint i; 3 a. {5 X  o" e, _/ t
f1=f2=1;
. S3 t& t- g0 R4 s% [/ ufor(i=1;i<=20;i++) ! Z- C& n# |' s. Q- d, g
{ printf("%12ld %12ld",f1,f2); - ~9 B; d* P3 l! }
if(i%2==0) printf("\n");/*控制輸出,每行四個*/
7 j/ l' O4 y+ J( Qf1=f1+f2; /*前兩個月加起來賦值給第三個月*/
+ X* T5 b/ \3 a/ W' Pf2=f1+f2; /*前兩個月加起來賦值給第三個月*/
0 t' @% E, Z+ r' R}
9 k7 Y* b, h, t1 n) s- Z! s}
, |# V- T3 l; _' f' _============================================================== * r! I! x* B4 c" I9 w& Z/ ?
【程序123 d, g- w9 \' D% Q& L9 x9 J
題目:判斷101-200之間有多少個素數,并輸出所有素數。
& u$ T6 X. A  g; X1.程序分析:判斷素數的方法:用一個數分別去除2sqrt(這個數),如果能被整除,
- b2 b8 P6 u: Y# w則表明此數不是素數,反之是素數。 9 i+ }. i7 l+ L. C% O; x
2.程序源代碼: ) v* [, k! m/ S, V0 L
#include "math.h" 0 A  e* G" B" n9 A4 e
main()
# A6 ?+ v* u, t. j& D{
9 T  [% M0 @; vint m,i,k,h=0,leap=1; ! `9 Q, U! |2 N. j' ]
printf("\n");
; ^1 |9 i& {" ^/ k2 ]/ s8 cfor(m=101;m<=200;m++) ' Q  Q1 N. E$ j7 U/ i
{ k=sqrt(m+1); ' Q1 j; `- k$ G; l2 A( O9 ]: ]
for(i=2;i<=k;i++)
1 c+ K7 S4 N9 L! r( N+ {if(m%i==0)
% m+ x( r5 t7 H3 @7 S{leap=0;break;}
( i- Z1 F: w# C. ?if(leap) {printf("%-4d",m);h++;
0 L. N+ \: u5 Q' {. `if(h%10==0) + n. g' D0 @. {1 g& q
printf("\n");
6 B- a9 U8 T8 v( U* V}
1 `/ J4 P4 b2 J) S$ T7 I3 a% kleap=1;
. z: f% P. b3 J1 O, b$ ^}
- Q- ~$ W; g% N2 s3 S' \% jprintf("\nThe total is %d",h);
* A6 w" W9 C2 T5 \/ j  W6 ]/ C}
+ z/ m5 w; d5 t  P4 B* d5 E; i==============================================================
1 t/ g5 l8 j* h2 V3 Q1 I5 [( t【程序13" Z; N4 F6 P: ?) H: P9 A* E
題目:打印出所有的水仙花數,所謂水仙花數是指一個三位數,其各位數字立方和等于該數 0 w8 w5 n- J9 i- C
本身。例如:153是一個水仙花數,因為153=1的三次方+5的三次方+3的三次方。
& X6 L( \1 g8 y1 |1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。 & t% e" N) I5 U" a
2.程序源代碼:
" N7 M, z$ z9 {8 Vmain()
, j8 T6 p/ ?' e: m{ 2 f2 @9 J. F6 _" }" a- t
int i,j,k,n; ( T' s7 c; G/ H4 B
printf("'water flower'number is:"); : f. R: l  E( O* `) n% O- w: }# v
for(n=100;n<1000;n++)   t, Q. v: W, e8 f
{
* Z* m  X0 {! m* F' ri=n/100;/*分解出百位*/ + p1 Z1 b& W: z/ \& s$ {# D
j=n/10%10;/*分解出十位*/ * X8 Z2 a" h9 D) q
k=n%10;/*分解出個位*/ ( o; R; D3 p7 r" d% I# P* J; T
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 4 O9 z7 |) ]9 B* i. f$ X! e' k
{ - n' P% ]* \; r& ?8 s5 z2 X) r
printf("%-5d",n); , o4 p7 I1 p2 h. ^1 g3 |  z# h% h
}
; D$ j6 m' Q5 c# J8 V- g6 ^} % H/ z, d3 Q9 j2 i! x! W- ^& J
printf("\n"); & t6 S) s% r! O4 M. v& y% b1 W
} ' F1 w1 q" m! f
==============================================================
0 C" D% S! V3 E5 d5 L【程序14
/ ^+ e9 ^) S4 ~8 x, ^! ]$ C+ b) D題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5" f: i1 k5 h8 t* w1 A$ y) t
3 |. D( Y/ R4 h
程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成: " v( d( s7 |/ q: d2 a( v
(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
$ Q" K5 P0 G& G3 \, e(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n, # l5 x& X+ T" `
重復執行第一步。
# J$ k3 J& E" k(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。
/ @7 `& C" k( K, U
9 F4 [: X5 S+ c2.程序源代碼: , [5 [8 ^# L0 v1 U
/* zheng int is divided yinshu*/ . {" Z3 n: Y* L
main() 3 N$ _! X4 j7 `7 N5 V$ u
{ * u* d# V& K4 u% ?5 p
int n,i;
2 n, a$ r! L' D( u! @. Iprintf("\nplease input a number:\n");
# V) A. \1 Y2 P) i) ?' a& mscanf("%d",&n); 1 ]4 j* [, J/ R* m2 K' j. w
printf("%d=",n);
6 @4 K6 g4 B+ g! p1 Qfor(i=2;i<=n;i++) 9 }- `; N9 P* b3 M& E; F
{
2 o% d4 P& L9 t; P3 ?while(n!=i) - V( J: U( e' J6 [: x
{
& Z  A# d0 \: V# s9 l0 Zif(n%i==0)
# W& n' N$ Z! O1 B{ printf("%d*",i); + m2 q# X6 S2 ?8 d; e8 |
n=n/i; 2 B+ ]* v' X: i  v# Z
} 7 D- z0 o5 J3 D) e5 q/ f  ]
else ( w! r9 N1 L- c/ H4 h" e
break;
+ d* h/ R6 {* _% B- H} / v/ e: w2 J0 A; d# e2 j% `
}
+ N3 c5 O- T6 Bprintf("%d",n);} ; i6 k; f1 [7 h6 [- \* X# V4 I
============================================================== ( w$ R' |& X" o: X
【程序152 z- w2 r( ~. v2 H0 p* d
題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,
4 K& v' u- z0 H. w( Z60分以下的用C表示。 5 t" [. j% |% J. E9 J
1.程序分析:(a>b)?a:b這是條件運算符的基本例子。
6 w! V0 }/ c& a3 k# p2.程序源代碼:
; C) b' [  J+ q, Amain()
1 D" }2 }6 p& Z1 F{ + W6 T, Y9 F5 T$ X* h  S" B
int score; 2 N5 Q' v' k5 z
char grade; % f5 c) e3 E! Z% s- T  J
printf("please input a score\n"); $ `9 ]% {. b# G  f1 N% w
scanf("%d",&score); : }# f+ |1 f& t# }7 q* i1 V* f' V/ m
grade=score>=90?'A'score>=60?'B':'C'); ' r9 ]$ E9 a% L# q: |
printf("%d belongs to %c",score,grade); " B& f, E( l  V4 a
}
, x, w. l' f5 v; Z. G8 p- ]1 n==============================================================   @/ R$ I! K! |+ f  z
. _1 t9 ?* D& \* S+ y. x# h' q
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

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

GMT+8, 2025-9-19 00:17 , Processed in 0.061488 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表