找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法6-15

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序6
8 b; d0 o6 B# ?- C% @" f题目:用*号输出字母C的图案。
" l8 f3 v  a7 ]1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 4 B" M7 |# L* o' q
2.程序源代码:
' O; d/ W) c# e6 _/ u# m7 J0 ~#include "stdio.h" 0 b! z) h3 {  c- a' o5 S
main() {
% `, {/ m. ^7 @$ G) Eprintf("Hello C-world!\n"); 6 F7 }; |, V7 o- W* T& L" M0 q* a, D$ p
printf(" ****\n");
4 l6 N* i: E2 `  v# @. K5 yprintf(" *\n"); ' a( P# Y7 s: y1 c4 `3 I
printf(" * \n"); 7 n# O) Y" h3 D! {' D5 Z! ~
printf(" ****\n"); }
0 F& P0 M# s. @5 A2 f==============================================================
, O. E- R: A. e) z【程序7
1 ?& _, |- P& U" I: N1 \题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
/ ?- Q$ c# s$ y1 E9 n+ H+ Y1.程序分析:字符共有256个。不同字符,图形不一样。 ( n2 Q* W4 k0 G% n
2.程序源代码: ! G: [! J# g4 I
#include "stdio.h"
  x1 j" ?+ F! ]$ ?* T% Umain()
/ D6 F5 d- p) i1 ?6 r' @{ & F/ C& l& P) |# _) C% j" S2 S
char a=176,b=219; + S0 G) U8 z% Q, l3 I; F+ L& A  p
printf("%c%c%c%c%c\n",b,a,a,a,b);
) Y) |: a6 `. ]9 r" J, vprintf("%c%c%c%c%c\n",a,b,a,b,a); $ f5 n, F# Z5 n! S$ o
printf("%c%c%c%c%c\n",a,a,b,a,a);
( e; B* k% `! {2 Jprintf("%c%c%c%c%c\n",a,b,a,b,a);
& |5 i1 ~3 w  r9 Mprintf("%c%c%c%c%c\n",b,a,a,a,b);}
5 ]6 ]. q5 X) U( C0 @% L6 B============================================================== 8 R, m) L- e8 ?) F% g  x6 M
【程序8; v9 O1 {( H/ K
题目:输出9*9口诀。
% X3 J* H2 r' A3 p/ V) N4 S1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
! F& i6 \: b/ h: C3 g8 @2.程序源代码:
( m( n7 x+ I( K* M#include "stdio.h" 5 A5 X# t: {1 g- z  V' T
main()
" O) V7 O) q/ J{
4 \0 U& C" Q( I. D% u. tint i,j,result; % ^0 s- p; J) V% _: \, w. |
printf("\n"); " C# H- q! \, b! m8 E" {
for (i=1;i<10;i++)
5 T- i( n$ F# d8 ]* n" q/ P1 e{ for(j=1;j<10;j++) 6 h' p0 S$ H$ c5 e0 R
{ ' f8 i: `: L/ e- h$ `
result=i*j; . ?. j, e  N9 n9 _; [$ q* ?
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
1 Q2 _% Y9 z4 d: z* b0 y& I} $ _1 d) q, g; ^8 @
printf("\n");/*每一行后换行*/
4 L' N- X* Q  S1 z, s  Z1 d}
/ L9 x. C5 ^7 W7 n- M} 2 k, }) u& g- ]: I+ P! K# t
============================================================== . O% E2 s: _1 i  ]
【程序9
1 [( X6 y  R; a' p# f题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
0 f% d6 {' |4 s5 H8 u8 [3 s1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
+ E; T* Y- h+ l- p; W- i7 T5 v2.程序源代码:
$ B0 m6 |4 a4 {; @) s" X$ X' r. p2 {#include "stdio.h"
* X$ }4 C) M) ^) b* v0 Wmain()
7 C+ z" y0 @9 X7 A  B$ d3 b6 n{ 0 `4 i; c* J# B
int i,j; ) i6 _1 u3 k* \6 U4 S/ p/ q$ _1 t  j
for(i=0;i<8;i++) 7 C8 b2 @+ ?7 U1 t
{ % r* P. e+ M; e& s
for(j=0;j<8;j++)
( N  A7 [6 ~8 U) H3 r+ l$ _- ~, ~if((i+j)%2==0)
' s9 _% I! }% G0 Gprintf("%c%c",219,219);
7 O! V- ^& ~4 e* ]: e" @+ l3 helse
' z( {/ i! @! b9 N  F; x* Jprintf(" "); 1 @+ `& o8 x. x6 ?2 t" o
printf("\n"); 8 ~' ?6 [9 [% }5 t( L! d+ ]! p
}
  i1 V5 K9 P* r; n) O7 o9 U' Z} , S% L) f1 J5 K4 \) c
