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

C语言算法6-15

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序6' ]8 L1 `) e6 l3 r! C0 n
题目:用*号输出字母C的图案。
' M* o' F, Z' ^7 n% R% m/ T' _/ M- [1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
% b. D3 D9 W$ i+ X2.程序源代码:
) L. L9 F+ j: s3 Z  u' g#include "stdio.h" 1 H" h$ J; X6 B+ o; Y* N1 X; M' Q
main() {
# Y8 r5 I" {8 I& S5 W, q" Qprintf("Hello C-world!\n");
6 Z$ [. [' S% J, t2 Y' o& H% bprintf(" ****\n"); 8 z1 w3 h1 z2 W( ~
printf(" *\n"); 2 k) Z9 U, g+ x9 q$ K# e- n' q4 X
printf(" * \n");
% a6 x! a0 G& `printf(" ****\n"); } 3 J2 R3 [* F9 [% v
============================================================== & ]1 N4 Z6 @5 W- u$ T) |
【程序7# x5 j/ l0 o! i! D( T0 I
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
) R: Y: U3 p# g0 X5 U1.程序分析:字符共有256个。不同字符,图形不一样。 : E3 `% O& V. W
2.程序源代码: $ m! C! K( n8 s
#include "stdio.h" 3 C; e$ B9 c9 c
main()
! D+ ?. y8 u/ l6 l0 [8 V$ D+ T5 W{ 2 L, t1 A7 ]4 z1 e, p/ S
char a=176,b=219;
1 D& s5 Y$ R1 _! v* T- oprintf("%c%c%c%c%c\n",b,a,a,a,b);
2 s1 R9 l2 ], v  F. f5 ^6 t# S5 l, x1 iprintf("%c%c%c%c%c\n",a,b,a,b,a); ; [8 V! ]$ W. H5 v! _( H& A& H
printf("%c%c%c%c%c\n",a,a,b,a,a); 8 f  F. b4 p/ |
printf("%c%c%c%c%c\n",a,b,a,b,a); 2 t2 m4 a8 z& p! `( v" d+ N% {
printf("%c%c%c%c%c\n",b,a,a,a,b);}
# U6 c  K  f& L! t4 [  P- v. r- t==============================================================
9 _/ @: s9 X& e( @# P; M* x$ z* A【程序8
- I8 j- F0 r* Y  z6 h. K7 e+ U题目:输出9*9口诀。
- F+ C% I- X* R4 l+ t# H) d2 L1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 , P1 L1 J/ B% Z0 G* U4 D
2.程序源代码: ; ^! q) X3 V4 x' d/ N' v; n
#include "stdio.h" + \; {# S1 s9 }
main() ; w4 c  r4 r% x8 G' P
{ 5 E+ t7 z1 h7 c: C. G
int i,j,result;
: F, E  K) R6 U' rprintf("\n"); ! d- u; R7 S2 i* W
for (i=1;i<10;i++)
/ F0 L2 L8 i3 ?! K$ W/ j{ for(j=1;j<10;j++)
2 _4 |9 g! k$ N0 f{ ! [: g3 x7 q: ?( H% b6 N% D5 B
result=i*j;
# I7 K! j9 |, X% Jprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/ % J  ^$ z: v& |- }5 m/ Y" B/ U+ j
}
! T- W! q+ v6 [. A* l* y, Yprintf("\n");/*每一行后换行*/ ; Z. H7 [; y' J; Z* w
} % k" x& m+ B( K
} 3 k7 e0 e' S7 g1 s! d3 T8 o5 i
============================================================== 7 Y" i0 F6 g( Q
【程序9& @4 `. S4 W  Q+ G
题目:要求输出国际象棋棋盘。嵌入式学习企鹅要妖气呜呜吧久零就要)5 ^1 q% r3 [! g
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
# v  y2 F+ |% L  R2.程序源代码:
- R. f9 b3 [6 s#include "stdio.h"
3 O3 f- T! f/ v& Y1 @8 kmain() 2 [/ n4 n) Q4 o; N
{ . w" }  t& I( U$ ]9 _. [" `# ~
int i,j; 7 v5 O7 Q' C4 e0 r& @8 w
for(i=0;i<8;i++) ' |# V2 C) s/ o" V. B- W) X/ C( H3 b
{ " M" e) o% K8 I6 p" J
for(j=0;j<8;j++)
2 {. R0 e8 l) w5 Hif((i+j)%2==0)
! \, G2 K  ?$ R" D% [& [6 gprintf("%c%c",219,219);
+ {7 N! F; K( D6 o* Relse 6 _$ P5 F$ V; l9 m( n4 ]2 }
printf(" ");
# C9 N. H- W  _% c" iprintf("\n");
0 ~6 I, X2 J/ s}
- p5 i9 q6 G* q) h4 ^3 `0 y}
8 L# e- ]7 |' r+ e+ u" X) g============================================================== 8 J+ ?; w, K: Q& C
【程序10
% v, A% M6 m6 S/ Z6 a# P题目:打印楼梯,同时在楼梯上方打印两个笑脸。
/ C* A5 @% `, H- z1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
" j+ q3 f" m. F( \& O9 v2.程序源代码: ) E9 [1 c0 t+ [* q
#include "stdio.h" 4 i( r) ]$ f9 Y& P% w! Y
main()
- C6 l* \6 S' g+ X{
+ v4 G7 p% S+ n2 Jint i,j;
* h2 o4 o8 T, H" U  [' Aprintf("\1\1\n");/*输出两个笑脸*/ 8 v* s* R* }4 @7 p  b
for(i=1;i<11;i++)
+ @; \( n8 n) n{ ! ]3 M3 D7 T! j6 x  _' Q* e5 X2 q
for(j=1;j<=i;j++)
2 W1 {2 I# ~4 k" P: a6 e3 w, Jprintf("%c%c",219,219);
8 h7 ]/ s: y& U5 Xprintf("\n"); ) v2 M# f$ ?, g: @: [
}
) k& z7 S, B, d) c' s  f} / Z7 @) Q% o/ ^) ]# {% [4 J
  W0 B6 [9 c6 {# H, v! I- X

7 D$ E. v: c3 n2 ?' w  ]+ R$ S& l5 s
作者: zhlei81 2005-1-22 11:29 回复此发言 0 v- H# _8 Y& F9 v9 c* v8 P

/ ?2 h3 v/ L0 a  j5 L# p1 J-------------------------------------------------------------------------------- 1 K8 W% D! b- T) R0 A3 U
. r1 x. u9 ]4 l; A% d: c
3 回复:经典C源程序100
( l" ?. t# k# b2 Q【程序11
; u& J8 w. U. d( ?0 T9 S; C题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 9 b* H. `4 }$ k! j
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ! V0 @4 x  w2 w2 c1 }
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....   M- m% X/ s! L; `7 J- [
2.程序源代码:
4 F) H5 W( _0 c) E) u% G5 kmain() , I( f* S2 L  A) j# M- C# Z5 m* H% N
{ 7 g! A, E' R$ o% l. H0 W
long f1,f2;
5 r2 W' Q+ t% m- t" Gint i;   q# O9 B" k' r& ^" y
f1=f2=1; ( [- |- p7 b5 G! y! Q8 D' x6 Q
for(i=1;i<=20;i++) : t! H9 ^$ K; {# e1 v
{ printf("%12ld %12ld",f1,f2);
! |* G- e2 p7 E, b; Qif(i%2==0) printf("\n");/*控制输出,每行四个*/
7 V# K7 t7 F4 o4 }6 B  Nf1=f1+f2; /*前两个月加起来赋值给第三个月*/ 2 q' b7 ~4 F" p7 A
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
" i# ?# _& z; S; |3 l) i7 l5 ]# q}
  X7 p' V) q, u7 v9 R: O}
+ B; o: e) [" n( r9 r( L/ J$ R============================================================== . O& h. @- c2 R9 ^$ J/ e9 z
【程序128 L! g, o' y- f5 q  G
题目:判断101-200之间有多少个素数,并输出所有素数。
5 V7 i4 d9 y2 N* H( c1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, 9 f" e, o+ P( n$ G0 F' i6 d
则表明此数不是素数,反之是素数。 . M( B' c- I0 V8 m) P
2.程序源代码:
" {" E6 X5 A3 ~7 {- |5 h#include "math.h" # z2 ?% y6 |1 Z: O+ k9 T
main() ! k# G( _2 t1 B6 V+ a2 K3 c
{
. K1 d; l4 y1 B9 a" B& I- Gint m,i,k,h=0,leap=1; 6 g- R8 Y9 p% s* u
printf("\n"); 2 |. n6 u2 n2 e. Q9 ^
for(m=101;m<=200;m++) . u! f) v" ]# g- _9 T1 U/ H7 {' ?
{ k=sqrt(m+1); - z* V/ z( K; u
for(i=2;i<=k;i++)
+ ]0 E) i3 [) v& Tif(m%i==0)
! {5 N/ I) H0 j8 ?7 P( n5 E" s{leap=0;break;}
) g/ u$ C! c. ]( x) L( r  Sif(leap) {printf("%-4d",m);h++;
5 ~8 z) y7 s! d" C; ^5 `. |9 V# d% Lif(h%10==0)
# H" E: |6 l: R7 Pprintf("\n");
6 E: U8 z- p/ Z+ D) x}
" o% x' a( s% O- v  _4 nleap=1; 5 z+ x" S& ~  B  A0 x/ C5 t3 A
} - u: [' M% v5 X7 Z2 N
printf("\nThe total is %d",h); " I, ~3 d8 r/ ?% e0 ~1 S
} 2 A$ ~% S  @5 w) m. o- F! ]
============================================================== 2 y4 f/ M8 Z/ D
【程序13
: l! r4 y* Z: o& a  }题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 1 j# n* a$ g! b8 ?
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
% z2 Q& `! b9 _1 U& a' P. \1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
/ W6 z7 m) F& t$ |% p2.程序源代码: 7 X7 C: {5 q! ^' R0 P) O2 C( l
main() / [) @, }0 `' }- _) Q& a
{ : S# T, C6 B8 X2 j" y. w/ r
int i,j,k,n; 9 z) Z+ |5 C2 P6 ?
printf("'water flower'number is:"); + ^+ }" m: E' a* `1 ^; r) w1 w5 e
for(n=100;n<1000;n++) 0 h( B* N. }4 `$ L! a5 \; X4 \  c! N
{
* \0 w$ E. a9 ~& b" w5 di=n/100;/*分解出百位*/
# p0 {/ w, F  k9 ^j=n/10%10;/*分解出十位*/
9 |' \. A1 H  g8 f3 wk=n%10;/*分解出个位*/ * p7 P( F. D; ]2 w2 ~9 H% |+ G+ x
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
4 @7 [7 S# }3 z/ p3 ?' J9 C) `{ 7 P/ s" r- H" E( g7 G) S( O" R. ^' [
printf("%-5d",n);
: Q. L" B( A" g* K8 `8 g7 S} # i8 ]& {0 G- ]6 y& \! q9 |( R
} $ `6 x0 G; u: v2 W" Q# \
printf("\n");
  ?( A3 @* p+ T. R( B; ]1 y} " L4 U/ N7 N/ N3 ~/ {
==============================================================
/ b# I9 H2 b. P* z3 M【程序14
8 {2 A" n% }! ~# ]题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
$ O$ ~1 m$ W) Q8 W& W8 x$ p, R9 Z! W5 i' N/ B
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
; \& |/ }  c0 V(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
/ L& d( A; U: E* g(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
& s9 J, ?/ S: F  e重复执行第一步。
5 b1 Z! ~/ d8 ]/ r- R2 u(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
) l" W4 \. w0 J" @: A
2 i4 c  d( e6 s2.程序源代码:
, a1 T. B" y/ o3 M$ F& S/* zheng int is divided yinshu*/ % W* J' V3 a9 w& V% ]% {
main() ( J" S$ Y) c1 u& z% o
{
6 b% m$ H" a8 Wint n,i; & s6 T! a) S6 ?4 x5 o' ]
printf("\nplease input a number:\n");
( n7 j: \& J( ^1 t: oscanf("%d",&n); 6 T8 C) f: {4 {9 L: F4 l
printf("%d=",n); # p7 c- z- n. ?3 B, S
for(i=2;i<=n;i++)
9 h( c/ k# O! D{
4 y" d) q! a! |* g2 Gwhile(n!=i) : ~+ G1 w! w; C8 t& k3 \0 [
{
; O; s  j9 _5 F2 |if(n%i==0) / e# Y. Y  ~& u; m. x; U
{ printf("%d*",i); " W$ b( U8 F! z# S, U5 f9 ]
n=n/i; ! f2 \3 b  @; r3 _5 W4 M& R7 L
}
) A& h' }. z- O/ ], |) b4 r" zelse
- @( @2 R% _! @( N6 U3 P5 a# abreak;
+ Z0 A, z4 {; v  r' u$ t0 O}
3 u9 p; U; z& K  g( x7 H} 0 x& W: w( i# L5 `( v2 R
printf("%d",n);}
, C/ O2 _7 p( l8 y. E# a; B==============================================================
2 M6 p7 p1 X2 Q, Z8 E9 |, s: s【程序15
2 R# [6 r& Q/ X2 S. m& Y) `& I& Y题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, / [2 u* o/ `9 _) P6 R" C
60分以下的用C表示。
1 {9 ^2 z+ b9 @1 O" z8 Y! y. [4 _1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 2 f, f6 h4 z" |: B1 H' v
2.程序源代码: # D. O: H5 @+ S# w
main() 1 k; e, W" f% i: G: v4 ]
{
0 }! @4 l8 `, p5 J" dint score; ; r; Q2 @8 v; d
char grade;
5 q2 v5 E/ j3 l/ Uprintf("please input a score\n");
) W: _$ T3 p6 n0 O9 C( _6 @scanf("%d",&score);
) V2 q1 A6 @( J: Z* D. ograde=score>=90?'A'score>=60?'B':'C');
% p! b9 P$ x, N# x* oprintf("%d belongs to %c",score,grade);
$ G: q3 ]* ]4 M4 c9 _; C2 T} * _8 k5 `% D8 S
==============================================================
  M0 b8 |) O- v; `, E( v3 I; V

) g& E$ R+ ]8 R- @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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