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

C语言算法6-15

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序6
# ]/ Z, m* a& \7 Q9 w0 y3 C3 {题目:用*号输出字母C的图案。
; W9 R3 N8 J: C, Y; H$ B  |1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
. w5 A9 R3 @; n2 x0 @: ^2.程序源代码: * O+ F8 P( [- ~) e- y/ o# m
#include "stdio.h" % Y3 Y, U+ ?& C4 U
main() { 3 H) j# [& V$ I* ?
printf("Hello C-world!\n");
. z& i) |) C7 l/ C9 ^printf(" ****\n"); 8 i2 D1 X( A2 b! s+ k( _* I4 w
printf(" *\n"); / @, G& D* ?" J  n- [3 E7 t/ \- U
printf(" * \n");
& v3 [; A/ N, K- E- ^  pprintf(" ****\n"); }
( N$ u" J5 ~; I5 k* r==============================================================
7 x4 b- g7 |; i+ y- M【程序7
$ l6 ^0 p* [2 `9 w题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
% N% i5 P2 ?  b; }$ o6 I1.程序分析:字符共有256个。不同字符,图形不一样。 ; I8 k- H; o  Q- `% `- `1 `
2.程序源代码:
, s% J, Q+ P/ r4 u0 T+ W# y7 X#include "stdio.h" , d# v; X( K2 l
main()
4 @! Z/ c7 R+ f* p5 |{ " {4 Q" ~& D7 P* M% V3 C
char a=176,b=219; & ~  c, n# ?# ~
printf("%c%c%c%c%c\n",b,a,a,a,b);
$ n' f3 \; ^* \1 @; J4 f4 qprintf("%c%c%c%c%c\n",a,b,a,b,a); : U$ J7 R6 ^3 _0 p/ X+ H
printf("%c%c%c%c%c\n",a,a,b,a,a); ( ?3 q$ E8 O9 D/ M
printf("%c%c%c%c%c\n",a,b,a,b,a); 8 s6 {4 f0 m+ X4 c4 O* E
printf("%c%c%c%c%c\n",b,a,a,a,b);} / ]$ g3 {  j( D( R
============================================================== % _* e; r$ Q; J8 M; T! e4 r5 K- ?
【程序85 Q" g; r5 [5 Z1 Z5 U- l$ z
题目:输出9*9口诀。
9 E+ J& G" j8 @: V9 e1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 , H3 [' x' @0 X
2.程序源代码:
2 Q6 h. _- I  w7 l; Z; k* Q#include "stdio.h" 1 y4 R8 k  ~4 z  p/ I- g- c, V
main()
! E' Y  q9 u; A* n9 b  }{
: m9 n% r  }/ o! s! I# }int i,j,result; 8 z; ?# F) I% J( U
printf("\n");
( j% w  x7 n/ B$ }% M' Z7 _for (i=1;i<10;i++)
* c. S9 a3 w* V1 ~6 P$ x2 Z{ for(j=1;j<10;j++) 8 a1 C# j' N( d$ `1 `
{ 5 Z; Q* O/ K& c" N% l3 u2 [4 `" `- e
result=i*j; ! {5 d0 j' y3 j+ ]' @
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/ ! E  `3 e1 g/ a( P' U! Z, B: M
}
7 W; f. n# }# _printf("\n");/*每一行后换行*/ 2 l) J, h/ Y: T( w& Y9 c2 X
}
2 l- t( O6 U. r( r! o} ) a4 p! M, P) H1 n) k$ u" v5 G. \
============================================================== 5 p/ g- \8 P' s
【程序9
6 `# h+ b+ N3 [7 a& L7 v9 C题目:要求输出国际象棋棋盘。嵌入式学习企鹅要妖气呜呜吧久零就要)9 e. Z# f) c) W% z" A
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。   ~/ T( ]" P5 h( c. d: m. ?- B
2.程序源代码:
( @) k! L) E6 P6 x#include "stdio.h"
* d; W6 u+ j: @7 V* X6 imain() 6 U. `' M1 j8 P9 @0 j$ I/ v3 u
{
, {9 `2 ^$ l/ W7 d5 Wint i,j;
" o$ C" q& M5 O2 g0 R3 \for(i=0;i<8;i++)
/ O6 n7 i! o  V9 E8 G) c{
  I; x) O, \4 Y$ F- lfor(j=0;j<8;j++) * V- `% ^1 B, B$ o4 Z) h. ?
if((i+j)%2==0)
  o" `. `8 t2 P! x6 `7 I( i; gprintf("%c%c",219,219); 9 _- P0 \) }9 i; K! d5 D7 o7 f: \2 Z
else
6 t. B& [  }4 f. Zprintf(" ");
0 ?! G: {3 Z) Z9 C7 dprintf("\n"); & T  p3 v9 |1 e' `' d) l! l* W
} : L( h# h2 H0 M2 K6 r5 D# _
}
9 L0 J7 ?  q7 Z7 F. R2 w. C; a============================================================== / }- E5 n0 g" c1 X, c' Y# a4 }: }
【程序107 y) o4 t. `: j: v9 C
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
$ z) p5 ?% N: f4 \2 o, l1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 1 o5 Y* B0 p* d( Z1 u
2.程序源代码:
- o/ h# O# c8 g- `#include "stdio.h"
' F) j# E# z6 _+ T/ cmain()
% b$ A5 |6 ~2 ^$ j& V3 {0 U{
. f6 }, r3 V8 eint i,j;
: F! s& O( O6 w' rprintf("\1\1\n");/*输出两个笑脸*/ ( |3 Z9 L$ z! C( q6 L; E
for(i=1;i<11;i++)
! L% j: ]7 N, q: ]4 f5 F{
) q8 [, O) y3 M9 Ofor(j=1;j<=i;j++)
: z8 r! D2 o$ o2 h0 l/ Zprintf("%c%c",219,219);
- P4 o+ d$ J% f% iprintf("\n"); 0 p3 P, e9 K0 L( d* u- _
}
' `! N1 C+ }2 ^1 k  K) S}
/ a/ H) f& s) h  l$ E: U# d
0 G  c' X5 \! N; O: ?. w; A. \& T, O( L4 A( O

