找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 67|回复: 0
打印 上一主题 下一主题

C语言算法6-15

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
【程序6
+ p  f+ A6 L! C# y  r9 ]题目:用*号输出字母C的图案。
. s( f4 w# g' F9 S$ f' p1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
$ ?* z$ u% \4 B2.程序源代码: ; t% ]1 i  j3 h' A% L! ~& t
#include "stdio.h" ; i* n4 L) G" U" y! Y
main() {
4 k: [1 r. D& M! [% Y0 iprintf("Hello C-world!\n");
" Q8 v2 f$ O! o# W2 |6 E6 Tprintf(" ****\n");
2 M; W. ]6 `$ K* \, }' Sprintf(" *\n");
0 i, c0 K, A. m$ w: ?( pprintf(" * \n"); / h3 M: H* Z! u
printf(" ****\n"); }
" B* ?$ M9 H/ o9 ]7 |( |- h============================================================== & ^& a+ A, ~4 `" z# D7 l
【程序7) n1 s8 W, d# F' U5 g" V9 K
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
+ P; w1 r1 _% i2 A/ R2 A1 I$ c1.程序分析:字符共有256个。不同字符,图形不一样。 ( w4 G, E6 q3 @$ t
2.程序源代码:
" i" n! d3 A8 D& ~% h! q#include "stdio.h" ) A( B; \" S+ I5 m+ t! H
main()
  X/ q, m; u+ `+ @6 {{ 7 |1 g' j! h  q+ f
char a=176,b=219;
6 p* X7 \0 b& ]! I" N2 T# Qprintf("%c%c%c%c%c\n",b,a,a,a,b);
" f. a+ Q5 W* J: x1 P; D( Xprintf("%c%c%c%c%c\n",a,b,a,b,a);
: A/ q; @9 Z2 |; p% Z$ e: Oprintf("%c%c%c%c%c\n",a,a,b,a,a);
! \& n# O' D3 Y+ K# Jprintf("%c%c%c%c%c\n",a,b,a,b,a);
+ K- r& i6 B) \printf("%c%c%c%c%c\n",b,a,a,a,b);} 6 o0 x- W5 O' ^2 i! i6 n
==============================================================
: W; H& W; y0 H: ^【程序8
! T* e( O- T* K2 @" ]# M1 s6 s. [题目:输出9*9口诀。
7 _/ v1 V& X7 h2 k6 @" D1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 3 {. p; u6 p& e4 F6 }' a. I
2.程序源代码:
3 O8 m; a/ V  J" I8 A#include "stdio.h"
7 _! [2 Z2 X" v" Mmain()
* S  j0 Y6 n' Z0 i6 u1 ?' C{ 6 s# f* [& m, V) L
int i,j,result;
8 R+ P5 @# I: B/ N  sprintf("\n"); - r2 `0 D0 H+ N0 z& A/ @8 Q/ u
for (i=1;i<10;i++) ' p9 [; H0 l# q7 {
{ for(j=1;j<10;j++) - e7 o: H2 y  c+ A& o
{ 8 m; X1 a9 d8 f
result=i*j;
) a) ~8 p: e) o- g2 T/ r- L) |printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
5 z3 z- V# B# d6 P  m4 b1 t; X* c} , _8 s- E6 U% q  y! ~) J9 J. C
printf("\n");/*每一行后换行*/ ; U3 t- g9 j, ~$ G% F
}
& k/ {5 o& T% A- R& B} - M! H/ {! \6 F. s' {. z
==============================================================
# P7 g& B* D+ E) c/ w【程序9, w8 f2 U& v7 y6 b  s: {& L( N
题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
: n& \8 J9 m6 U' y1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
+ W4 l: e- ^1 B8 |2.程序源代码:   i( c8 E! y1 x! a" O
#include "stdio.h" 0 g- W- n% d' ]0 G. r
main() ) @: @  F5 m! u: n/ B. R1 w
{
3 ~( ~. P' s" t* @int i,j; 5 \6 u# C5 ^3 r! V: M, p  V$ |
for(i=0;i<8;i++)
2 S; T# G% r- C7 e, O$ a{
- @! m" B: i' F, H4 Y' U; a; C5 |1 Ufor(j=0;j<8;j++)
3 L3 ]7 G9 ?3 X5 Iif((i+j)%2==0)
& q% k; f) u: v2 Y7 xprintf("%c%c",219,219);
& N4 p$ B2 J5 e. Z, M! Yelse . e  Y3 Q  p6 d/ T; C+ @7 U1 b
printf(" "); 5 r# q. z) n4 E0 H9 P  N
printf("\n"); , }6 q; V0 k' P* p) F, W5 @
}
, e5 w% F5 s. B" n4 V! ]}
4 o* d  Z5 p3 [% A6 U7 U==============================================================
1 b- o) }: h% {! D4 L- o0 N9 ]+ x【程序10
% N3 Y2 J% b( r/ l2 u7 k2 u) N题目:打印楼梯,同时在楼梯上方打印两个笑脸。 * x& N. _7 B% a4 U: ~% ~2 X
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 ( O2 s- V5 y: @& t& R3 a
2.程序源代码:
7 n: {$ h, @5 O5 Y3 D4 Z$ `#include "stdio.h"
- x1 X8 I  Z4 Tmain()
% N; w/ O" Z  ^' q{ , d+ n0 G' l. I) q
int i,j; ( C' D8 G; R$ |8 ]  }
printf("\1\1\n");/*输出两个笑脸*/ / s  e2 ?, X" m4 j7 f! {% T
for(i=1;i<11;i++) ' e$ J0 t  \$ x- [4 T- \$ y' f/ e8 ]+ O5 ~
{
/ @) `) h& H; m7 p: E+ Rfor(j=1;j<=i;j++)
  n$ Q4 Q% p) Y/ l  c, v+ Gprintf("%c%c",219,219); ! Z# H9 d7 e1 t: N" s* S
