机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

C语言算法6-15

[复制链接]
跳转到指定楼层
1#
发表于 2017-10-5 16:43:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
【程序6
: ]  b+ A8 H0 f! j* s题目:用*号输出字母C的图案。 ' S- a% a" @+ Q6 N9 ?9 f9 q; \
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 7 a8 N: {0 c$ Z* J# W7 N3 S
2.程序源代码:
& u5 o0 L1 k- ]' p3 a! v; T& d#include "stdio.h" ! [) d) B9 p$ m6 @7 d/ g/ f
main() {
& f1 e! j* o, Q" B2 P# z( _( kprintf("Hello C-world!\n"); 3 M* O+ [9 a7 N; v0 w. z" D: m
printf(" ****\n");
, O* s: w: j' S$ Vprintf(" *\n");
$ `. p2 Z& J: ^/ h5 I) [printf(" * \n");
" o" b$ e+ A$ {' uprintf(" ****\n"); } 1 R: r+ P7 ?0 a8 Y. u0 l* s( i
==============================================================
# v7 J+ |0 E& H5 B7 E; K. H【程序70 X* P0 ?: y+ h( c
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
# l: F! U$ Q! k- h1.程序分析:字符共有256个。不同字符,图形不一样。
8 p$ @8 W& b# y" |8 K2.程序源代码:
2 Y8 q1 L6 k2 Y#include "stdio.h" ( ?5 P- b! M  s% F1 Z$ j* m
main()
% J( k0 b, @8 N) K, s' X  y1 ?$ f& Z{ ( E0 B% ^7 G3 F& [9 ^' P3 V, i, V8 M/ W
char a=176,b=219;
- o5 L( X' w, Oprintf("%c%c%c%c%c\n",b,a,a,a,b);
/ c9 Q* S+ c: v& q  t/ l1 l6 P" Vprintf("%c%c%c%c%c\n",a,b,a,b,a);
' ]8 q9 z) I6 _3 Q3 kprintf("%c%c%c%c%c\n",a,a,b,a,a);
8 y* L. {- z1 W2 `) [8 ]9 eprintf("%c%c%c%c%c\n",a,b,a,b,a);
5 T$ x* ]; K* d) t" b) \printf("%c%c%c%c%c\n",b,a,a,a,b);} - D: V! n# G$ H; t* n+ p
==============================================================
0 G  r  B' P# b7 T- z6 k% D) B【程序8
0 V2 [" m' g9 |' b( m2 |+ u/ N4 [题目:输出9*9口诀。 . _# W% }1 P5 u' J: u5 E. b# V
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
/ Z" h9 o5 Q* w# d2.程序源代码:
1 F$ i% B. e$ U# t; j; r& Z+ l9 b#include "stdio.h"
# T! b7 C8 T! x0 X6 Y8 i! \/ f4 ?main()
: x$ @3 D1 @* y2 Z5 J{ ( Z: |) |: Q) M. G4 p. W( \" Y6 E
int i,j,result;
3 w0 o$ u" u* I2 m( Z# yprintf("\n");
! u6 _5 x/ |( Z) Y& W6 s4 afor (i=1;i<10;i++) ; ~" y& D& [) N
{ for(j=1;j<10;j++) 7 \! v8 E0 F+ J, i" ^
{
7 P' J, n0 C; h* ?2 ]0 Qresult=i*j; ! X1 z( r0 L8 Q. F9 |' U8 P
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/ 6 _& _$ j- t$ s, U+ Y
} . j9 D3 K$ {  g
printf("\n");/*每一行后换行*/ ' ^) s; J& M8 r3 j: Y" O7 Q' \# H
} ) Y5 f) ~& u( B2 K) K" b8 t' `! ?
}
6 r' D3 k7 y9 d7 s==============================================================
* O6 c2 p) L1 C! [( g- v/ H; Q' R【程序9
2 x" W7 H  |/ a! u. o- o题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)) `! g8 }) g7 A- E- l
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 / i8 N3 Y: e- ]$ Z
2.程序源代码: . U1 [! y( T- v" U# N0 S( @
#include "stdio.h"   u5 x  r5 k2 q1 q7 n
main() : @" D7 ?: b- K# N" i0 W- A$ V. @4 R
{ % T8 K- y& w( |- D+ Z$ o: A3 s
int i,j;
. F- j! B( g5 Z6 ?* d/ `& N; Kfor(i=0;i<8;i++) $ x6 p/ X. e. `, @8 `2 C
{
( \+ \/ W# c4 d; ?for(j=0;j<8;j++) 3 T- ?6 |2 j8 L7 `& n6 Y8 I' i
if((i+j)%2==0) : A, M0 Z; W# W9 N/ ~7 h
printf("%c%c",219,219); ' O2 P: u( B+ T0 }5 ^. r8 u
else
; u( ~( D+ n% {6 ?printf(" ");
0 [2 A9 ]% B) R7 x: @$ Hprintf("\n");
8 y( c# |3 }0 s1 }}
8 u4 x3 `8 i' _}
5 G9 j# y2 x/ Q! Y+ U" K! I============================================================== 2 n8 l: X! _! `
【程序10
) `4 P" m9 o2 Q& `题目:打印楼梯,同时在楼梯上方打印两个笑脸。 - Y. R+ W9 F# [8 Y* L. [( \
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
9 H- ~* ]9 d: x2 Y4 O2.程序源代码:
0 c: O3 k5 w1 E2 x! N) V#include "stdio.h" " p( g, n5 T( Y* ]
main()
, U2 N% b/ C% _, t6 @: g) |{
. ^# ~) f$ I3 d6 H; m; K# hint i,j;
, ?& G  O% a- T' n: Jprintf("\1\1\n");/*输出两个笑脸*/ + }+ c8 j3 C# ~' i3 l+ u  Q
for(i=1;i<11;i++) 0 r& S# A; L% I0 [
{ ' |1 c7 `7 M: B- |  i( {
for(j=1;j<=i;j++) / Q2 W6 V2 A3 m! O) M
printf("%c%c",219,219); ' u: W1 O- H. E4 F
printf("\n"); ( E6 o* Q1 u. s6 \
} 5 k! ]) R1 F  t4 ^+ N& i
}
3 p3 F# H/ M: W8 P0 f9 u1 Z8 B* v0 j; G

3 b0 M6 l, L! M8 V( d2 n5 n. u, T0 ^/ y' M( |( \
作者: zhlei81 2005-1-22 11:29 回复此发言 4 D4 I/ `0 M* Y
$ R* k* N( K2 K, R& I, Q" q
-------------------------------------------------------------------------------- 0 n5 `# j& C. Y9 |5 ?$ I6 R
5 a- g8 n1 I. X9 S( @
3 回复:经典C源程序100, M$ @9 Y2 V# N( U8 v! U/ q6 h
【程序11
* s( {" s* f- y; w! q  e题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 / W" U% z" ]; p- B- V
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 R7 N  W7 p. ^& ^( s* K1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 1 C+ ?& p, j7 n5 Y8 _0 n
2.程序源代码: ; }3 [% q! D* z+ M4 `
main() 1 g. T% Z2 O( Q2 j& m
{
, V% }8 ]8 r5 o. I4 s5 Slong f1,f2;
/ J; p4 W8 z% z0 h1 sint i; % Y- ~: W4 ^& k3 g1 Q; r
f1=f2=1; . q. N# D' G/ n( p1 ^
for(i=1;i<=20;i++) 9 ?4 z# K1 P0 w6 S/ @5 u
{ printf("%12ld %12ld",f1,f2);
: S1 }6 K6 u( Nif(i%2==0) printf("\n");/*控制输出,每行四个*/
& Y6 ^- a' L2 `. ef1=f1+f2; /*前两个月加起来赋值给第三个月*/
" d! B& z) J, p1 ]7 a! bf2=f1+f2; /*前两个月加起来赋值给第三个月*/ " x$ r; j0 ]: C# x) c
}
1 I1 E# d- c# W" ~4 C% L}
: C  R# k$ @1 D9 O3 }, i$ a==============================================================
. \+ R& Y8 u0 t【程序12
5 S# K4 }' |" p1 m- x) T+ t题目:判断101-200之间有多少个素数,并输出所有素数。 / f$ Y, `5 O+ s4 ?2 x/ @
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, % Q  I+ N( u6 X5 E
则表明此数不是素数,反之是素数。 3 ^" X* ~) j, \6 N9 _) }" w
2.程序源代码:
6 }& r% u- n! o3 n8 N#include "math.h"
7 d5 [" ]9 B) S8 [2 S; {main()
/ ]" G: n& {" ?1 }6 T. q& M{
* ~" F4 t6 ^5 u) o8 d5 Tint m,i,k,h=0,leap=1; * b( U  w" V8 a. R
printf("\n"); ) D9 u- I- Q1 c$ a& i
for(m=101;m<=200;m++)
' W! x% M; @) ]3 w{ k=sqrt(m+1); 3 z- |: F* K5 \' W2 x
for(i=2;i<=k;i++) # I. x) |3 i( e& K
if(m%i==0) 8 W2 S9 j0 s4 o* l
{leap=0;break;} : v! A" @' k( X% U  }
if(leap) {printf("%-4d",m);h++;
" N0 |: s, @7 {' ~if(h%10==0)
# H5 a2 Z3 N/ U4 c* o8 Gprintf("\n"); ' Z1 V4 s" |3 l7 Z9 b9 O* p) q: [* h; J
}
1 [+ A2 E0 F2 e3 h( q& nleap=1; 0 }, h# A4 N3 N3 `$ Z! q/ K
}
+ l2 L5 O' Z5 @% B) z+ Eprintf("\nThe total is %d",h);
. q# u+ C8 f" t/ d( v5 `) z1 S5 \} 5 j; F* d. u4 y! h3 M! [1 f
============================================================== 7 D8 A; B9 B) \8 r. Z
【程序137 D% {8 G: B7 s
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
/ R7 i( z8 g% F" q9 s; }本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 2 q6 D: X6 S- _. `" x- @
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 * B7 N( J2 c* w: E, ?* g( l" V6 N3 e
2.程序源代码:
% d& g) @9 D1 t0 [main() . a& l: `! U' Q3 v7 K: A
{ 1 B5 w8 r1 A2 }6 Q# L) B, {# g( K
int i,j,k,n; 0 }. j+ I: ~  t
printf("'water flower'number is:");
0 X- m9 Q* E- `; Xfor(n=100;n<1000;n++) 1 M& a# `+ I9 {( I3 {
{
- d4 ?0 c  l; C  pi=n/100;/*分解出百位*/
' n9 n' _+ n' Sj=n/10%10;/*分解出十位*/
! d3 {1 r9 D4 Ck=n%10;/*分解出个位*/
- t( A- }% s$ X: R* n( S8 D7 Q9 ?if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) & C1 ^+ e6 F2 s9 [
{
* C4 U% `' u5 H7 k" [printf("%-5d",n);
1 l0 F+ Q+ y1 {, G0 x6 {! q}
3 g) ]- M% U% y" {: ?' U}
" {, G, o  o0 A1 e* H0 Gprintf("\n");
+ w5 @( G1 g# B- ]& b; F3 N}
7 T; d1 `2 r; |$ x/ L/ q==============================================================
+ X- y' Y4 [4 a. q: x8 _5 ^7 g4 v' }【程序14
& k  W4 B" H( L  f1 {0 M题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
# g" I- v- [6 E3 q* E! Z/ d
: p; m' ^0 M5 i# g/ o+ I程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
+ G0 z# W2 j; p7 {' M0 n(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
9 L3 t/ S5 O4 Z0 l; C  G9 Y( v* I(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 0 o) \( M- m& ~7 r
重复执行第一步。
" i% r0 G9 B2 Z  b2 r, w: z(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 * @2 B0 e" B9 {. E6 E3 Y2 R
! P8 A2 X& K& a% H8 X. R, X
2.程序源代码: - Q- u7 Y# t% j1 K) q4 A3 A
/* zheng int is divided yinshu*/
- n4 F; x7 p2 o% d( n, w! fmain()
& N- ?% E( T) e6 t' z+ H$ f" p( z{
% p( ^: Y, R% x" L3 l7 W: gint n,i; 0 h1 x$ }4 K; F# S
printf("\nplease input a number:\n"); # N; p6 Q6 H$ B4 x3 R* U' N
scanf("%d",&n); " I, b: `% w+ r7 S
printf("%d=",n);
. e  w6 o! C; I0 \for(i=2;i<=n;i++)
" P' d! {3 e, ]' N$ K4 ^{ & o; k1 n6 n9 n* f! Y' _; [
while(n!=i)
3 M- o4 q9 G5 z: B) T$ v# t# c{ 4 H# d1 |6 O8 H" ^4 I! ?' V
if(n%i==0) 8 D" r* E. T: U4 Q/ n* b; Q0 y  K
{ printf("%d*",i);
: B1 u) D2 h3 ~7 @9 A# in=n/i; * ]0 g) p9 }- [  z  D4 N
}
) B% m* z2 L5 ]/ H: w. ^" Yelse ( \3 ?# t0 w( B- ~: F  B7 ~
break; * _0 J+ i' U. C/ [& a) e* H
}
; c" X% m1 M4 P% T' E  y! k2 X} # {0 q( {. {5 M1 U9 ~$ i& P- b4 P
printf("%d",n);}
3 W' S5 j6 U$ ?" Q5 W: G============================================================== ; G! ^+ u3 q& R, q
【程序15
+ {+ ^2 R" ?. b: T$ L4 A* \3 H题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
# B" N8 C8 g; _% p, k60分以下的用C表示。
# Q% o- G% f* p/ t1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 ( }( b' q# P2 h5 R* P+ j; l
2.程序源代码: $ w5 ?2 [6 u( A3 l
main() 3 q, ?% o! \4 p# O3 i/ }  N
{ & U5 Y  F  d. q( a) I
int score; . K9 b: Z3 N( c/ |) C$ x  p
char grade; , S! K$ `2 V! r" {9 _
printf("please input a score\n"); # ?; G) V( _) \" S1 {: s
scanf("%d",&score);
7 w* `7 H8 j0 L9 F2 e( e$ Bgrade=score>=90?'A'score>=60?'B':'C');
8 q* O. S! y" dprintf("%d belongs to %c",score,grade);
% l( f0 u: ^! T# p* p" D+ x2 A}
+ f* g# x, \( Z8 d8 _============================================================== 1 `7 `4 g/ [" v  j+ q9 W

2 {+ A# R& {- F
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-13 22:10 , Processed in 0.053285 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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