找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法6-15

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序6
3 A0 n4 {/ K9 a2 M+ Q9 W题目:用*号输出字母C的图案。 $ k5 [" T. A: ]) P
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 6 A8 F" L" N+ J1 I
2.程序源代码: - A- e* Y8 B1 q. J5 ^9 K
#include "stdio.h" 9 c% d, X- b9 A" b% J
main() {
9 q/ @" f; ~0 R! F+ V3 o. Lprintf("Hello C-world!\n"); 8 f+ E3 C) G5 |: C" s0 l
printf(" ****\n");
  s, }( W# X/ ^! I, `" r9 r  v; Tprintf(" *\n"); $ O' P) \( ~  q
printf(" * \n"); ' ~. [8 ?  f1 Q- T
printf(" ****\n"); } ' b, |$ `0 D! ~% [8 S3 \, i: Y5 b
============================================================== ) q- m; T. t6 a6 W- g0 L; z
【程序7
. a+ e7 v7 N1 K9 `# q0 B- J题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! - w0 m5 o9 N$ T' @
1.程序分析:字符共有256个。不同字符,图形不一样。
  ~3 l1 P3 R+ b+ U  W3 O2 i8 e2.程序源代码: 8 ?3 D! {8 z1 w# F# Z' K
#include "stdio.h"
6 _, ]0 d/ g4 X: `7 Tmain() $ N3 I! b. d4 {& E1 p$ T$ B% U6 m
{ ; X) f& U  N! `4 P
char a=176,b=219; ' Q0 T: W& ]6 h3 N3 d5 l
printf("%c%c%c%c%c\n",b,a,a,a,b); " _% z1 V; r5 j& R) a) o
printf("%c%c%c%c%c\n",a,b,a,b,a); # I7 r. m6 ]1 \+ q
printf("%c%c%c%c%c\n",a,a,b,a,a);
, S, U1 ~4 o, o8 F5 l6 q7 ~  rprintf("%c%c%c%c%c\n",a,b,a,b,a); * P7 y. p! i8 k- B4 c
printf("%c%c%c%c%c\n",b,a,a,a,b);} " H/ R1 V/ ^* e+ G( Y
============================================================== . ]: l! E" @+ o
【程序8
2 {" `: A% n. r题目:输出9*9口诀。   C+ i6 l7 n$ c& O# x
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
/ V( r- V/ c; y) \2 i! P/ F2.程序源代码: 9 @/ n3 ?: K+ c( D; {
#include "stdio.h"
: D0 _* l4 L; Omain() 9 E# d) M7 G7 ]5 W, O/ W1 r
{ 6 W' Q) ^  T6 t
int i,j,result; 3 ^' S5 ?: r( G0 n8 M7 c2 \
printf("\n");
' ?/ S# ^8 D% r8 m* I% qfor (i=1;i<10;i++) / g+ N% ^4 f+ F: P
{ for(j=1;j<10;j++)
1 C+ a1 x) A6 ]( V{
5 q0 _, x2 a2 qresult=i*j; % @5 g5 N# e7 e+ m! D& `
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
) l9 h) M, {* i/ I7 p} + \% D, c- t$ n! D! X
printf("\n");/*每一行后换行*/ - g8 ?7 ]  I! W2 D* \
}
0 A4 H, Y3 \/ W} 5 f2 @: f/ |3 ?/ M5 z
============================================================== - E/ _1 t0 K; t  {; R3 v2 Z. p' Z
【程序9
0 P7 L9 x5 Q6 p$ o( L% M/ Z题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
6 _3 F+ `' `' y0 f1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。   i% T0 O$ e( ]# R9 e! _5 |
2.程序源代码:
' \; \2 e* B' P0 r, B) w#include "stdio.h"
- r% E0 S! _1 E1 P0 Emain()
0 w; g# i4 H: R+ B4 X{ " u- J2 O$ Q! B3 i2 o5 W
int i,j;
5 t& B4 @2 {; H7 Ofor(i=0;i<8;i++) : A6 w9 M& Q2 H$ `! m; k
{
9 V6 {5 f" Q5 _" R  ~for(j=0;j<8;j++)
* h( O8 y  @9 Q$ t& zif((i+j)%2==0) * _  n3 E0 M: P3 N: A( j( ^
printf("%c%c",219,219); % c' B. A+ E  S, \% c, T5 P
else
5 |9 m, X8 E) d! K" J% P! j0 v! h/ Dprintf(" "); 2 a4 l5 k# \4 |/ ]; y! Q6 M7 r; ]
printf("\n"); ! f4 P. V. Q8 f* k5 W, y" v
}
. C& g4 L2 \/ Y" m7 L/ z8 X2 D9 z} 7 E" \5 |$ q; V
============================================================== : J: @4 I, Y# p  s/ f% g( H  o
【程序10
! ]4 X- U( z8 i4 R; I题目:打印楼梯,同时在楼梯上方打印两个笑脸。
) J5 Q& d8 E. f3 m- [1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
2 m: D2 g1 Q' {2.程序源代码:
6 g7 i2 T: O4 d+ S#include "stdio.h"
2 n) ]9 B! G) H: Y; Y: ?main() : z( f, ~$ u* \3 {
{
% ?+ Z$ t5 n' v1 ?0 Bint i,j;
5 f- T, U1 N1 f7 A0 w  y+ F4 Hprintf("\1\1\n");/*输出两个笑脸*/
; n; |. w+ j" a! o/ ofor(i=1;i<11;i++)
. r* C9 Z$ T7 y. W' G2 r: A9 |{
# v; F" L4 o. {: Cfor(j=1;j<=i;j++)
. \- m- @/ K6 cprintf("%c%c",219,219);
) f6 z4 P( S0 Cprintf("\n");
+ C% Z; C, R6 M2 u7 q& F} # M, f0 e" W0 Z( Y0 u  }, _# \  O' |. K
}
! G' }  E! ]1 i/ i  h- S- M% S8 Y
! \+ |+ E( E5 A% O  A9 u2 e
6 ]7 P/ d! t, _# T% N7 F7 d/ b0 u! d9 X. a: P' i- D+ v
作者: zhlei81 2005-1-22 11:29 回复此发言 / F& [- A2 o+ G& J
: _$ }4 Q0 N  f) A7 T
-------------------------------------------------------------------------------- - l! O  o9 i4 M) C) Q
, c. S$ y& J! O/ H0 G
3 回复:经典C源程序100# j7 W  h- X- L& H$ b
【程序11
$ a" P: p4 j/ e4 U题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
! X5 Q1 h+ ?: v% E) H) i2 ^后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
' ~! l4 j% }& s6 @7 \7 k. J0 A+ M1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
# A) ^6 Q3 t7 w6 m2.程序源代码: - L$ j3 z/ B9 [; p1 j
main()
' Y( x$ x" C/ d  m' v( {1 H* j  f  H0 ~" h{
% f) _+ M! p% elong f1,f2; 2 c, [4 v! l' ~3 T6 m
int i;
0 h: X! E* A7 l! [6 o! Sf1=f2=1;
' ~, |" f1 Y4 R; T! yfor(i=1;i<=20;i++)
9 P; r7 W( B, \) K; b{ printf("%12ld %12ld",f1,f2);
4 {$ b( i4 }$ pif(i%2==0) printf("\n");/*控制输出,每行四个*/
; Q7 X/ \# t+ N$ J7 v1 K. ~. N' ff1=f1+f2; /*前两个月加起来赋值给第三个月*/ $ ~0 b8 j4 R; _2 [  V) `8 M& h4 n
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
6 Y+ C  L8 d, h) _' h9 J}
! X' R& N0 c/ b6 ^1 h9 }& B}
+ e: b5 D2 u  X3 l2 U==============================================================
  i, y" g$ K: B7 |8 o5 z, l【程序12
5 ]% i& ?; H- @* ?题目:判断101-200之间有多少个素数,并输出所有素数。 0 K  R/ I4 a$ z( g
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, % L$ L) }" Z& q( |/ J* _+ c. q7 Q
则表明此数不是素数,反之是素数。 1 R7 R- }% N7 I; K$ R7 ?* u$ n
2.程序源代码:
/ I( a+ B0 _! h; {* ]' T1 O#include "math.h"
* ~+ q. ~  Q$ E' c% N- w- u" Qmain() , B" V+ `$ U6 w, l+ ^! {
{
4 q  U4 a4 z& p1 s$ Nint m,i,k,h=0,leap=1; 0 o: @& x) ?2 k# E$ H* J
printf("\n"); . O$ }2 p9 o: E% J% b
for(m=101;m<=200;m++)
7 |) T( T- F" a0 S8 V{ k=sqrt(m+1);
. Y; c# `. L: Ufor(i=2;i<=k;i++) # \+ Q( `" Q7 z- P" a* K: A
if(m%i==0)
2 [( j7 K/ e5 a, r! Y' P{leap=0;break;}
: E" ?$ i3 w6 f: C* p- t+ ]if(leap) {printf("%-4d",m);h++;
/ C; x; v& D0 Z) x" Y) uif(h%10==0)
6 r* ~- w" j2 _: F0 Wprintf("\n");
# g# [+ [5 b1 x  r}
3 H, o" R1 E- ^+ y  sleap=1;
# p; j3 f8 X5 O, a0 Y& x}
, E( N% m0 @6 L+ ]3 R8 L8 `# Iprintf("\nThe total is %d",h);
! y3 y5 U9 l+ ]) R' V8 }6 ^2 R) z- U} 1 Q( r$ J2 s5 H' R7 s1 R. s& J1 j
==============================================================
; B- J& H4 d7 {【程序13- Q4 S8 \- v0 k4 s5 l
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
# ]' ?5 z8 _2 M7 [; I  o2 U$ A% Z本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
& S' w; r1 ^2 Q3 p$ d; F- \. w. U1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 % e* g: U9 X0 u6 n# R/ p
2.程序源代码: * G! W$ `- o: F# S3 _  ?
main() ( R- _7 {% ^7 p6 A9 T
{ & d/ @7 S# N' e: o
int i,j,k,n; " R/ P0 E5 V) w4 H1 f8 B: a
printf("'water flower'number is:"); , O$ J0 y) C! |0 |* g3 E
for(n=100;n<1000;n++)
, d% L5 n# S* K# M* q% ^+ H{ 8 {$ W, g: N1 ?; H* Q) q2 `
i=n/100;/*分解出百位*/ 2 d4 C& Q1 A! B1 f5 y, n
j=n/10%10;/*分解出十位*/
) c; _8 i/ N2 S' \4 L- x- N5 C% vk=n%10;/*分解出个位*/
8 @* E. U- y& W& _6 V; g6 Gif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
7 v; w$ _. M" b; C4 e  G0 {{ . J% s  s* o  D* a8 L$ L
printf("%-5d",n); % A; ^; j! A- l4 ~4 r% w) N& F: L
}
1 W) \2 J$ Y7 }# d$ ]7 f6 r7 x} 8 o3 F+ m* O! t
printf("\n"); ; C7 V- K3 K, Y: k) j
}
$ F9 G+ a; f: k9 P============================================================== * g2 q" _* |1 |  l# Z" k6 f
【程序146 Y( d1 `+ [( C7 a( K
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
: j% B+ [, }' J4 w: t0 Z) d! X/ t0 e
% o! u$ a9 s: r0 b& L4 }程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: * I. V( c1 W3 o, F2 R* t
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
( h) y0 L% ~. E7 {/ F4 u(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
' S9 l1 y( e# N9 K$ L1 _重复执行第一步。
9 g$ N# Y7 g* t' r* L  W4 r(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
7 ]  e3 G: r' G. y. k5 z' S+ w6 b  q; E" T
2.程序源代码: - z' Y; g/ L. r
/* zheng int is divided yinshu*/
; l  F: O5 J% ~1 F' Z: [4 `7 Omain() 6 S% z: r, s0 S. O
{
! t0 x0 @7 }2 V1 ~0 ?# A1 v) _* zint n,i; 1 Y# G8 L+ |, N# g) ?% K
printf("\nplease input a number:\n"); 6 t/ `: ?: [# G
scanf("%d",&n);
1 n0 ~% x5 S8 j' A* @5 Uprintf("%d=",n);
) C6 W5 j- v# Y! k+ jfor(i=2;i<=n;i++) 0 _6 v9 u$ U0 r. l
{
5 j, V2 p4 u" h  T" T$ Nwhile(n!=i) 7 U: t9 D- w' T" o+ j$ G! ]/ X
{ , _5 [- K+ i  X5 D* A" z
if(n%i==0) . K4 S* V0 ?+ N3 ?
{ printf("%d*",i); 4 [  g4 S1 t. V% ^$ w( m+ ~! g: m
n=n/i; * C) x# h; A" l9 C: Y* |3 b+ u& E
} * f+ ^# X* T2 x1 S: @0 M
else # K2 P1 T4 a6 m. l! f! P6 y( V
break;
1 [2 P5 t$ j% P} 4 o8 U, q' R; p  Z" Q
} 8 r1 e/ p4 S3 H* s, v. E
printf("%d",n);} / Y! I* V, m# o  z  v8 B. l+ L/ Y
==============================================================
% D8 H# ~; O2 P0 v; r【程序15) d' Q5 _8 b: {( j9 o
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
/ }( A9 [+ y* v4 I60分以下的用C表示。 . ~8 ~" n  j3 u* z* S' ?' n0 {
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 - V4 G7 V+ o# O# A% {, U: Q9 q
2.程序源代码:
" Z6 P6 Q9 Q1 ^( Imain()
/ u  P8 A: p$ ]+ ]4 S4 h{
& r9 B0 r2 R$ T- r$ V9 F. Sint score;
$ h& y, e8 O+ Z: j. Zchar grade;
- e% |! `; N+ P! }  |, a, aprintf("please input a score\n"); 0 q* I8 [3 \; u$ U* P
scanf("%d",&score); ' c: b. x1 q5 e% r
grade=score>=90?'A'score>=60?'B':'C'); # ~* c$ e& f2 o5 t, g3 o5 y
printf("%d belongs to %c",score,grade); . T' t4 X, v4 z5 ^0 ^+ B
} 1 p* \4 }6 }# x# ]# [
==============================================================
( f) o) Y: m5 O0 h- z. S
( o. ]" t/ l# p- O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-9-17 04:34 , Processed in 0.071532 second(s), 33 queries , Gzip On.

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

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

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