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

C语言算法6-15

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序66 X3 Q4 {& f, z6 z: B
题目:用*号输出字母C的图案。
* W* Y9 r" C% t7 D% I& {2 ?1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 & x" |. ^  ?6 K) R) U" o, H. E1 R/ Q" h
2.程序源代码: 2 Y  Z( ?% S4 f: @  f% t
#include "stdio.h" & t; N) J# p' O* @( a
main() { % r3 U9 O& k+ N+ @, z  q9 \
printf("Hello C-world!\n");
/ B" ]8 E) w' t/ v. `( i# u' B7 cprintf(" ****\n"); - A+ |9 ~9 O/ S* g4 m  T6 V
printf(" *\n");
. B, x: `! @* \5 K$ dprintf(" * \n"); 9 x# Z& [1 z  u
printf(" ****\n"); }
5 A: @( L( I* P  l============================================================== $ z6 t6 H  O6 z% t+ _
【程序7; e  Q4 K" u4 e& t; p2 P) D
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! , s4 L7 _( o5 g0 O2 i
1.程序分析:字符共有256个。不同字符,图形不一样。
6 B9 r3 w5 E+ Y7 c  X; \6 X) O2.程序源代码: + [- r2 A) x) \% Z9 P% W
#include "stdio.h" " s0 |% {7 L0 e2 r" X
main() ) _" y8 r2 B/ }( h
{ 1 ?. Z4 u  W. h- f& B! N) ^5 R  s* m7 J
char a=176,b=219;
0 u5 P) T, ?+ N% y2 a8 Hprintf("%c%c%c%c%c\n",b,a,a,a,b); 1 Q5 n. O; a2 C; f
printf("%c%c%c%c%c\n",a,b,a,b,a);
" N0 _3 Y  O9 c8 M7 `+ Iprintf("%c%c%c%c%c\n",a,a,b,a,a); ; V+ @7 z/ M& P( |$ C3 J( `
printf("%c%c%c%c%c\n",a,b,a,b,a);
- A# W1 L' ^5 |; Y. L" ^# nprintf("%c%c%c%c%c\n",b,a,a,a,b);}
/ a' n8 x. D- D! {5 n" u============================================================== ) ~3 w% {0 X2 b) S
【程序8
) E4 l# }2 g+ F- W$ H4 ^1 x题目:输出9*9口诀。 : B8 g; H# ~1 R6 E" j
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 & D9 r7 v5 z2 m* N6 |! Y7 V
2.程序源代码: # m/ r/ `7 t9 A
#include "stdio.h"
- C) I% v( t7 [# I" B4 bmain() ! ?+ L3 d% X3 z9 w
{
- R7 j' L! v1 Zint i,j,result;
+ @0 N. y7 _* Y) H; W$ j6 S/ Bprintf("\n");
4 g' ^4 [# p% J# z# _for (i=1;i<10;i++) 6 F; w9 I6 K; q7 ~: D: |
{ for(j=1;j<10;j++) 9 C- w1 o# `  ^6 o7 b* N
{   X9 a% S% N6 C) J; r+ t
result=i*j; 6 l# h/ i4 s% V8 K
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
! |, l; q, z9 y" o/ k6 w4 g1 D( g8 `} ' w% h2 V: d6 f6 ]- V" Q
printf("\n");/*每一行后换行*/
, @* ^& k! k& B9 A6 f* d4 i}
( x4 S+ u$ m4 p7 f0 m+ l} 4 g" j) t* D; `; s/ ?) ]
==============================================================
0 }4 e* O( Q; d% T' g* p【程序9) }& y5 W  g9 X6 L6 v- z* J/ w
题目:要求输出国际象棋棋盘。嵌入式学习企鹅要妖气呜呜吧久零就要)
& K' W2 C7 ~7 w! A: X1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
+ L! N) [" \0 M* y2.程序源代码: $ V) g* Z9 g( E! q5 ^6 D- T; o
#include "stdio.h" 4 y5 M2 P; K+ B
main() 5 k# h# I& h) s) j2 d
{
( [! K8 g* n- i) d4 Rint i,j;   P- e" x( Z7 l
for(i=0;i<8;i++) + D1 U% a' }# z) M
{ 7 R2 @3 j5 A' _$ }
for(j=0;j<8;j++)
) [4 G6 U8 S' H$ F* X1 Q* gif((i+j)%2==0) 4 m& x9 Y$ v5 d  \
printf("%c%c",219,219); - ^. z7 j- z+ _
else
1 A  r& r* y1 jprintf(" "); 9 ?5 K* |  d) p1 ~+ b
printf("\n"); 3 B. U6 ]( g7 V: m0 L) Z% o$ S
}
* g" D0 _" E' S9 n1 a% Q' p} % c  q" ]3 G9 o
==============================================================
: k) e, W4 H$ X6 W【程序10
# z3 I% l4 X3 D5 e4 l2 s题目:打印楼梯,同时在楼梯上方打印两个笑脸。
8 _; @$ @9 N& o0 o$ ~) q, x0 [% [1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
# e3 E" g* D. q/ Q: O% Q2.程序源代码: / Z! S6 z, S2 N. C
#include "stdio.h" . x* J- K- X! q
main()
1 d* B' C2 v" c& L; h% ?. N2 u{
! @: `9 d+ A7 b1 S' r; [int i,j; 8 W0 q0 B5 y1 c  E
printf("\1\1\n");/*输出两个笑脸*/
! I. B+ c' Z% K5 E: V7 cfor(i=1;i<11;i++) , G# H. K- _& l4 q$ M
{
* {6 n# M# Z% Y2 }* h. B% p9 Ufor(j=1;j<=i;j++) % ^, o7 g5 ]* k$ h
printf("%c%c",219,219);
. n* i+ K0 q; d$ F& U! W& g" f: I% b( rprintf("\n"); 4 A4 y1 ^( e1 z2 ]: k6 x
}
% E$ L+ C* V; N- ~) F} - ?; |2 `6 @( ?8 M7 S! j
% \3 P3 u5 k  {

$ t" f0 A1 {4 c+ @0 u; G% r% e+ O! C7 ?! q3 D3 e9 _$ t1 v+ x7 I
作者: zhlei81 2005-1-22 11:29 回复此发言 : I: e6 Q6 k% A7 \8 Y+ S% G

! o; L$ h8 P, J% i+ s' o-------------------------------------------------------------------------------- 6 N  B* x* |  b( r: P' K
7 p0 v5 E$ H/ D8 Y9 I% |
3 回复:经典C源程序100+ c3 m8 X3 E0 X
【程序117 s; o: D5 H0 Q$ h7 v$ J" _, ~
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
# N: J6 o% {6 \  a' B& f后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? + ~1 N  D3 m6 B* l- q1 G' A+ j& q9 J9 H
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
1 k5 Z5 |6 S- L# ~5 r2.程序源代码: 5 g& g2 }0 o+ r9 G- r7 r
main()
. w+ B# b, ?+ E9 X4 E{
; O% z% x  I& ilong f1,f2;
8 G& Q  O" g6 n' Mint i; , X2 s  F& n8 z& z
f1=f2=1;
3 S- [+ B4 s5 M0 b! J) A+ ~$ hfor(i=1;i<=20;i++) , }2 r; S3 o) q8 R( m* c$ T
{ printf("%12ld %12ld",f1,f2); 4 g0 r$ t- ]9 V& ?
if(i%2==0) printf("\n");/*控制输出,每行四个*/
/ F4 ]) L, B3 rf1=f1+f2; /*前两个月加起来赋值给第三个月*/
" z* A, r1 K  k* R: K  Y, l( |5 Gf2=f1+f2; /*前两个月加起来赋值给第三个月*/ 1 N8 N! n+ k7 p& N) o3 K( Y5 q5 N) U
} ; O: U4 i7 z: {/ P  }
}
4 B4 C. q8 u7 \" s# \+ j6 J. e% r============================================================== 9 w+ t! }2 C6 W/ q4 c
【程序12
$ ?7 s* N2 q6 ]+ w7 F7 E6 Y2 ?- K6 R1 |题目:判断101-200之间有多少个素数,并输出所有素数。
0 E5 z0 v6 d7 S6 H7 z1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
) Y- k$ L+ [; s, S% Y& \则表明此数不是素数,反之是素数。
; D2 M9 o2 r6 t2.程序源代码:
  G0 G7 \1 B" z' b1 X7 s+ X8 A  J4 S#include "math.h" / d/ {8 D/ a! H
main()
( g9 r" {- y  U( M' Q; N! h{ 9 M3 j  o- L% A' P+ X
int m,i,k,h=0,leap=1;
$ J# Y! C! E( [6 m: y, ?# Hprintf("\n");
; `0 Q! ?4 q+ n4 i+ S+ w3 F* wfor(m=101;m<=200;m++) 1 M7 x) K% Z+ e; e: D$ Z* x/ V! C
{ k=sqrt(m+1);
% Z5 s8 L# s3 r+ p8 h+ Z4 `; |for(i=2;i<=k;i++)
% J$ j/ J* T' Q% O* a+ `9 {$ M+ X+ Lif(m%i==0)
" c0 P2 \( u* ~4 j& A' j" M{leap=0;break;}
  X/ u7 A3 Z+ b6 {( _* l+ R# tif(leap) {printf("%-4d",m);h++;
1 n! }0 ?" R+ m7 O5 ^. m' Y( ^if(h%10==0) ( P& D; Q6 i9 k) k
printf("\n");
% }  S& I7 N- N* o} . H# d! |# h& p/ T7 D- O. s1 V7 z8 \, J
leap=1; 0 r; m3 K/ |3 |
}
& C6 o) o3 M0 l0 n. nprintf("\nThe total is %d",h);   J! `! X) {( L* p. ^1 t8 u
} 1 U5 L$ O; A3 i) ]5 c4 a
==============================================================
# j$ o" `+ T1 {8 C" s, A4 Q5 x【程序13
; T& t- _( s+ z, \" t" O  L6 M题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 9 y; R% |( W" S4 I9 c# N) c
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 # |5 m, x6 K8 o1 ?3 {/ \
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ! s* d; P0 Y( w' K: i" P
2.程序源代码:   s" D$ ~  a# p3 k% o' Q
main()
, u! Z3 g' K2 i9 D: k% ^; }6 z{
0 H: s% ]+ x, W8 P8 @, mint i,j,k,n; ' Q: F$ R+ }4 F8 i6 {/ R, s" k
printf("'water flower'number is:"); 1 Z! o& I$ H) i) i* c
for(n=100;n<1000;n++)
, _) v  i1 _) y$ Y- f{
$ x- k. w9 b9 L- J; li=n/100;/*分解出百位*/
& `) ^0 Z/ {" h0 Pj=n/10%10;/*分解出十位*/ 5 V( t, T' t2 x; S0 w  U1 R
k=n%10;/*分解出个位*/
0 G2 I! h5 e. D; x( qif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
1 q1 e' K* x6 Y3 A1 ]+ O8 f{
& |9 B& I/ `4 m- o0 [. g) ^8 i% B6 _printf("%-5d",n);
3 H  V7 N$ M1 C* C}
1 i2 d6 y" ]0 H' L$ A% o" B}
7 L* C! N7 d1 |/ Z" Hprintf("\n");
: g: X3 i1 I7 d. ^: [5 F5 v}
4 `- e7 n; V! d& m5 }- ]: Q============================================================== . k+ J3 P0 W: F5 [+ U' ?2 M
【程序14
" i7 z& p5 ~& R题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5' Q; p; g/ q3 f0 j; q
. g8 {: n; Z, N) e  b
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
8 ^0 P* y. o; X0 F0 _: V* k0 @(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 5 ^5 X: [! f9 G' c
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 8 y8 [7 j* k/ ~9 T5 l
重复执行第一步。 0 u) U( j- Y, ?, k
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
# v3 H) m5 q$ w9 @: P! O9 C" X: Z  K
2.程序源代码: 4 _, d7 y6 g9 a" `  n5 ~
/* zheng int is divided yinshu*/ 0 {% Z& _( u2 k; C9 c1 E
main()
- c# F! \$ L4 D5 _) y) F# M{
+ k5 F! Q  m3 F1 s# }6 d; ?) aint n,i;
- m1 x5 ^" i+ J+ t6 @printf("\nplease input a number:\n");
: V: s' D+ i% Uscanf("%d",&n); ! G0 _4 B+ @! i. X: Z" q7 T9 i
printf("%d=",n); ) ?: L2 K0 e! o) H, x
for(i=2;i<=n;i++)
3 l, V; b* a  |9 U9 a' f. a. {- ?. o{ 7 j5 C( _# ^8 i7 |( W! {" s$ F) S
while(n!=i) ! y1 p7 i2 @8 a1 c4 p9 B
{
" B4 A! |* X, e1 x" e" C( S) P1 w& v: zif(n%i==0)
( @6 e' i0 X1 o$ W, ?. Q0 }{ printf("%d*",i);
/ {% m; S3 y! e- i0 Cn=n/i; 9 D. e: N; W8 X) P7 z: A
} , Q' ]0 ]5 P' o# M7 m4 \: p
else
5 U& L8 a* L( }9 Q( q* u8 E6 Y$ i1 @break; 5 q  @( D4 S- b3 \( x- K
}
" v& t# J2 @, m9 p6 A$ |0 @. z} " E, Z" C  T& v5 u# K; k
printf("%d",n);}
2 W* }' U4 e* A==============================================================
' R7 z" t( S! I) i" w' R【程序15; H  B" z, M6 f- y" R' o6 r2 y
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, 4 D) i; A, W" h+ Y% [; L* A1 I
60分以下的用C表示。
+ b0 ]+ R# p$ q& ]% Z9 ^1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 9 i$ {" i# x( _- v: i
2.程序源代码: " C6 F: {3 _, S1 C* l
main()
: D2 r+ @. X; k: i0 p* {{
; q, o, h' [; J! ^- Vint score; * Q- j1 s% o! i: z/ G
char grade;
5 O! k0 o' K9 j* y4 d5 `3 Iprintf("please input a score\n");
7 u$ i1 a- f/ q% {. e- @scanf("%d",&score);
$ f: l5 h, Z; N/ v! Cgrade=score>=90?'A'score>=60?'B':'C'); ; E( Q" ~: x7 {' Z
printf("%d belongs to %c",score,grade); 5 n4 y7 l/ T# w
} . R* @7 \! l& i
============================================================== 1 w9 x) O) ^, ?% z+ Z- Z
! D1 Q, p5 p3 o+ M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-23 12:27 , Processed in 0.093750 second(s), 24 queries , Gzip On.

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

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

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