机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

C语言算法6-15

[复制链接]
跳转到指定楼层
1#
发表于 2017-10-5 16:43:28 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
【程序6 7 f3 x$ {9 t: i% T0 b
题目:用* 号输出字母 C 的图案。 2 K4 M1 z$ n/ X1 i2 N+ G& o
1. 程序分析:可先用 '*' 号在纸上写出字母 C ,再分行输出。 ( z/ M" L' M* p$ z# p. Y
2. 程序源代码:
3 J9 @( |, D5 j1 ?#include "stdio.h" ( ?3 X+ t, ^$ _, S- H% S
main() { " B, l7 E$ l; Y
printf("Hello C-world!\n"); ( ]5 n+ ~* A/ c& z" i+ }
printf(" ****\n");
/ S4 q2 r6 \* ~" J* d( lprintf(" *\n"); % r3 ]" M; ]" o0 ?5 x$ L
printf(" * \n");
4 O/ v- i5 Z! ], Z8 ^8 Iprintf(" ****\n"); }
% g4 B& u2 F* C==============================================================
% W6 F9 [7 z; b% A4 V- v. a 【程序7
3 z! M3 R! [8 s8 Z9 Z8 x9 }( s! ? 题目:输出特殊图案,请在c 环境中运行,看一看, Very Beautiful! 8 u4 x- @' q, B3 C
1. 程序分析:字符共有 256 个。不同字符,图形不一样。
H: r' N5 \1 F0 ?2. 程序源代码:
: a& H1 w- R8 z; Y3 w3 Z& q#include "stdio.h" 2 n3 T3 c1 S4 V+ {$ H/ J
main() 1 n l, P. t5 T
{ ! o, v" I* o6 Z: {6 k( `
char a=176,b=219;
- z. s4 A1 q) yprintf("%c%c%c%c%c\n",b,a,a,a,b); . c% T- z3 ^9 v/ C1 R, V/ H3 j; A
printf("%c%c%c%c%c\n",a,b,a,b,a);
; ]" u7 n# Y& o5 }printf("%c%c%c%c%c\n",a,a,b,a,a); 4 l# ~7 r/ y7 E! Y% x
printf("%c%c%c%c%c\n",a,b,a,b,a);
# K" @1 B1 f1 Q9 j0 y. aprintf("%c%c%c%c%c\n",b,a,a,a,b);}
8 q ^3 z8 }5 f' D============================================================== & h: O: p" y) B: ^
【程序8
( ?( G, K- b/ k0 \ 题目:输出9*9 口诀。
; j* z a+ M5 ?# A6 U+ s0 }9 n1. 程序分析:分行与列考虑,共 9 9 列, i 控制行, j 控制列。
" i, N6 W7 v% S6 S' b2. 程序源代码:
5 ~ X! @! E( t& y( B$ D#include "stdio.h"
+ d" F4 O5 W7 P# k# X8 g. @main() " b& E/ Z' W Y$ O5 p
{ 1 w* a( Z: c" m
int i,j,result; ' Z0 B# T7 b& C8 @5 P
printf("\n");
( b) I. }2 `0 W$ lfor (i=1;i<10;i++)
6 V3 \! R5 G4 a0 x2 z7 x" f{ for(j=1;j<10;j++) ! m2 I4 ~/ q1 p5 T; _( a
{
- w& w* V3 S, s% ~7 ^result=i*j;
1 f- I' e3 j9 wprintf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占 3 */ : b2 Z/ s" g7 G: Y
}
6 x9 R% b% Z: N9 s5 u' tprintf("\n");/* 每一行后换行 */
* \0 g4 m' }- ~+ e6 P: F) R' ]3 G} - N; i6 B2 _5 o& V/ J6 G
} % b: ]2 }0 @' \$ |3 I
============================================================== % G2 m' e5 G+ S# C) ]
【程序9 8 z2 H8 q! [# \7 n' B; L4 Q1 q' D
题目:要求输出国际象棋棋盘。(嵌入式学习企鹅要妖气呜呜吧久零就要) & e2 r5 `! K4 J1 V8 ^
1. 程序分析:用 i 控制行, j 来控制列,根据 i+j 的和的变化来控制输出黑方格,还是白方格。
/ D3 x5 ?' b: ]7 A2. 程序源代码:
' C! I( y; y( E8 I' m7 P# N6 b8 Q#include "stdio.h"
, N- Z* o: R1 Y' t, m. j3 `main()
q4 `/ n/ e, q# C, ]" W+ [{ % {0 v6 L8 \9 A) [1 _( S) ]
int i,j; * ^% s! {# @) m5 [: _3 ^+ x0 _
for(i=0;i<8;i++)
- }$ a; u f* l( T- ~/ D{
% t4 q- O5 g- c; X4 o+ s# }8 dfor(j=0;j<8;j++)
" \7 }9 p: ~4 ]- sif((i+j)%2==0)
- D7 V- n3 l5 {7 \: c" O* }4 Sprintf("%c%c",219,219); - g/ }# d; @: u8 u h! R* D" ?
else
* I2 j' }. t6 q- D" p" H2 ]printf(" "); & `/ n( b$ }3 E6 O) f
printf("\n"); 4 x7 H4 l2 W" s4 _8 t
} . { x0 n& _& _/ Z" D& B+ G
}
! ]' [$ _( [$ d1 t* @============================================================== 7 o3 D) h+ i5 J2 L* N, Z
【程序10 , {: }/ k `) l m4 j- I
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
# ^; m: d/ O2 D" n7 p1. 程序分析:用 i 控制行, j 来控制列, j 根据 i 的变化来控制输出黑方格的个数。 ) a t8 B$ L# W. \
2. 程序源代码: 6 I1 u) ]9 G4 T8 w+ g. M2 i# p
#include "stdio.h"
) p/ f+ r6 ?# |6 U" w- \, q1 Mmain() * X9 _0 |% j$ i+ v' \2 t
{ : g0 c; p6 b' q/ }0 V+ x& ?) Z
int i,j; & G! N7 B. K* y7 W/ E# G( n4 B
printf("\1\1\n");/* 输出两个笑脸 */ 6 { b1 x- @/ ]3 X: U
for(i=1;i<11;i++) " s3 S _3 h0 @5 M( z J
{
5 Q( ?7 u! i9 ]for(j=1;j<=i;j++) % n1 [9 B- ]6 X$ j2 z
printf("%c%c",219,219); 3 y8 T/ x) v0 `+ f1 M) D/ Y5 i$ E9 g
printf("\n");
% e1 p: Z" c0 a6 L}
5 c9 u) B4 i3 ?& A5 z7 `} - U8 H; h4 E" Q, v

$ _: M* z' z0 `* q / c, g/ h' O {3 I

3 c0 z: ^& b; ~( ~ b3 F" f' W 作者:zhlei81 2005-1-22 11:29 回复此发言
2 L; A1 F* ~. ^ N0 Z$ ^
2 c+ l! H/ \! j" U$ |' [-------------------------------------------------------------------------------- 5 }* |: e: G8 }+ T" I2 D
; j F$ Z4 a, C6 T+ o0 U+ Q. I
3 回复:经典 C 源程序 100
n& C" d* n7 t# C' G 【程序11
# r" {; g& J( N3 p' N9 T# k+ L 题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月 8 a h) N% x. d. S
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
0 J2 ?% R4 V2 O! Y: ^7 m, R1. 程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21.... / v% M* u( L* w4 \' b( W
2. 程序源代码:
* \; z0 o: s" @" h5 Mmain() 5 w ]5 o3 _4 X+ R" I. F: C
{
, ]7 T* F1 k+ [$ J a2 V, ilong f1,f2; * Y4 B( P& Q% T! d5 c
int i;
/ a0 a% C; c; j/ m# O+ Vf1=f2=1;
1 C# Q$ U2 ~) r: s: zfor(i=1;i<=20;i++) + `8 _7 [9 e" x# a: t" B
{ printf("%12ld %12ld",f1,f2); 6 |% M4 d6 e0 v' w
if(i%2==0) printf("\n");/* 控制输出,每行四个 */ 5 E6 R8 b; S* }5 \; _
f1=f1+f2; /* 前两个月加起来赋值给第三个月 */ # T2 G7 I3 k* x: R9 j: `, G3 a4 k/ x
f2=f1+f2; /* 前两个月加起来赋值给第三个月 */ : t4 |: u* b# A+ m, f! |
} . @4 ~- c2 N' q9 F5 |/ T
} / ?8 N! m( s) w2 @( l
==============================================================
8 }) p* g2 p( h% }* K 【程序12 3 f$ _3 M) ^: _1 y7 D
题目:判断101-200 之间有多少个素数,并输出所有素数。 ( b g2 C2 K( s7 F/ {" H- W5 b
1. 程序分析:判断素数的方法:用一个数分别去除 2 sqrt( 这个数 ) ,如果能被整除,
) s' `' \* g* h z) N K 则表明此数不是素数,反之是素数。
! y! }; B% B$ X# Y8 a" _) {$ Q2. 程序源代码:
2 m' W w5 D9 n6 {; Y4 {4 A0 Y#include "math.h" % a7 l7 _( n# s
main() 6 n$ z: k% b- J8 Q3 }" [2 U' D; o
{
: z T6 G e/ lint m,i,k,h=0,leap=1; / S5 g8 n2 x5 r
printf("\n"); + D; X. q4 i& B! q f7 }7 R
for(m=101;m<=200;m++)
* t: A7 c; W2 X" H$ y: v5 w7 p{ k=sqrt(m+1);
) o; f4 V' M0 Hfor(i=2;i<=k;i++)
1 Z% i% w' x3 V6 f( Zif(m%i==0)
, L; d: F' b+ k$ {{leap=0;break;}
* H2 w7 F! w/ j+ Sif(leap) {printf("%-4d",m);h++; * {9 }. W- T# r$ u5 M" x
if(h%10==0) }, ^5 {- d' ^' V1 ^
printf("\n");
! S6 E, e/ f( b, U) j b} - r- J7 ?, o5 C3 A
leap=1;
" n" O4 B* S d( G9 ?} 4 O' w$ J W0 l. C# }! ]2 |& I
printf("\nThe total is %d",h); : y) B: Z# Y0 z6 k
} + K+ |- U( j' y. h9 m2 `: p
============================================================== 4 O# s! n! R; f$ W( g/ ~2 u6 t
【程序13
! ]; e! u8 g" l6 P* Z, o3 ^$ @ 题目:打印出所有的水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数
( |& P) ? E% r6 [9 b0 l/ Y" V 本身。例如:153 是一个 水仙花数 ,因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。 : d4 V! m) R! h: z6 N( D8 d( ?# [
1. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。 . M# S$ D8 E, j* d4 _' v
2. 程序源代码:
% e" o) a7 `/ F$ smain() ( \5 N6 A$ Q/ Y0 [3 O5 z$ l
{
4 C% T0 r( e3 b0 F- d9 Hint i,j,k,n; 7 Q/ [0 V4 t) Y/ w6 p8 Q
printf("'water flower'number is:"); 9 ]2 Z; V* {6 M, p" p1 l3 P# J
for(n=100;n<1000;n++)
+ b6 M1 y$ Q9 p3 \# _{ ) \) x! k9 u: z8 w% K9 U
i=n/100;/* 分解出百位 */ $ I& g2 P9 ]8 g* Y* v
j=n/10%10;/* 分解出十位 */
8 H1 s8 K U: |( N* J2 {2 ^k=n%10;/* 分解出个位 */ 5 ?+ e5 o \; g2 p t- N; v. p
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
+ n, l M* l A/ H3 B+ P/ }3 y" D{ 4 D* X# G' ^- g4 L
printf("%-5d",n); $ M. G" f8 b- n. p: Q/ A# J
}
1 l/ `( S2 A3 b7 B a# L} ) H# O+ g6 n/ x( P C
printf("\n");
& k, w# _1 ^6 v T3 N}
0 ]" U0 ^8 r4 r) ~ N============================================================== 6 X5 j) q. l0 K3 u
【程序14 5 @) }$ P6 ]# o/ X# i: z% ]
题目:将一个正整数分解质因数。例如:输入90, 打印出 90=2*3*3*5
* I+ A" V) w: h6 Q 6 Z, m- ?7 u/ l% x7 W, c/ G, P" ^# I
程序分析:对n 进行分解质因数,应先找到一个最小的质数 k ,然后按下述步骤完成: * A% R8 z5 J5 l
(1) 如果这个质数恰等于 n ,则说明分解质因数的过程已经结束,打印出即可。 ! j! E! B, ` R0 \1 o( {
(2) 如果 n<>k ,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商 , 作为新的正整数你 n,
0 |4 g9 M" s8 L) F( t0 X 重复执行第一步。 4 H; P! I, Z2 y" W0 _3 a$ r
(3) 如果 n 不能被 k 整除,则用 k+1 作为 k 的值 , 重复执行第一步。 6 T% a: o3 O1 c4 n

( y" {2 I9 {7 a' J2. 程序源代码: 5 C1 x! K2 q/ f6 u+ f; V9 ?% U' Y7 G ~
/* zheng int is divided yinshu*/ / ~9 v( B* V) I
main() # U( |% q: b" t. t4 i2 a
{
* L: t, x4 z3 i1 [( Uint n,i; 9 z7 M& M: w0 Y. N0 y& t/ Z3 a% i$ J
printf("\nplease input a number:\n");
( ~; O2 h6 J7 f/ n {7 i; sscanf("%d",&n);
4 N" ^0 g" p: s# E6 j& Xprintf("%d=",n); - M$ r4 K5 [+ r( _: @4 U% _. Y6 x
for(i=2;i<=n;i++)
; e7 I2 t1 _6 |& d" [' Y{ $ C5 P$ i* e. G# ? C2 P
while(n!=i)
8 i( z# t# E0 h3 v5 q! P{
, D( x) j+ d% o7 r( ]* nif(n%i==0)
8 E; @7 `: ?- o! Z6 S{ printf("%d*",i); 5 F+ t0 U. f6 @- E! b8 t2 ]
n=n/i;
& `: s8 x" ~' r1 Q2 q} / M7 Z% ~- |9 c5 O8 s
else 8 p1 H+ k8 U) y
break;
% S* N" j% Z4 u) }} / G7 Q5 B6 f7 o) ~, w6 q W
}
. H! a/ y! Y$ W8 @% `( m1 Yprintf("%d",n);} ( w' q- I% y: L% _
============================================================== ! m {; J- s7 C$ ~' U4 e
【程序15
8 q* H( {" T& \! a1 X$ w/ Q 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示, 60-89 分之间的用 B 表示,
% [" x9 J: m m3 p& a+ g, r K" H60 分以下的用 C 表示。
" a; Q+ V+ }4 P4 n6 R1 Z: `1. 程序分析: (a>b)?a:b 这是条件运算符的基本例子。 7 j+ Y, r3 |9 `+ f2 U i
2. 程序源代码: : b% s! }* o5 p% Z% k' |& {" W; k. _( ~
main() ! m6 ~5 y' ~2 ?
{
2 u$ \# g# G/ N( f4 K( Sint score; ' g! ?# Y& {: n, P5 ~4 b
char grade; 6 b$ {" s( f* H0 x
printf("please input a score\n"); % v* S, }: V! }$ S d2 G
scanf("%d",&score);
# K6 d ]. o# H/ igrade=score>=90?'A' score>=60?'B':'C'); 0 I/ L1 Z/ l+ G, S! K
printf("%d belongs to %c",score,grade);
' k; E% J! M$ ~2 a* D* C}
! Q/ l* q# G! q: C+ H1 U# O1 w============================================================== ' [7 S, C P" W% B# P" o
7 x+ C9 [4 s# b! D: i- k3 s" C4 c
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2025-1-26 09:47, Processed in 0.057473 second(s), 13 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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