==============================================================
) C) X" X9 z# Y1 \7 \) _! f【程序103 M% s  }$ X# F5 m: c( f- d
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
, A9 H. \% h+ D8 ?/ e% h1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 ) k3 j4 R2 j( Y* ~% ~6 R
2.程序源代码:
. Y: ^' q2 }: m#include "stdio.h" ( O% f) `& P# T( V1 t) ^+ A( B
main()
3 q# N* F. ~8 e{ 0 ]7 O, s' Z  n$ E
int i,j; 6 v. T" _. O& F! K8 [
printf("\1\1\n");/*输出两个笑脸*/
/ n/ ?1 @4 j- Nfor(i=1;i<11;i++)   t  u3 I% }7 U% Y
{
9 ^0 [+ i1 Y3 I, Kfor(j=1;j<=i;j++) & Y3 c$ b1 H' h3 s$ A9 t, j
printf("%c%c",219,219);
& C5 }7 R' A  D% ?* dprintf("\n");
4 J5 V" K) N$ x! U% ^4 w+ a} & M! `' t1 Z6 H$ {
} 8 x' Z# }* ^; C& v
5 u8 R+ N$ m! O% @9 w' e( e

' _8 g& n  S; D0 S$ x8 I$ X& v) _* k3 G2 h2 Y) }; e. R- [
作者: zhlei81 2005-1-22 11:29 回复此发言
5 V6 V- e8 q6 l" ^  C( k. c, P3 o' X! f- w7 U
-------------------------------------------------------------------------------- 9 A5 g) z' S. ^! O
, D: ~$ B* E1 v( ?1 f
3 回复:经典C源程序100" e. [" l' y6 Y8 s( K6 o
【程序115 q8 G" C1 {3 Z
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 # M) h' ]6 W: E' e  |
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
+ T* i: l5 l; L( d# k1 ~+ v1 s# b1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... / L) `% N: K- `. a- v
2.程序源代码: ; y1 w$ b. \6 `4 y3 Q
main()
/ \5 R3 f) ^: C* b; ~! V- i{ ( Y; Y) q5 a1 j" R( Z4 P
long f1,f2; / h; W; b1 Z  n" a8 C: y
int i; / U  c! V+ p5 ?2 k$ u, s: U
f1=f2=1;
5 I- @; k8 ^: j8 {for(i=1;i<=20;i++) 1 _- M& O1 O, I$ n  Y
{ printf("%12ld %12ld",f1,f2);
0 n+ P5 W$ a* R% l  F" yif(i%2==0) printf("\n");/*控制输出,每行四个*/ / z& a/ A* Z1 E! r# h! f
f1=f1+f2; /*前两个月加起来赋值给第三个月*/ : B1 ~7 a7 ]. x4 G* s( S
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
6 C  p$ D2 Q) {$ I6 @' `}
1 x! l/ p9 o# _2 ~7 F! e* E} % u' @# ?) J" S% t
==============================================================   F  E. N7 j6 b% h( _  I! I
【程序127 I" m) F+ ~- b
题目:判断101-200之间有多少个素数,并输出所有素数。
* ?8 o" _% }1 i. S+ i2 g+ v1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
- P" f, a" G+ T: h则表明此数不是素数,反之是素数。 4 Y; S& F) [, d4 m6 r: a7 |( j
2.程序源代码:
) r) j- R. s3 \" K& J9 O* k#include "math.h"
! _! `8 M" h# y1 rmain()
- M( R+ W: H: Z( q; }8 a5 K{ + J# r) D9 X8 Y
int m,i,k,h=0,leap=1;
- x' k8 l! n4 O2 kprintf("\n"); ) L; h! ?# Q5 u
for(m=101;m<=200;m++) * h  [) Z% V) m! i/ t, x
{ k=sqrt(m+1); " l* |1 S3 p/ ?+ R- v  e8 B
for(i=2;i<=k;i++)
5 a9 M& x3 @( X6 d/ ?if(m%i==0)
( |" `8 R" X; y" Y. V1 a- D$ S{leap=0;break;} & C  M8 M7 s7 q7 V) }& r
if(leap) {printf("%-4d",m);h++; % n  H6 a3 p  J# K. D1 y0 V) T
if(h%10==0)
( X$ |. t1 r" H" c% h5 e8 t- R5 V: eprintf("\n"); 2 [8 Q3 |# D9 C+ J  T
}
1 H) R: V; h* l) T2 u* _" zleap=1;
9 s+ \( T3 v9 B& k9 a) u# a: e} ( S/ \1 u2 z5 [, l; Z3 n# _3 z3 b; _+ ]
printf("\nThe total is %d",h);
& N1 f2 ]; Z4 g/ f4 x. o; L. h}
) B. Q0 k  s$ @" d$ `==============================================================
9 h" D. Y* D. z6 \  p【程序13
1 @8 q' m7 U& y' w/ a! Q2 M' g题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 ' P$ r  D  y& l2 j2 \/ o9 x
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 ! L$ F" J1 N. R9 m7 ]5 M
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 . {: L% C" r- [0 ^5 M
2.程序源代码: $ ?. V8 K# z' G/ ]- p* P# k* O7 D
main()
( X! n9 s" c. `7 P: J{
2 O  P: O3 S! Wint i,j,k,n;
) ]  [! z( H: Nprintf("'water flower'number is:"); $ n' l7 L" ]! d# O8 d
for(n=100;n<1000;n++)
3 ?* K% J4 R. R2 w1 {7 W% `; M- t{
) X5 r' k8 G+ x4 ]: |% i# b6 Bi=n/100;/*分解出百位*/ 8 j. H5 W$ A* J) N  V
j=n/10%10;/*分解出十位*/ 9 |* M( `: ~: J) P
k=n%10;/*分解出个位*/
* ?' e/ H9 A4 ?; J9 W! wif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
2 o' X; |0 g/ p& Q# f9 `6 r( N{ $ d" k4 d6 D+ f( W  s7 a
printf("%-5d",n); 3 n$ W7 t% k3 e# D1 r
} 1 m) i0 t, }* ?  m/ G
} # x1 Q6 `/ {4 q9 X! {) O* r
printf("\n");
, P4 U( R% S; K/ w3 [6 H8 [} ( \1 j! c0 |, F$ O' m
==============================================================
0 Q" ^- P- ^6 k3 T3 b* O2 y3 H【程序14/ d, G, D/ o( I/ y1 O
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*54 c# ^9 z. J& q1 B3 P9 x5 F; m1 C

4 k# l1 I3 x- m* _% X程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
" g& E# P0 N: V6 R(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 / \' S. U6 |# [$ L
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 6 I- R: k- T5 t( a
重复执行第一步。
9 _7 M( s7 u& i$ {' ?3 q$ f(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 " Q( P5 r2 |7 |1 V8 j

8 p+ k5 D6 s; W& l& d2.程序源代码:
5 @) w- }: v# {4 R! {2 L/* zheng int is divided yinshu*/
2 s. c# R4 ?" _) ymain() + G0 a( T) v2 J, K1 X+ C' |
{ # O" M# j: _$ \7 F
int n,i; 9 z  F; ~+ q8 ?( t# v
printf("\nplease input a number:\n");
+ F" u, d0 |5 b0 K1 gscanf("%d",&n); 8 g% |3 `" ]9 _( h# M+ w
printf("%d=",n); * W8 V& Q/ h& b
for(i=2;i<=n;i++) ; t. g. f3 [2 u' d4 `+ q
{ 7 U' o+ ~3 ~2 G7 Z9 ~
while(n!=i)
! i$ m2 l* K3 L, w" ^3 |{
1 S% o$ a2 m0 F1 r, g0 |. cif(n%i==0)
" \# D( q% v/ o3 X, ~) e* N: D) w{ printf("%d*",i); % l# O% d0 b& E# y) Z. t1 p
n=n/i; ! k. T5 ?& N$ |7 p# J6 {
} & Y6 x5 m" h' ?/ S
else / U% _8 I7 K& d! a
break;
$ P) h3 q8 y. [3 Q}
( E- o! ^: k# J}
3 ^6 v) v( }7 o$ R: Qprintf("%d",n);}
  I& `! K( W0 K& [============================================================== 2 f; ]2 U( o8 O4 n
【程序15
+ I7 K! s2 ^; Q4 ^题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, ) V- M9 C& @" N) F$ P
60分以下的用C表示。 7 ^" k* p& {8 M0 Y1 m
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
' V" r( `5 |6 R2.程序源代码:
. Q8 o9 D) K$ c& |  }main()
+ O( B7 S& }1 c2 H: T{ 6 a3 [0 n1 @  J5 R
int score; 7 p& S* c/ v5 p1 |! A- K
char grade;
1 C# T* l% e# g: [" V& cprintf("please input a score\n");
) b  C$ }  k# _9 Sscanf("%d",&score); 2 Y: K3 ]. M. d' `& ]! n
grade=score>=90?'A'score>=60?'B':'C'); $ S2 q  Y' G- W0 b
printf("%d belongs to %c",score,grade);
( P% P8 ?5 G7 P" A1 l} 0 G9 `) d+ }. e# R4 o
==============================================================   ~3 A7 j/ H: I) H/ z1 ~
! K5 F5 L6 q/ X% R- Q9 ^3 `. t- d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-9-19 09:26 , Processed in 0.088410 second(s), 32 queries , Gzip On.

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

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

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