0 X/ j. K7 t$ E0 i# j' p作者: zhlei81 2005-1-22 11:29 回复此发言
# T. z9 D$ O. g: z$ t& A- p+ J# R6 \. H0 l
--------------------------------------------------------------------------------
( t! o( ]: n8 k. s/ m  z8 I- \
! z) _0 o% q7 ^! \4 X5 j. K8 M3 回复:经典C源程序100) e! E/ H- M. y
【程序11. [- G+ J0 e9 Y4 k8 ?) ~
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 8 }, ~, S/ B( C& F2 \
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 G2 p" G  D$ v8 k5 Y) H2 Z7 _" Z1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
; _) ~/ w. G5 y0 h5 M8 e2.程序源代码:
# t: X, d/ F- s2 I. _: x- v, H( G% ^main()
: T. F# I( S/ n, w# A) p% k& J{   X3 w; H' J9 E; p! ?
long f1,f2; # I6 M+ M4 ~) s
int i; / k1 O1 @" G" V' {
f1=f2=1;
* ^% A- y. U( a% `; tfor(i=1;i<=20;i++) 9 h0 e- W. _/ Y
{ printf("%12ld %12ld",f1,f2); 6 a: N) V: X& _/ E- R" K# V
if(i%2==0) printf("\n");/*控制输出,每行四个*/
4 s' F9 l7 z5 X1 L% L; \f1=f1+f2; /*前两个月加起来赋值给第三个月*/
# ~& y' ^) I" [7 ^* L6 V! |+ w, Hf2=f1+f2; /*前两个月加起来赋值给第三个月*/
6 h6 y( S, l6 a& q- J2 k& J, g}
3 \8 |) Y" ^' @( H5 m} * ~% f$ B& S' A6 r
============================================================== # c# a- [0 e1 \  T4 V
【程序12
5 j0 ^' i, B! r' H" [题目:判断101-200之间有多少个素数,并输出所有素数。 ) C  f: P( X+ q  e
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
2 y! f9 j, \( [% k6 I) T则表明此数不是素数,反之是素数。
( d- I% u4 d8 Z3 M- ?9 G; B& K: c2.程序源代码: ' ]0 I: J+ l! u% u( F
#include "math.h" 7 _% `2 n! w* G* G3 p
main()
, F5 ^) v2 R6 ~$ {: @/ i2 z{ ! {7 d3 ~" n3 m. y; w7 v
int m,i,k,h=0,leap=1;
0 a! m3 F  k- J8 eprintf("\n"); ) ~2 K) {! z% B+ D8 B+ C5 M: ^
for(m=101;m<=200;m++) ( B8 O! d/ `. q- a" R( y0 O0 R1 B
{ k=sqrt(m+1);
5 p$ |% W( S3 f4 d  }2 dfor(i=2;i<=k;i++)
, X  P9 z5 [; Fif(m%i==0)
* t, M0 i+ @2 e  y% i& J{leap=0;break;}
- m) ~! L2 Q! a# Fif(leap) {printf("%-4d",m);h++;
0 _4 d  n9 z" ?; |# P' lif(h%10==0)
, l% d$ }7 n( s. W  L" u% Wprintf("\n");
( b5 o* O$ z$ N* O1 x* o. D) g}
% W& ?" X/ t- i3 fleap=1;
& x& f  Q; _! S0 F5 a5 f}
* A: ~4 v% I5 U8 N. }& zprintf("\nThe total is %d",h);
8 ?: y! q; _, Z' p  c2 K}
6 L3 F# N2 I. k: \0 K==============================================================
$ t' Z' K* J4 K- b【程序13
3 A1 L3 }4 V. P6 u! @) P* p题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 0 K+ w3 z& v0 s: T
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
2 t0 w0 g4 Y5 l9 ~9 B( X- v1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ) ~5 T% B0 ^  O
2.程序源代码: - D  z+ l3 t8 B: h& w' z+ z5 k
main()
' G' n" v: o& @/ D# l{ ! o4 m! s+ p+ }- ?
int i,j,k,n; . o! Y# v4 a- c0 M0 B, `2 M; u
printf("'water flower'number is:"); 2 v/ }4 I2 N; N0 j' e
for(n=100;n<1000;n++)
3 e, J# v2 R) k# u! C* z{
, X. S- }  o. y& r% O  Zi=n/100;/*分解出百位*/ . i2 X# t, R6 `7 P) v; h4 D
j=n/10%10;/*分解出十位*/ 9 K; A3 e( k/ }5 Z: A# p: e% y
k=n%10;/*分解出个位*/   p9 c6 Y% d! m. a4 V+ p- O8 r
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
, p4 |7 F# `! e  R9 E% Y{
, G/ t$ W) J. K/ Q  Gprintf("%-5d",n);
1 e. g  M/ L* V* H5 O} 9 `5 w0 ^+ }0 r6 ^
} 7 [0 L# J! [; [6 z& a: o& v/ T
printf("\n");
; T* o% F% O7 A  q}
0 a* w( F0 w: |  O- W5 a==============================================================
) p2 L4 s( t1 f# z5 ^【程序14
( ~0 @7 E. v* N/ z8 k, k: J7 g题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*55 f6 P8 q% a) `* B

