机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2334|回复: 0
打印 上一主题 下一主题

C语言算法6-15

[复制链接]
跳转到指定楼层
1#
发表于 2017-10-5 16:43:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
【程序6
. [' {+ o' G. l, S( ^题目:用*号输出字母C的图案。   F2 P' k: M! y) l0 C7 P$ B
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
: N! ~. G& h' g2.程序源代码:
% J( f* X) u' U9 I#include "stdio.h" 9 V  s; j3 @* q
main() {
3 b3 W3 p0 s$ w* x3 w% {" dprintf("Hello C-world!\n"); & O, v! u' J: I# M" J- [3 H
printf(" ****\n"); 8 h! `$ [( X4 z' r( L
printf(" *\n"); $ D7 X3 H' c, i/ k1 r
printf(" * \n"); 6 x" ^2 N7 V$ g; U
printf(" ****\n"); }
( U* U6 @* L* B' K( j: e============================================================== 0 p  d+ ~3 _3 ]; \
【程序7
  Y! V# z4 @+ K) [题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
  w' p, T8 @3 D4 G1.程序分析:字符共有256个。不同字符,图形不一样。
; @9 g; ]2 z  H& p8 L  u2.程序源代码: $ o9 @. b/ ~4 o# F4 S
#include "stdio.h"
! Y. ~$ x& Q; E+ |" I$ V. kmain() ; z6 @+ q. @! n. Q! q' s: w; _
{
5 o7 E1 N' M( @3 K1 B1 Dchar a=176,b=219;
9 q" |. k1 Q+ ~- Pprintf("%c%c%c%c%c\n",b,a,a,a,b);
" F9 m) W4 ]# Rprintf("%c%c%c%c%c\n",a,b,a,b,a);
/ [( e5 R) P; F7 C9 q% Xprintf("%c%c%c%c%c\n",a,a,b,a,a); 5 G% h1 Y8 N% p! S2 d  O# F1 V1 ^
printf("%c%c%c%c%c\n",a,b,a,b,a); , o, A8 W% y$ @3 S; `
printf("%c%c%c%c%c\n",b,a,a,a,b);}
$ h& T2 O- g* Q: e  x1 O- Q============================================================== ' n# V+ K" t, y/ k5 w
【程序8
! B- u- \; c% q$ C+ C9 q. u题目:输出9*9口诀。 . d/ y  b( f( W8 ]
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 5 m( Y: T$ G, g6 r
2.程序源代码: / E" P. T: d, m- R7 |
#include "stdio.h" ! x' V. S) N; i( R
main() ' J# d& c  K: A
{ / J& _6 L  X) e6 Y% Y) k, @
int i,j,result;
. R. T7 ^5 p" e& w5 Y1 |printf("\n");
, x# s3 F# `4 S5 M  pfor (i=1;i<10;i++)
- {$ p$ g  X. J3 u' [9 {{ for(j=1;j<10;j++)
+ b8 m6 t) A7 ]# G/ z{
0 [& z% m8 k0 z7 p" ?6 l# gresult=i*j;
( a, {6 V# f' K& M7 jprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
! V: P. ~' {" |; |+ `$ {}
/ y4 e# _& ^/ w* a; ]: b4 J* s5 V. kprintf("\n");/*每一行后换行*/ ' z7 L5 W' @8 `1 T
}
: b* ]! g+ m' n( N/ b} ! Y' c) l  @; K$ Z, f1 ]5 L% g
============================================================== + w) U$ [8 [6 l' C  L
【程序9
2 u- t! E# r) M( r题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
. @$ [- X  [! D4 |4 x' s- e) {1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 , H1 e+ |% E* \% {/ ~
2.程序源代码:
! x0 q  Y+ K, b4 k- c, v1 F, M& |#include "stdio.h" & y% b" T8 H! s) j7 y0 A
main()
: A+ |+ e! o( ?9 m+ Y{
& ]" N5 o( Y; q1 q# q% ]' fint i,j;
, T1 L2 w" L; v6 ~7 l2 efor(i=0;i<8;i++) " E0 U8 b! W+ P$ L- i7 f
{
0 m7 S& Y$ z% A% E0 Mfor(j=0;j<8;j++) , f+ H  K8 G: y: Q
if((i+j)%2==0)
' M' k3 m' J- l& c1 Dprintf("%c%c",219,219); 1 H! l* r2 E8 A
else . N% X& P1 r7 Z- c; g6 r' X/ U5 O, D; [
printf(" "); % y" H  K8 v4 f" r/ C0 W
printf("\n"); 1 k; i2 b& V( k
}
' @3 t4 [( a3 D. r0 t9 n: c} 9 V  _2 {* ^/ S! s" \# W
==============================================================
8 ~/ ?( P6 H2 f: g5 s【程序10$ r$ g. N& g: V$ B
题目:打印楼梯,同时在楼梯上方打印两个笑脸。 7 Q" y2 Z6 M) _$ M. S  T! ^; k
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
  r0 p' [2 c, j2.程序源代码: & Y) h& j: o" F- ~* Y) w0 s
#include "stdio.h" 2 i  }3 X" c% E* Z4 L
main()
7 j8 _  j# D$ u1 A7 N% S5 g6 s' p{ $ T' @0 y3 v7 z/ L! Q  s
int i,j; 8 |5 A% V1 o$ z( g; u4 |9 G& n/ a
printf("\1\1\n");/*输出两个笑脸*/
4 r( O' u$ J8 Q% K# @0 v' J" o1 Bfor(i=1;i<11;i++)
' p  [4 q0 A1 ~" `6 j{
1 J8 |; ?( I/ |- L# _for(j=1;j<=i;j++)
' l  B2 X* s! C: D. ^! uprintf("%c%c",219,219); % s9 t, F2 s+ b7 [1 K% u& g8 p
printf("\n"); 9 M( o1 }2 v1 P# q/ a8 o1 ~. @0 M+ |
} " g' {2 h( w6 x: P9 p0 j! |
}
9 U4 G/ Q' Q, v; M+ r$ M5 @$ E% Q
- Z9 @9 u( H: J+ a* T5 q+ e
; t$ ~* u" P$ b1 d/ Z, j6 y# L3 Z. z- i6 {
作者: zhlei81 2005-1-22 11:29 回复此发言 % y) B/ K1 N; b+ I- J

1 ]1 j1 f/ B8 @' N+ ~5 K--------------------------------------------------------------------------------
# [9 s) @; e6 ]0 b  c5 t2 S1 i7 }  }! G" f. z0 u& ~- y& M
3 回复:经典C源程序100
  W6 k; F  `# n% x6 z5 D, b5 L4 b* J  z【程序11
6 Z2 t4 t& t: N: p题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 0 _# i% ?; ^+ D, C, t
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
" T: t0 i& A! A% v( S/ k  g9 A* O1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
7 x$ I! K* b& Z3 F( N; S" y0 v# N2.程序源代码: 4 R% T$ `8 {: U
main()
0 K3 E4 d4 h; a0 G{ 3 U6 T, l* S- ~$ e, o
long f1,f2;
8 ~6 G) |7 P: p0 a  n, kint i;
$ X2 _. q  g* I# o1 k8 w8 d' Uf1=f2=1;
: P+ L+ ^" p1 B% V+ ]for(i=1;i<=20;i++)
1 Z9 W# b4 ^1 |7 ~' q4 T{ printf("%12ld %12ld",f1,f2);
, y! J6 @/ G) z) `* M9 E/ q4 N) Uif(i%2==0) printf("\n");/*控制输出,每行四个*/ 6 \  ?) Z- r  Q! f
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
) U0 D6 i, v; G+ ?f2=f1+f2; /*前两个月加起来赋值给第三个月*/
* t' d; N& d6 z" E' Q1 d( a5 t, l} % y( s0 `2 U, {) v
}
' F+ I* u# C' p! L" X7 h0 {" I============================================================== , W: n9 Q8 O& j2 ^! o
【程序12* \3 S: J8 M# m& g  D
题目:判断101-200之间有多少个素数,并输出所有素数。
5 i  J; s3 j' t( s# i  Q1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
  ?  |- m+ A& f- Z7 v  g# L则表明此数不是素数,反之是素数。 , q) l1 \# i; Z  Z* `
2.程序源代码: 4 S7 M0 c9 \& A( y# c: J0 m; ]
#include "math.h" / g7 m  p$ v, @: a
main()
8 M6 v6 Y2 ?. k9 I{ % u4 \- B$ {, q: ]. |* [% {2 p8 R
int m,i,k,h=0,leap=1;
1 g/ J  m1 O* P8 p/ K* ?printf("\n");
3 h' [7 A1 h$ ^; Ofor(m=101;m<=200;m++)
8 r9 ~+ M& g& R; F2 l( C{ k=sqrt(m+1);
: J& I1 `0 f/ k* @for(i=2;i<=k;i++)
* B& @5 \# r3 h) \0 h! kif(m%i==0) , Y$ `  y' [- o1 s/ |  L1 E
{leap=0;break;}
$ @. K4 [+ U* S8 ^# D4 Mif(leap) {printf("%-4d",m);h++; ! J; o! ?' a+ y1 o5 U: ?
if(h%10==0)
' \) {6 v3 k; Hprintf("\n");
5 [) C/ M# F" S5 J7 \} # g8 n/ {$ k' G7 v' e
leap=1;
& v- M4 q; B; t$ u& Z% U4 r( _}
, q. g& t( A5 S& H4 ]$ q/ J& ~% P0 E" Zprintf("\nThe total is %d",h); 9 ?" m) U) X0 X; ~
}
3 E2 H0 a( c( w$ @2 n9 y============================================================== 6 [) [" [* w. W3 _' E9 D8 a
【程序13) X. r- F( r" s7 S% E, z3 j9 e9 d- P
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 . n& w; J# ~; o
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 4 j) {, t  r* ^+ c
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 6 W" c* _" ]8 S( \
2.程序源代码:
* n0 P" w7 `3 p! V( D# dmain()
5 t; ^2 Q! p2 g{
  l- L8 ~6 o* Z# |  p% T8 M- F; Rint i,j,k,n;
( v; `( s6 o5 \, n2 Vprintf("'water flower'number is:"); 8 D- {# e, n2 C* ]
for(n=100;n<1000;n++) 9 s" U2 n* @( K5 B/ v
{ ( b2 [/ y  A) ?3 ?+ I  k. q
i=n/100;/*分解出百位*/ 4 l( S3 R. t2 E( V
j=n/10%10;/*分解出十位*/ 9 Q2 v  H' ~8 [0 v
k=n%10;/*分解出个位*/
, K1 p* k) b% h  Aif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
" }  A" z" F3 |! d: d# a{ 5 g! _  t$ O' W6 z( Z* j2 t
printf("%-5d",n);
$ ~( i: k4 k% k. C# Y- u} ( a- m7 i9 J3 t; G: m
} + T8 ]0 }3 d/ T+ ~/ `
printf("\n"); & X1 p0 u% X# E9 ]
}
; g1 N" A) a9 S* h==============================================================
# F7 e! U' g( Y; [, f# v& g【程序14" P* h& ]" H0 ]& }- J4 d" {
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5" o7 S7 O( J; |- V

7 x4 f3 x% a! V4 C1 ?- Q7 X0 @' S程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: # k* P8 {/ A0 w# w& F
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
  V" D! W: H' H(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, ( i" H# a; B  z# ?0 }" q" s
重复执行第一步。
/ b1 d" t& r) b6 W(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
; G$ X* ?7 [6 N1 \) S. ]
! Y2 C+ }* p  W% q/ L2.程序源代码:
, G1 \* d2 A/ o! w' d, Q: ^  D7 I/* zheng int is divided yinshu*/
5 j3 P, E4 C. r, S- _main()
* A6 n! u) {, F4 A5 q$ g% C0 \' E" Q{
. i) }! A; }8 L' u% b2 t& O$ Cint n,i; . v' i% m, b# k6 a7 j: x
printf("\nplease input a number:\n");
- }  c& ?. y* ?) S6 ]2 Vscanf("%d",&n); 5 S' e7 G  |+ G
printf("%d=",n); 8 W. Q- i! _9 ^
for(i=2;i<=n;i++) # k! |$ ~. V) j7 f! m
{ 1 b4 `* \6 x! ~- p$ P" Q) H5 G
while(n!=i) & a2 L4 _5 E4 O; l6 l
{   x8 ^! ?& i3 G  N
if(n%i==0)
# [5 n  E7 w7 r& c% |  W8 u6 d{ printf("%d*",i);
: @2 x1 q) P4 t7 I9 en=n/i; 6 Y% D7 ~& B/ N! r9 c( f
}
* q/ `) f( H" l2 B- e. w( Uelse
9 T- b: P5 `+ Abreak;
: B! W5 n# s# g* o1 k} & h) y: y1 d9 ]+ r* C
} # H" ^" v" d1 j1 D: X
printf("%d",n);}
. j4 _* F, f4 k4 \/ B0 k& C==============================================================
! M/ d9 e, x1 u3 ]; A【程序15
, }. @' r6 M) [6 U题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,   |2 W- ?, f9 H, P9 v
60分以下的用C表示。
  P  O% Q( Z- D2 C( _9 L: s1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 / t7 I& Q; U, k
2.程序源代码:
+ S2 ]& j0 w% q& V! N! vmain() 0 I' a- i; Q4 n- z1 L
{
7 V8 [* R: x" O; {- uint score;
7 f; _5 G9 z' }- `- O: K8 m. z1 zchar grade;
* f5 a9 d1 h5 s. _1 Gprintf("please input a score\n"); 8 p! Z0 l% ^2 Y7 ]7 t& S1 b# r! t
scanf("%d",&score); " K# I- q/ ~/ D) Q
grade=score>=90?'A'score>=60?'B':'C');
) J- Z1 g  W9 cprintf("%d belongs to %c",score,grade); ' a, X6 z) A, r6 ~4 R6 F+ K
}
- Z) e- O% f8 i$ v: w* t( @============================================================== * E6 B6 M6 @4 t+ x& [" x% B

5 v8 p: O# o" c3 I9 Y2 G
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-11 18:51 , Processed in 0.048965 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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