printf("\n");
6 H* U2 l+ a& L2 c# y% B}
  s; H3 y4 C7 l2 ~) `- \  [} % P; \8 M! u1 O
# H& f* w5 Q. }5 y, f4 B

8 F4 q1 V; R6 G4 j/ k' r  b
% X$ O* S) n0 v6 d5 w& S作者: zhlei81 2005-1-22 11:29 回复此发言 7 O# c) z2 n  Z+ O5 N/ m& u

& c/ U8 d9 J9 d-------------------------------------------------------------------------------- 7 \/ ?$ Q" k3 L( A

  [/ q. Y5 p( T) T0 x3 回复:经典C源程序100, V4 V9 S! \' C/ R6 ^
【程序112 ?3 ?  m1 w& K) r
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
  ^& B1 T" I5 t) o后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
; Z3 p( N( H4 Z; }( }- L/ a1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
8 I5 F5 P6 V% x& \2.程序源代码: 5 w1 s- |: |% G# b6 j
main() ( s- o, E6 T" j1 U' e& s* E- V
{
5 L5 U7 S+ M. Z; A0 Ilong f1,f2; 6 N% d; _8 K' `/ V: ?, C
int i; . e/ h2 d7 Y+ n3 }( ]6 x; j8 G
f1=f2=1; . D. r8 Z# j! M
for(i=1;i<=20;i++)
2 i6 ^& k) R! a6 V) b9 @: W{ printf("%12ld %12ld",f1,f2);
- N! r' w6 c' F! R( M& y; Jif(i%2==0) printf("\n");/*控制输出,每行四个*/
/ p" D6 {0 V7 P6 t/ @: y; t: H+ s* k. [f1=f1+f2; /*前两个月加起来赋值给第三个月*/ * I9 f. v5 S9 r8 `0 j& |
f2=f1+f2; /*前两个月加起来赋值给第三个月*/ 2 f4 s) Y% W" Z! L
} 1 X5 C  b3 E0 r" i; m$ q, J
}
1 R, V& x' H- w7 G( p==============================================================
( x1 ?6 P. y1 r+ P% V9 H【程序12& Q4 m' l1 n1 R, \- W! K
题目:判断101-200之间有多少个素数,并输出所有素数。 9 I3 }) ]0 B0 x" c% E; a! `
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, / ~$ a3 X7 J1 H
则表明此数不是素数,反之是素数。 ! F1 g# Y" D2 B3 V  ]$ x
2.程序源代码:
. U4 f" q/ J6 T" c) W8 d#include "math.h"   g% L3 r8 x6 h* `! H9 Z/ N9 G
main()
7 z2 R/ j" r; b. }3 ~5 [{ 8 L% Z- g1 D, d& P) ]; x2 W3 s3 F- Y
int m,i,k,h=0,leap=1; , p0 s9 T- j/ p
printf("\n");
& D; m1 A3 B, j# p, Ifor(m=101;m<=200;m++) & T" r, @$ `+ R
{ k=sqrt(m+1);
  `) H* F* T, w: yfor(i=2;i<=k;i++) , u' n3 e0 p2 L( r1 _9 b( G
if(m%i==0) . m$ e$ x! o" `) u
{leap=0;break;}
7 n' j% A1 p" i: ?if(leap) {printf("%-4d",m);h++;
. X' o9 P% b) _8 @3 Qif(h%10==0)
% b1 j' [% f/ D8 c. Gprintf("\n");
/ \/ ]. d$ D' z: k9 L}
( W3 w) C8 _6 O( K& E! O% M5 |leap=1;
! ^* ]' X% \! ^: |}
: f# Q1 v' ~6 I# @8 ?' v3 D0 W% rprintf("\nThe total is %d",h);
$ Q* m6 l2 ]1 v2 m0 O- ?}
9 w4 r6 a+ }$ b( b+ a4 @& ]3 [7 n: H============================================================== 2 V" ?7 L- B0 Q4 N- V6 |! Z, i. n8 p+ ^
【程序13$ ^+ u0 W! K6 o" v. C  ]0 c
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 ; m3 P+ P" e0 P& C2 {
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 0 i1 A; x: A6 t# [! l. _* i
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 7 I! g' x0 T3 Z5 }/ z2 c) c  l! f% o
2.程序源代码: 1 Y4 ]' s, h9 v* J4 N. [8 H' j% s
main() - ^" o& g' A: ~% X" v6 T
{
& ?0 j0 Y. W2 z4 `4 u# jint i,j,k,n;
- f3 `4 l  r! `printf("'water flower'number is:"); 3 M' `3 M3 y8 `  K1 r
for(n=100;n<1000;n++) : N; P% p" K, f" D
{
; Y. l9 P) a( ~8 w) Ai=n/100;/*分解出百位*/ 7 o: _3 W. ^% @# p; b  |' U
j=n/10%10;/*分解出十位*/ : _% [7 J" w8 p3 I: r
k=n%10;/*分解出个位*/
4 F$ E) Y% p$ r5 R9 j! y" Nif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) : ^$ K& B; |+ Y  @' ^' i
{
* I0 G) y" F- g9 X6 e7 zprintf("%-5d",n); / t! @2 W1 f3 W9 |  ]  s5 ]; _% g7 g
}
) m; k% l  V; ^+ i( W( L} 9 {* v3 }: Q* r$ m' A) P7 Y* C+ }
printf("\n");
- }" `# i1 w& ~) v, ^}
0 x/ B$ s) d# n7 {5 f' ~3 f8 `==============================================================
' l8 G2 M; e& R6 x【程序14
$ P' v3 y; I8 v: B- |+ e- I4 U' Z题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
1 S' W; J2 l. r0 A( [
  {, x# h5 p1 p$ n5 y, @程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: + p1 N- _) A  O" _  L
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
0 g0 O; |  n4 W6 H" @(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
8 W7 g0 `' `  |* G重复执行第一步。
4 h! D2 R2 K! Q- q. ~/ |. x(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 8 F/ @# Y4 ~2 k7 s) n2 _5 F

4 p; ^+ A- w, `4 _4 |. k. `7 |2.程序源代码:
2 I% J4 O6 Q0 P. Q8 O/* zheng int is divided yinshu*/
# b/ C# a4 ]9 I6 |0 ]0 smain() ) D9 b+ h1 L1 f( F* g
{ - C4 d: e1 o5 r. O
int n,i;
3 `$ U. W  R3 ~1 ]! [/ T8 _printf("\nplease input a number:\n"); 4 L2 X3 y1 r5 G" i
scanf("%d",&n);
8 |8 C) T  X2 @8 [$ a" ?0 P* b0 pprintf("%d=",n); 7 v  S) s. w6 p6 p" G/ s8 @+ \' c# l
for(i=2;i<=n;i++)
& }8 i% t8 J/ T( T{ 0 n! W4 ~1 M1 N& j% B7 x/ P
while(n!=i)   C/ K% A2 j" y" Y+ X9 y
{ 2 l# g* w% R0 {* g! d" T" ^
if(n%i==0)
6 a% y) \% p- r# u/ X{ printf("%d*",i); 1 x$ c( s/ U, O$ F& a
n=n/i;
! Q0 x- e: P$ \  `} ) `% Q* P$ G, K% M8 b( F* b
else 4 Y6 R& M' D! F! _3 s0 k
break;
5 q0 _" ~  P3 M: u} , r/ V1 g$ S4 F2 \7 q0 ?- ~
}
8 r9 S7 M' m# c; b4 L3 V" ~; Z) cprintf("%d",n);}
% K$ ^) H$ A1 d5 o& `0 W==============================================================
) g) p* Q5 P. Y: @0 p【程序15
# C) a* J, h4 o% b/ O题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
1 H: ?3 H' |4 D9 T  X: R+ }60分以下的用C表示。
/ z1 k9 y" P8 W+ a. U- g% B* r1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
! G: C$ U: r- N8 G$ ~9 t2.程序源代码:
* A$ c7 p# y' b( [( Hmain()
: }% j" l, @: O' e. [{
8 Y) n- N* X( m0 F* k6 Rint score; # M3 a+ a* P' I1 I3 K
char grade;
, a0 q* P' r  }8 `printf("please input a score\n");
& v$ @% k  V' e+ }scanf("%d",&score); * u2 y2 r( G2 ^% N4 e
grade=score>=90?'A'score>=60?'B':'C');
8 ]( S4 T8 p3 Z9 U) C3 a, t$ Sprintf("%d belongs to %c",score,grade);
5 D5 b% w) N( v" U) L+ z}
9 s  c; F6 m0 _6 W$ n============================================================== 6 E: D7 \7 Y* O) c+ H# N

  E3 i4 b( A& m9 g3 \) m9 u  ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-1 06:47 , Processed in 0.057875 second(s), 32 queries , Gzip On.

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

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

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