( P3 Y4 H8 \1 H# m- T程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 0 h. m7 x4 k+ ?* P4 K9 j2 s* ~/ ?
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 8 D$ r+ x! p7 ~0 R) L3 C+ v
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, $ [0 g/ n: u6 c; c
重复执行第一步。 ( F7 ^" A  n* @* [* i9 U
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
& ?5 c1 Z/ X; }0 X5 N0 L; w
- \- ?6 x1 x# t: G% G0 Z0 Q- f  z2.程序源代码:
& @/ Z- L# C6 `% \, }( U% M; v/* zheng int is divided yinshu*/
$ W* f. W2 O3 @5 Omain()
& E5 q* l+ p  I% P" z7 H% ]{
% m- N( U5 S7 @4 |7 gint n,i;
3 b5 c5 t/ r, }3 E7 K0 dprintf("\nplease input a number:\n");
( `9 |, F4 O+ j0 fscanf("%d",&n);
6 Z6 o- A1 P( C+ V" Sprintf("%d=",n); + @+ b6 }- p7 O9 ?
for(i=2;i<=n;i++) " J3 ^0 a2 `2 h, t; v2 L' c4 N( B! z
{
( m) R! M) ?! n1 r2 E/ _while(n!=i) . ~7 r/ L8 p4 u# g" h" M+ g% `
{ - `  c( L1 b, {( |+ H0 l" g& J2 k
if(n%i==0) , ?5 Q' l2 ?1 k8 \5 V
{ printf("%d*",i); 7 v, ^4 h, D; E' P2 x
n=n/i; 3 e7 l' v" }5 T6 N7 x9 @
}
4 x+ C/ G" `. c) P$ Yelse
/ K' O4 g& {; I: r5 N! i2 pbreak;
/ m" x; |5 T) {! Y}
  t. F* N8 ^& T3 q: ^' m+ P  e} 7 a1 [3 f) b# O5 ^
printf("%d",n);}
2 y9 a; C, q& v/ X; Y: ]: z============================================================== 1 X+ z# ^3 s' ~% O# Q
【程序15
5 b4 {2 y$ Z" {题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
. O6 d9 e/ K' x, ?. R60分以下的用C表示。   J( @. i' r. n7 x! c. s9 a
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 / c+ o* F) L( B
2.程序源代码:
/ @/ g$ A- c. P9 f- Ymain() / |$ B; y+ x" ~- ~& W. {5 ~
{
5 r, g$ d$ L7 qint score;   m) w( S0 [  }: _$ N1 Z
char grade;
5 |6 [1 C" e; x3 `' vprintf("please input a score\n");
; D* p2 a$ ?) x- Z- xscanf("%d",&score);
$ S+ l8 G+ }/ y" Tgrade=score>=90?'A'score>=60?'B':'C'); " z+ f# Y& z- f& e% m' k4 C* m  z
printf("%d belongs to %c",score,grade); # G4 O, T: |) V2 g* y7 X) L
}
8 s* g) K1 ~$ f6 ?/ E# L2 r7 h2 t==============================================================
; V4 v  m5 |  r
( [& L7 a( |0 i, [' \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:23 , Processed in 0.171875 second(s), 25 queries , Gzip On.

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

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

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