找回密码
 注册
关于网站域名变更的通知
查看: 347|回复: 0
打印 上一主题 下一主题

C语言算法6-15

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-10-5 15:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
【程序67 a7 F. \% t2 B2 d) D
题目:用*号输出字母C的图案。
9 y$ A6 ?; w, Q* S- C1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
5 U; C+ [. _% p2.程序源代码: + D# v( U( A% {& C
#include "stdio.h" ! a5 l3 a( M  n+ X3 Z9 x4 d
main() { . V/ U* }9 G8 I1 W. r4 R' ~/ L
printf("Hello C-world!\n"); 1 s8 W- h% t5 H5 l
printf(" ****\n");
$ [/ ?" P1 ^, V; n5 g2 M0 Yprintf(" *\n"); / J+ p( E8 u- s6 S
printf(" * \n");
7 k8 a  Z! [3 |1 z8 L+ k% D, aprintf(" ****\n"); }
! ?3 {' o# m5 e============================================================== * W, R) J& C" \2 l- U0 z
【程序7
8 x3 F4 A  {; V' l" @) w5 S4 n% I题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
/ A$ v8 B7 p) I5 h( e" L1.程序分析:字符共有256个。不同字符,图形不一样。
7 _/ j( i# c! H9 }( U- D2.程序源代码:
; s4 G+ ], P6 \) i/ ^#include "stdio.h"
/ S/ C. P7 u  bmain()
- J5 ^4 D- ~7 q9 U' R{ ' H' c2 O+ g* e2 ?* R
char a=176,b=219; 4 l5 p% [; v3 `* k" Q3 g
printf("%c%c%c%c%c\n",b,a,a,a,b);
9 Z) ]2 n: R: ]: uprintf("%c%c%c%c%c\n",a,b,a,b,a); ' B9 T) w) u% U7 n$ B7 G- y/ I
printf("%c%c%c%c%c\n",a,a,b,a,a);
5 T3 {. o- h/ d5 Iprintf("%c%c%c%c%c\n",a,b,a,b,a);
) a+ A0 y& m3 G6 W0 Z' X  U4 Y5 Iprintf("%c%c%c%c%c\n",b,a,a,a,b);} 0 s  n/ ]- I9 ?6 O
============================================================== ! \& H. v1 r/ L' j
【程序8
0 x2 @9 W* ?2 X( i7 u: }' h0 k题目:输出9*9口诀。
* H: K, L9 V$ x; B% [0 g1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 1 r5 K1 n8 H) W% e, y6 K% v
2.程序源代码: ; i) M% T0 D' V  @# A
#include "stdio.h"
/ E4 h9 v8 L" X+ H- S- imain()
& \" {$ Q( d2 K3 W3 ], D{ + N" ^! O: @5 o5 c+ O) l
int i,j,result;
) G! N4 ^5 D* [# I7 I3 y8 Rprintf("\n"); 8 e1 W5 c2 \7 N# M0 `( Q4 i9 A
for (i=1;i<10;i++) ; s' x- x  M" ]; o& Z
{ for(j=1;j<10;j++) . \& i' O/ E. k% U/ S. o4 ?0 L. z
{ 7 q, V4 X5 m+ p. }1 W: G7 |
result=i*j; # T+ ]. M/ x+ @: t1 O  K* m& L  ~
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
' |6 u# h8 |, v! q% U0 [& Y} # w! X  q  k8 l  [5 v# U0 ]! I
printf("\n");/*每一行后换行*/
7 x1 t% g# E- ~+ y0 I  _% I} 1 L. P/ P. S7 |3 N+ U# v( E
} ' [  ?' @$ o7 e) C, {8 ^
============================================================== 7 d& X2 h. P, F* {3 {7 t
【程序9  M; M2 j: j& o: }: M7 n4 L
题目:要求输出国际象棋棋盘。嵌入式学习企鹅要妖气呜呜吧久零就要)
: N  v( @& G+ }$ H, l/ F& Y1 i. ]1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 6 g1 {+ ?, N) @3 `1 q" o; M7 s
2.程序源代码:
6 x% ~+ E: K9 _1 W& F#include "stdio.h" " t  b( r* L2 J- n; p
main()
; `6 p& t, G3 ?# l8 t2 |  }  \! d3 T{ ; |* ]; K5 A1 J5 {
int i,j; $ j9 Z6 U& N* a' R! l. P  z" |
for(i=0;i<8;i++) 9 l" g% v: H7 M6 F8 ~4 \- o/ B3 R: w/ m
{ 4 G8 h- h4 s# n2 v- h7 y3 R/ U
for(j=0;j<8;j++)
& ]6 G8 Q: u* V4 g2 C2 \' `if((i+j)%2==0)
: V  |3 I* P7 b! M; qprintf("%c%c",219,219); ! _/ B! Z2 z: F6 h
else ' @7 {' p( ^& z' l# o
printf(" "); 8 f, M5 S' e  Z' R
printf("\n");
( Z/ V) I' D' A& A7 B' n1 c- b}
' j% V! b2 p" Z# F: x}
9 f/ g- t% U: I( @+ w============================================================== 1 q4 s( n8 g. q: h( V
【程序108 N9 [9 j* v) p. y2 ^  s6 F
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
  i1 n# }. y# s) S  U1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
$ i: g5 a2 W: S1 p% Y0 _* r2.程序源代码:
- t& k  s* w: S2 f* w5 s#include "stdio.h"
) q& [6 N0 j; ?7 W# [main() 6 s8 G- r9 _6 q  r- A
{
9 m- P3 N: P6 e3 jint i,j; # v  l! `2 B5 J6 c% G/ i
printf("\1\1\n");/*输出两个笑脸*/ ! k$ w7 i; ^$ Z1 G
for(i=1;i<11;i++) ! I& P5 D+ v5 n9 P
{ ) n  n$ l) l6 B& J6 B
for(j=1;j<=i;j++) & b2 q' E1 R/ @3 `& R# z" K
printf("%c%c",219,219);
& K) O% }, \% C, Bprintf("\n");
9 I4 ]  q! }/ ~% j} ' I9 v( t- k. o, A% r+ s8 j- \1 Q, M
}
& A" J6 e- f# G# S' n; L2 A) K+ a/ v  C" r+ H

" i9 y# @% d/ ~. \. B& k, F( O' A. w3 \3 l1 P& @
作者: zhlei81 2005-1-22 11:29 回复此发言 ! {1 G" N( z. f, l1 @) |: ]1 l
# F) Q4 `1 D1 ?' O, z7 ]
-------------------------------------------------------------------------------- 4 k9 H. g: O9 n

/ Y8 n0 `! |8 M8 \4 A8 x( S4 }3 回复:经典C源程序100
/ P; _2 K8 _% k6 k' b3 f4 x" }8 ?" S【程序11
7 ^. P: f. F, l; {+ [1 F题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
: K8 R" j4 M7 l+ Y: k; t/ w; N后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? / C9 Y9 P- h1 T9 b/ e" ]( ?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
$ ?. g/ g# @$ ~2.程序源代码:
% W+ U9 L0 N  F' kmain() % @2 [4 w* z- Q3 q/ L
{
# I# Q1 F% J! H3 hlong f1,f2; , `. ?% D& M" P0 t5 y) n
int i; 4 a2 J6 Y5 F" `5 r* |% E1 p. m
f1=f2=1;
) D1 f+ R; s2 V! d* Ffor(i=1;i<=20;i++) * m: v( l# X! \& R, t# f9 x( W* P
{ printf("%12ld %12ld",f1,f2);
  u  d" j; {2 B  Q* _; I+ A+ wif(i%2==0) printf("\n");/*控制输出,每行四个*/
3 c" D1 i8 _; J/ kf1=f1+f2; /*前两个月加起来赋值给第三个月*/
5 f! L9 `! B- o% Ff2=f1+f2; /*前两个月加起来赋值给第三个月*/ 9 H3 y- ~- K6 r3 l: n* W2 v
} + g  C- k5 F9 }% P8 I- Z3 h. u6 q3 O
}
" {& M2 v! ~4 l: @- p0 b% `9 z& }============================================================== # b+ ^. u' z% ?" Y# w
【程序12
7 |0 c/ d9 B* Y题目:判断101-200之间有多少个素数,并输出所有素数。 9 x& Y+ ?" K2 c# |9 t  A  z
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
0 i0 S  ~$ V0 i则表明此数不是素数,反之是素数。 ; S( o0 G0 W8 \2 t
2.程序源代码:
4 o6 ~7 N- x4 u: A, y( W#include "math.h" - ?8 s& c2 F" w1 i. h3 A" y6 @
main() , z  ^/ d; K4 N( o/ e. c* X
{ 0 Y3 D  g) C  R) d- G9 F, U( O2 L( J
int m,i,k,h=0,leap=1;
0 c4 L  a3 N. fprintf("\n"); 1 h+ @0 y* i& N* Q- W
for(m=101;m<=200;m++)
) r6 k. d( ~5 ^4 v* P{ k=sqrt(m+1);
$ @$ X: V6 G2 i/ |+ }for(i=2;i<=k;i++) 0 o2 m5 F- K3 y
if(m%i==0) 6 b3 S3 t' W; j! x* m4 ^
{leap=0;break;} + |( m* o2 W+ Q2 |
if(leap) {printf("%-4d",m);h++;
8 j- F! \) X$ x& ?- Z' s* kif(h%10==0) 2 d7 X0 ~: W3 t4 |3 K8 j
printf("\n");
8 R( d  ^$ K4 Q3 \}
# Y2 ]" z7 V- b* ]leap=1;
6 J0 c" p3 Y. C; y} 4 R% P% }4 J- z. h
printf("\nThe total is %d",h);
! o9 }1 ]8 H2 }/ i. h9 x3 p}
4 y- B1 K, v5 F# o/ s==============================================================
9 E& \  ]( O" R3 M; U【程序13
2 l0 P! Y  N: n9 H- I1 }3 E* \题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
3 r& E% m# O( m4 e5 w3 K* m8 @本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
- J& Q8 F8 h0 t, [5 K- K8 e1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ! D2 a8 Y  v0 C4 X
2.程序源代码: 3 N, e, E5 ?. T1 i7 P
main()
& ?2 O* N3 M, k+ l0 ?3 G{ 5 }9 Q# P9 r/ a0 r% y
int i,j,k,n;
" D: J' [1 |4 x8 S1 ~8 s* r! X. vprintf("'water flower'number is:"); . j4 j" A; C% E7 D
for(n=100;n<1000;n++)
8 d% ^+ ^, W+ k{ : H  T0 @; z9 s5 [
i=n/100;/*分解出百位*/ . S$ C3 P% I( L$ {
j=n/10%10;/*分解出十位*/
4 q2 V/ J+ L2 Y! T/ Lk=n%10;/*分解出个位*/
5 Q' y+ D9 `* R' i! jif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
" w& {( m, e  B2 m( s{ 7 I8 b7 C& X1 d) D+ R- p& Y6 e+ W
printf("%-5d",n);
3 w8 `9 G' ]) q3 a}
; k* f: G& Q% c# I} 0 N2 Y0 V" _4 K
printf("\n");
' X! F, a5 n3 n* ~+ X3 q}
5 r: u7 U7 l3 {. I) D- a, i==============================================================
9 M4 t- p6 a- z7 M. T【程序14
/ G+ B8 m9 K: k: p3 l7 M4 z题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5( s( V: q8 C' Z# N- |

. B+ _6 O9 Q9 F' h程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 8 n0 }& W- H! H# D
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 # }" E! @- J; [: C" _9 F  n
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
0 I8 l9 K1 d2 n重复执行第一步。
0 a3 m* J7 i: K& N) p(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2 I3 E& U, a& H$ _8 {- N, \8 ^3 J: ?6 ]; V7 q
2.程序源代码: 9 y' K: Y' Q1 k
/* zheng int is divided yinshu*/
1 [  x& Z3 W) M( H" gmain() ) Q4 d3 T+ I0 ^. v
{
9 S3 Z  @2 q$ G: `' A; C& ^int n,i; # ]9 u  O- B) p) s2 J/ {
printf("\nplease input a number:\n"); " r; V3 c$ ^7 n, Z
scanf("%d",&n); 8 X# j( L1 j, e9 U0 P
printf("%d=",n);
; J0 S; q4 r% _+ D1 F1 M4 D- pfor(i=2;i<=n;i++)
+ k6 o# A5 h' r+ l- ?$ c/ r{
3 Z5 d$ G7 |" c8 }3 o/ _while(n!=i)
( z$ u/ ^7 p6 w2 Y{ * k0 {, i. b/ t' C0 z; z* g
if(n%i==0) , m6 u  u6 Y8 i* m/ z
{ printf("%d*",i);
& I1 R: R2 o/ Q; ]  `& ?8 ^5 B) @n=n/i;
% C8 m: {  Z( A3 t( H}
6 B+ n. v" K9 N" T0 f% Telse 1 t4 q  h/ T2 I, Y% {% |, q
break;
; k+ i* d9 x: V1 [% ]7 G% c  d}
- |. Z7 V0 w) M" V  o}
* n: c/ o& R" ~2 oprintf("%d",n);}
* P7 R6 A( D2 b8 z1 H$ _$ [==============================================================
& u0 \4 H, O5 v% q1 C【程序15
* ^6 V( A9 j" {& k" p4 K题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, 8 _/ x3 U2 g3 I  o+ N4 W1 K9 E% M
60分以下的用C表示。 " O7 c/ h' R; z
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
( k- j0 p* Z7 f6 e! o* \2.程序源代码:
8 ?1 s! g, r* m1 Amain() " U. R8 D2 V' S8 N
{
3 z: w, z2 v7 u  r: lint score; ! J# k6 f* k% z* j: B5 T! k
char grade;
4 M5 Z* A) s# |/ Oprintf("please input a score\n");
% l9 J( Z1 H6 `! M! r& F$ dscanf("%d",&score);
8 `+ }# `; F, c9 L) ^grade=score>=90?'A'score>=60?'B':'C'); ! J- y- C# b' u, {; r
printf("%d belongs to %c",score,grade);   O/ I5 N: g; O) E  h0 s" u
}
% s- Z! O; P* y$ \0 l+ g6 W& A==============================================================
0 J0 S' x) N3 V
8 T# D( x+ Y0 O' @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 17:37 , Processed in 0.187500 second(s), 25 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表