QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 7285|回复: 9
打印 上一主题 下一主题

经典c程序100例

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2004-10-4 02:08 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

事先声明:

5 g0 \$ b5 c7 I# N+ G/ G

此100例非本人杰作,是本人收集来的!

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持1 反对反对0 微信微信
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序1】 $ I- `, |' v% x题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?: O& p# A6 @* }: p5 n, Y/ I% |, K 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 # S$ M. x- l" L" I      掉不满足条件的排列。 / k6 n+ a3 H( r 2.程序源代码:, D* J. \; `0 r main() . t) g ?; ]! V1 E' v{7 j5 h! `7 O3 W) B int i,j,k; : e j1 W% }! X N! Hprintf("\n");( K' j% p4 K0 f) A for(i=1;i<5;i++)    /*以下为三重循环*/3 ?+ M' x+ E9 |0 f2 N  for(j=1;j<5;j++) : G8 Q7 ? ^- {   for (k=1;k<5;k++) . @% L1 s% ~7 g/ d2 o8 |   {7 C t' ^) x; t: X/ r     if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/ 5 C0 L" H2 O$ }/ q6 U8 p: ^8 ]    printf("%d,%d,%d\n",i,j,k);: Q! G! E& k6 y+ r! H    } |5 j2 Y! M$ G } 3 Q, M4 m! E. L# V==============================================================6 a8 X5 T' ^; _ 【程序2】 : t$ @) _' r8 w: B2 j5 e" {题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 ; C$ p% |7 `! D/ Q7 c& ?   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提' Z/ U) [3 ^* L8 @8 D    成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于* T# d- V$ R! @( A    40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 % e) o( G3 f: Q* x   100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?$ `5 Q# j0 ]- J" U+ R2 ]/ K 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      ! P6 m% m. G" `$ s 2.程序源代码:7 [/ H" }* m" U" v main()5 \) a& \# @; N { & v$ o. i; S, O; S6 {3 S9 \: Klong int i; : i3 ^2 t. T! v/ Z9 D) s* fint bonus1,bonus2,bonus4,bonus6,bonus10,bonus;, a' E: E) e6 _2 T scanf("%ld",&i); 7 s3 i a" s4 q' C, hbonus1=100000*0.1;bonus2=bonus1+100000*0.75;$ H, V% T0 w' ?9 j' k6 ^! E bonus4=bonus2+200000*0.5; . O" `( N+ p: S8 V Qbonus6=bonus4+200000*0.3; 0 M2 f T$ g C2 Fbonus10=bonus6+400000*0.15; # \! X4 A. ?- N, x$ W; u( Y4 ? if(i<=100000)1 o) l6 e* G9 D% Y f& M   bonus=i*0.1;0 \3 j1 W2 n h/ s, u) C  else if(i<=200000)1 I& G$ C. B- K2 K0 A      bonus=bonus1+(i-100000)*0.075;' g, F% Q4 r7 }& N     else if(i<=400000) $ X- l, A# V W        bonus=bonus2+(i-200000)*0.05; / k2 X0 j1 _( k4 k$ }       else if(i<=600000)3 J& ? Q0 W1 S O1 r            bonus=bonus4+(i-400000)*0.03;: _: u$ _0 M7 g           else if(i<=1000000)' ?2 F2 c, r( e7 L0 F4 W- w               bonus=bonus6+(i-600000)*0.015; ' m* D1 ~( D* A% m4 w             else 6 Q9 P1 z6 L0 P: Z0 K              bonus=bonus10+(i-1000000)*0.01;2 K$ R& x* H/ { printf("bonus=%d",bonus);, `7 c( G2 y: r+ D1 S. | } 5 m2 A( Y+ S: a" y , s1 `3 T; E& [7 } ============================================================== - F1 O0 o) {$ J! y【程序3】1 u/ L) c, e+ Z3 m8 v0 P: z 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? - E7 j- i' D3 a2 x* G1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后5 g- a: [/ h& B/ M# r7 J       的结果满足如下条件,即是结果。请看具体分析:* C# M; m+ B' i" ^& W 2.程序源代码: / @/ M. |" q! w* u* R8 y#include "math.h" ' I/ O- E$ d: s9 y$ Q9 B kmain()# E$ ? ?6 S/ l9 E( i9 m {1 K$ T/ \- U9 L$ f long int i,x,y,z; 2 n) o0 B4 I! F# f! ^% Pfor (i=1;i<100000;i++)* }# e$ c3 p! D# S8 L- x, h  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ ! J* _) `8 @% u4 f0 {  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ : I% B+ |+ \& c/ G' S/ N( F   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/) W/ ~7 b) ^# D     printf("\n%ld\n",i);7 p- `1 |+ r6 s! P# F# X  } 7 n. P N. f$ P/ c, r}* \' D6 h$ V* W" Q& N# w4 F, E ============================================================== u+ W6 t- U& i# | 【程序4】7 O8 T4 Q ^5 H/ P 题目:输入某年某月某日,判断这一天是这一年的第几天?. @) x& @$ {; j# H" C& w& x5 B 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 & V6 n8 g* t) L5 R      情况,闰年且输入月份大于3时需考虑多加一天。 \. s9 ]7 \ J6 F9 q 2.程序源代码:7 A( m& ^& R4 t6 U) b, m) p/ \( N main() 5 V" \5 ^' K3 g" W, e{ 0 N' k& E3 k( v6 q# Aint day,month,year,sum,leap; 2 q# K; t3 l- n' q5 {# hprintf("\nplease input year,month,day\n"); # ~2 V8 j, P% A# b$ [9 A% ?scanf("%d,%d,%d",&year,&month,&day); ( e+ M$ x1 X, P+ i6 Bswitch(month)/*先计算某月以前月份的总天数*/8 q/ _1 s( e' Y6 p { . L6 m5 Z o0 l& Z# m case 1:sum=0;break; ( v, z& ^- H' y) Z9 O; W8 x% ^" } case 2:sum=31;break;8 L3 E' r- w# f  case 3:sum=59;break; 0 l. Z3 u, X* z4 ?$ G. S4 }$ A case 4:sum=90;break;6 }% a) D1 H; [2 j: O0 P2 I  case 5:sum=120;break; 7 t# k, W" | h+ N case 6:sum=151;break;8 u+ y# U Y; L+ {  case 7:sum=181;break; % }7 b6 o% F" P) a# {, U case 8:sum=212;break; 6 G5 R8 |5 R9 h$ Q. I7 r case 9:sum=243;break; 7 d2 U4 S* q; C& ` case 10:sum=273;break; : O' ~1 ~ Z- S case 11:sum=304;break; ' \+ e; F4 X6 y7 ^ case 12:sum=334;break; ) m& E% A% W+ f ] m& ~- z+ Y default:printf("data error");break;+ W. G9 U/ r* r" X+ ^; _ }' `8 ]) M! U8 P! j% y' { sum=sum+day;  /*再加上某天的天数*/ 7 q" h0 E- T( O if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ ! r: @" Y3 @! U+ l0 n  leap=1; ! _' f" `, j( p" Y9 i, Q else5 Q* t- O; n: u3 d2 }. X& O   leap=0; ; b$ o) r; c$ T4 b2 A% O/ O3 \% g: U' qif(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/$ l( v. B5 A @- Z. E sum++; / s: T( o* o4 {printf("It is the %dth day.",sum);}$ Q) I6 @# Z5 H K; A& d/ l G ==============================================================1 }% ~* ?6 U e 【程序5】2 M* J4 i% R! @8 q2 L 题目:输入三个整数x,y,z,请把这三个数由小到大输出。) L3 r% ?! H+ y8 c G8 ]! v2 B 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,' j9 s$ K/ l" U, \& E5 V1 v       然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 3 w* K6 ^% v- ^9 u& Y2.程序源代码:& I; j% |) I" _- f7 y. y5 E main()5 {5 o! [# S4 C% k( s6 m% o; w' c {3 I! r+ B7 O( V4 U+ ] int x,y,z,t;3 Y# m8 P' L6 D5 D. N* m scanf("%d%d%d",&x,&y,&z);- ~# n, C+ ~9 F1 Q: E9 q3 u if (x>y)5 s. x+ @8 }3 T& ]3 B: ^( Y {t=x;x=y;y=t;} /*交换x,y的值*/( P5 N8 r7 F- W$ t! g: ~* s; w) c% A if(x>z) 8 F* K& |% w- t; A: C( V{t=z;z=x;x=t;}/*交换x,z的值*/ 6 ]7 Y1 E( ~0 }" W2 d, Gif(y>z) ' s7 Y# N: {8 e4 o( i8 ^( v{t=y;y=z;z=t;}/*交换z,y的值*/ ( \2 W& d4 \: r7 z1 c& Dprintf("small to big: %d %d %d\n",x,y,z); - Z9 y3 l$ Q2 B" R; ^} 3 K" d: H0 \$ L& r4 @( l) J============================================================== ! z" _8 T$ E$ l$ J( x【程序6】 8 S; \0 D& {" I5 R题目:用*号输出字母C的图案。8 K0 z- v" g& i6 V, Q 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。+ m- u7 N6 {1 H0 ~ 2.程序源代码: 1 P4 a/ J5 h$ L, ^) h5 e3 p/ G( m#include "stdio.h" * n ?% W9 v7 Q, ]2 Emain() 3 N4 r) M) Z6 o4 w# e2 Y1 M2 h{ $ v1 y7 d' T& D. ^printf("Hello C-world!\n");7 _; E: \+ y4 C+ J2 y printf(" ****\n");" Q9 q+ {0 m( L6 }. `( s+ W" u3 o printf(" *\n");7 I& P* Q: L5 p! H( I printf(" * \n"); + s; d- j* P0 T2 Tprintf(" ****\n"); ( W. }1 \) v+ p1 s2 o% p- s} # L0 D3 w+ P; C- j$ i7 Z; o============================================================== % a& A# {) c& y F: `, m p9 }: q【程序7】# _) A6 }3 a" I% }4 q) P* t 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! $ }# k4 _; E- }3 a& x1.程序分析:字符共有256个。不同字符,图形不一样。       5 D9 D$ z7 ~+ ]- L1 I0 {2.程序源代码: 3 u# o4 d5 z; ^# t" R- A0 l#include "stdio.h"5 e) P Y9 j8 O: N) S main() / E2 k3 @: R) g" H) F" C4 T7 L{ # _3 R5 U% E' S* g9 N& G. Zchar a=176,b=219;9 j9 L* ~( o1 v" f+ J' V1 E) W: { printf("%c%c%c%c%c\n",b,a,a,a,b);1 k9 x& C* G+ M8 q( x* O printf("%c%c%c%c%c\n",a,b,a,b,a); ) g9 X3 c( ]% qprintf("%c%c%c%c%c\n",a,a,b,a,a); 2 V$ s9 V3 F% e, P; S/ A9 t5 Uprintf("%c%c%c%c%c\n",a,b,a,b,a); * N& n6 r( X) J4 {9 jprintf("%c%c%c%c%c\n",b,a,a,a,b);} 3 b/ f+ C/ j$ `3 l. u============================================================== & [/ P! ]4 A; ^【程序8】 . @* P1 L+ N- Z& d* w9 d题目:输出9*9口诀。 3 |/ I' B; Y! E5 @1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。3 s! C) [( R2 _3 q( x$ F( ? 2.程序源代码:6 @6 g5 Z0 Z( v' Z5 F #include "stdio.h": y& y! b3 Z% Q$ C; E3 } L main() - L( b) }1 h D0 y# v( s# `( @{ & f& G! V* R2 Y& P int i,j,result;! l& o, f( d& P0 f' v  printf("\n"); 4 c, V3 w# Q* N5 e' G3 _9 B( g. L for (i=1;i<10;i++)1 P: k/ @: `( }# r K6 Y. Q& m0 k   { for(j=1;j<10;j++)* K5 ]. n( p$ o4 O( G$ h! @! ?) k     { 2 ^/ T. @( Z. k' R     result=i*j;1 A( P$ G" m3 u7 G/ }5 O      printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ 3 \5 J1 c1 w: M3 `    }; }/ U6 u+ u$ @ q3 [( t7 N    printf("\n");/*每一行后换行*/. d7 O% s, m8 S0 T   }" D1 M! P* }' v }$ `% h+ L9 u6 @) J2 S; ? ============================================================== $ T! {+ K, \6 N5 T+ t# l* P' F* }【程序9】; i4 W6 g# O- F* k% Y# f 题目:要求输出国际象棋棋盘。 * c# m& i: n. T- l4 C. u6 j1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 , m$ w& v7 m3 x2.程序源代码:! k& u/ P( h% ^9 O- E0 \* E$ v9 ~ #include "stdio.h"4 x, h$ n+ G; D. f9 o& ?# t main() , o) `/ m) b! c: n# n{' H6 u* t( j& w4 E) X3 X int i,j; \* m, Z" v; i0 }- Q# m, lfor(i=0;i<8;i++)7 R; f, |7 X' n: u& W+ v  {& v% L- Z- @+ w/ v% _, J& B   for(j=0;j<8;j++) / a& d0 i4 z7 }) w   if((i+j)%2==0) & {7 A* |8 U, v' p7 O+ d! B    printf("%c%c",219,219); 1 e Q0 h" [- r/ m" _# G4 J/ Z# G   else) b0 \4 X* Q/ L6 I+ @# `     printf(" "); |3 d3 h; V7 o" w    printf("\n");/ N* C- u% ^0 i: B) |7 b# i  } / n, T9 `) d6 A0 p* ]6 g} ! `* ~# ]: C' h( T4 T============================================================== % e: y# e4 p: ?1 m 【程序10】, p0 J& j" E# h5 |, h 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 $ b2 G# }6 ^! Y# t1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。) t' M6 g- p$ h" ?" ^ 2.程序源代码:& W0 b' g% U6 ^; H. Y #include "stdio.h"( y, l2 e# ^0 I3 Q" Y( n% q/ ~' P main() 3 O' e8 M7 o% z{$ ~# I: {- H h% Z% t int i,j;3 F6 O% N1 h; N8 S1 r" ]. z printf("\1\1\n");/*输出两个笑脸*/ 3 i4 ?+ V+ O/ p1 u' ^* _0 xfor(i=1;i<11;i++)2 T7 s3 J/ ~+ @7 X1 ~  {" Z ?( G! R) I) M  for(j=1;j<=i;j++) 3 | X1 i7 Q( m0 N9 A   printf("%c%c",219,219); 6 u; |" ?2 ~. _! J printf("\n"); 1 Y: Q# C9 P! f4 W1 i3 o% B2 Z }- g0 j- B0 q3 O" q& C3 a5 h } - l# S& v. g; E+ J9 m) ~4 |+ w

2 a$ [3 i+ M8 i: I0 H& C
[此贴子已经被作者于2004-10-4 2:10:53编辑过]
回复

使用道具 举报

3#
无效楼层,该帖已经被删除
4#
无效楼层,该帖已经被删除
5#
无效楼层,该帖已经被删除
6#
无效楼层,该帖已经被删除
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序51】9 l8 t, K: c4 n4 B 题目:学习使用按位与 & 。    1 p7 ]- f& h. M( I% ]1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1- H! t) J4 _: B8 p, |( R: A! A 2.程序源代码:8 \( y7 @& L2 e# u #include "stdio.h"" q. B O* E9 f/ U6 A7 I" f main(): @: ~7 T7 m0 B { # z4 t- n' O. Y) d1 ^5 Oint a,b; * j0 w- G) ^* f* O" S; M2 }a=077; 2 w, |. z0 J! X8 p# I2 G3 N5 ob=a&3;2 i' B* o, O: u. X, {! ? printf("\40: The a & b(decimal) is %d \n",b); + V- @. K# ?- \) Tb&=7; 9 t5 ^6 V* S( U+ E# d/ h; O; rprintf("\40: The a & b(decimal) is %d \n",b);& ~4 g/ ]9 c# ~$ w# c2 A% u$ O }0 d! \2 B4 E. O4 Y, ]! j# u5 z ==============================================================/ P' }! `. ?9 F" C6 P7 `# I 【程序52】) u9 x, h/ N. [$ w3 K' V2 J 题目:学习使用按位或 | 。 " F2 I& |; M4 a/ W) B3 y' t1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1            % s8 m1 A/ w1 u" f8 F: D( j 2.程序源代码: [+ C. Q0 s& j+ b5 N9 u#include "stdio.h"! S- Z; S, U6 s/ d( h9 F7 L main(); A5 g4 l0 h6 H; M { 2 [ t- [1 N# Z# G2 K& o1 bint a,b;! D8 S' u- Y; A: t a=077; , z: r/ S' ?1 \- Q$ ?# Vb=a|3; # V; [3 }, D+ w$ P+ _7 Cprintf("\40: The a & b(decimal) is %d \n",b);, U" Z& k8 Q7 `; o2 }# ~7 @ b|=7; / I( s/ @3 B1 C tprintf("\40: The a & b(decimal) is %d \n",b); # o; v: ]( X/ u$ X1 d}* Y9 U1 j) i. p6 ] ==============================================================0 Y' ^' ]% _+ ^ 【程序53】 ' ]. e' M( |$ g; e题目:学习使用按位异或 ^ 。   7 ]: c# W* p- \: O c5 ]8 z# G3 K3 l 1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0% [, o! W: P* u! H$ q, ]0 |8 } 2.程序源代码: $ X& i' t1 M+ e% H3 S3 ~#include "stdio.h" # A$ J+ r& Q- g& |( |+ w, Amain()& y6 u- g: K& {! _: p { / k4 s# S. I) M) y1 wint a,b;8 u% ?( y1 w! y! j; { a=077; 7 r0 }5 _: Q5 P0 [) m: @b=a^3;3 l0 s6 Y& [. n% ~( {/ Y printf("\40: The a & b(decimal) is %d \n",b);$ l/ M$ ]/ Y7 o9 e6 N b^=7; 3 D7 z+ g6 }3 J; H6 F; X- }printf("\40: The a & b(decimal) is %d \n",b); , Y2 M+ v& O7 `; c} / U; d4 e F" u& S# U5 i7 l============================================================== 5 |8 f7 i! O8 h, y【程序54】 ; K: H$ x+ Z1 d- R8 y9 u题目:取一个整数a从右端开始的4~7位。 ; I) @, ]& z; w6 B, O程序分析:可以这样考虑: 0 i) y. a+ s: S$ @" k3 y (1)先使a右移4位。! I* p. G8 \: H (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)% k& V2 \1 [! D" I1 M (3)将上面二者进行&运算。 ( c0 Q3 W% {4 T: I) L2.程序源代码:/ g& ~" ~( s; o+ M/ s main()8 P, G% o2 v) {" a1 ~ m7 {! ] { B0 Z8 a0 k6 y/ a1 y unsigned a,b,c,d;. _9 _$ b2 g0 G, e, P | scanf("%o",&a);5 m, P# C5 y( ~( l# y! O" { b=a>>4; x& Q& b3 ` \2 S* E c=~(~0<<4); ! g% B7 `& s0 |3 Hd=b&c; ; K9 |) ]6 ^. C) b: E) |printf("%o\n%o\n",a,d);% w. J& g( |7 ?/ j# @3 N8 H( x$ q( A }9 h0 i X3 P$ C ==============================================================, q& Q5 q, M. d% m 【程序55】 Q. M8 x$ J' l: B) N6 w8 ^. Z: [题目:学习使用按位取反~。    5 r. S4 s5 M9 v* i8 `1.程序分析:~0=1; ~1=0;9 U2 T/ {: X: @& U, F- H 2.程序源代码:! K+ t* x" L; p* n #include "stdio.h"' A# ^( ]' E3 k main() # H, u! M- \( Z- X) \{, I' W' {8 C- I0 d5 F: t int a,b;- r' ?) u( k# `' W! j$ {1 r& `2 { a=234; $ S5 O1 o- D( J7 d+ l* O4 h- r1 f9 Mb=~a; 8 q# j5 P% E+ J: nprintf("\40: The a's 1 complement(decimal) is %d \n",b);2 `3 P' D0 P' }; s& s8 T a=~a;& ^' Y+ f) L& C" Q- C) R printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);0 T7 z9 x- c4 G+ F! ] } , t, K4 c7 O6 b" I============================================================== $ ^ a/ O9 }7 b5 {2 ^8 P5 i3 N【程序56】6 ^) V: W1 r, d! G 题目:画图,学用circle画圆形。    & z9 U& r4 N% w( x1.程序分析: 3 b! U8 t& H; z- z& B) d2.程序源代码:& ?2 r @, m. K4 u" s, o: ] /*circle*/ ! J8 N. x0 J* D3 C#include "graphics.h" ) @# a. \1 I5 C4 u. Umain()1 E* i: @6 r6 t {int driver,mode,i; $ A" p' M2 P7 b8 }1 e5 O+ @: kfloat j=1,k=1; 7 Q# |/ |7 e7 m- \; zdriver=VGA;mode=VGAHI; / D& v7 C/ |# ] i& \initgraph(&driver,&mode,"");' m1 L5 m0 J" a0 O setbkcolor(YELLOW);; s% S7 ^' W( r0 V for(i=0;i<=25;i++)) ]1 f& B8 g r' f2 `9 m {2 @: j8 J& s) D1 o0 A! |, E setcolor(8); 0 S, `! {" s( s: z9 L7 K% y& Ncircle(310,250,k);" E3 d) E6 C( \ k=k+j; 4 }, K$ U, A2 `8 b0 k% Pj=j+0.3;) W$ \5 F: y5 m$ C9 r/ A } ( t6 [; z2 H( q+ D# C5 d} 8 d; `# o+ t8 _3 H==============================================================6 s# v+ E6 m* p& r7 c( U2 J 【程序57】 7 o' r9 G* s& B& z题目:画图,学用line画直线。 2 T- q3 L0 N; y9 \) Q4 i! v: ~1.程序分析:            0 A5 y h: M! S: D2.程序源代码: ) B* M2 o! M) a* a. }#include "graphics.h"% T+ x! X1 B3 d9 l6 z$ L main()$ B) g$ t& p0 q0 f; `% h {int driver,mode,i; & H7 W4 `/ E( c- G! l) qfloat x0,y0,y1,x1;, G& G5 K8 Z/ R float j=12,k;9 m; M9 b( i: }, L driver=VGA;mode=VGAHI; - e% h! V2 o* Winitgraph(&driver,&mode,""); 0 }% \7 y* @- s2 `) d( I5 lsetbkcolor(GREEN); - r! d/ E1 z% R3 I- Ex0=263;y0=263;y1=275;x1=275; " Y- P+ X0 z. h: @for(i=0;i<=18;i++) ) m2 k! V/ a) z6 W, @{ * Q- Q& b- w! `3 z/ K' O# ?setcolor(5);7 C, f& j5 C' C! r) g line(x0,y0,x0,y1);$ s) M5 u- J1 W* @ x0=x0-5;' h7 M$ P7 b7 g; U; v0 i8 @ y0=y0-5;. s6 m* F* _ l/ X( [( C x1=x1+5;+ X5 e5 ?' @8 n; Q \ y1=y1+5;1 Q! N, Z& P+ Y1 t0 r( _ j=j+10;+ o1 S& z: v' I: l }2 I1 M% B- B6 n- d$ F; M; e, V- D x0=263;y1=275;y0=263; + k( e% g$ F2 ]0 Y% [- yfor(i=0;i<=20;i++) ) ?: z- q7 ] W6 ^' w{ 7 W9 ?2 k) n& l/ b2 Nsetcolor(5); ( m( e% H" D+ i. Gline(x0,y0,x0,y1);2 D, _" z- X: K% X2 t; b x0=x0+5; 5 D8 A& `' V* S6 fy0=y0+5; ( U1 A+ ]7 \0 [2 I) V4 |y1=y1-5;/ g, Y. Y6 c1 ?2 i: V. O5 b; M; k' E2 ] }1 N# I" N$ @% q5 e } 0 \7 h) w1 L! I; Y============================================================== & _/ x L8 I1 N- U7 d【程序58】/ Q- o- }- i5 Z7 V4 e1 T 题目:画图,学用rectangle画方形。   , ?) p, @' L. f- b4 }, ]' ] 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2 N9 Y% q: t0 e, N7 f* F1 k 2.程序源代码:+ |1 H' }6 R! ?! X2 r4 p #include "graphics.h"/ [" J3 h- J, [) m main() 8 F8 [" ]- M1 y4 _9 Q7 N0 L{int x0,y0,y1,x1,driver,mode,i; 4 F& Z5 V1 B! ydriver=VGA;mode=VGAHI;3 o0 @$ G3 N/ [: G initgraph(&driver,&mode,""); ! c/ x: i8 B% c/ S# i+ z% lsetbkcolor(YELLOW); . E0 q- e% `/ G% y2 L/ Qx0=263;y0=263;y1=275;x1=275;8 J& S/ M7 V/ b( L5 F for(i=0;i<=18;i++) ) N' v. G8 r1 c, c$ u{ 6 y! x( t# p4 q# bsetcolor(1);# y' \- R" R/ {1 r, w rectangle(x0,y0,x1,y1);+ c: E) W8 [ ~8 Q- a- Q2 { x0=x0-5; / u5 p% w5 m9 y2 \' X% Cy0=y0-5; 3 l P& c' Q! t6 e6 e* M6 e ^9 f/ }x1=x1+5;$ @! Q+ D. c! B; D y1=y1+5;6 B7 e! N" w0 b1 v `+ u$ F$ P } Q7 b* H) I5 I% f6 w& dsettextstyle(DEFAULT_FONT,HORIZ_DIR,2);+ N& S. l% P" Z; d7 q outtextxy(150,40,"How beautiful it is!"); 1 N: @: ~0 i6 }4 ?line(130,60,480,60); , ?' f" u- {* v6 M( m: p$ vsetcolor(2);" c4 [. `7 H, `+ I0 b circle(269,269,137);! f: @0 d( o- U- {% R. g1 ] } 2 Z4 ?3 v2 T5 o1 e1 ?============================================================== 8 N, l# h6 x n5 J【程序59】 . }- L, ^9 D3 G( P& ^. D7 ^/ I6 Y题目:画图,综合例子。 - @1 U1 M+ J) u1 H1 H3 v1.程序分析: # z: s- s7 \5 E1 ~2.程序源代码: 9 A2 h3 F3 H# H% u2 u# define PAI 3.1415926 6 E) \ I4 [; a- u6 B9 D# define B 0.809 # `' H- C! @9 x- O9 ?# include "graphics.h"( j4 M- z$ x+ S #include "math.h"# h; S' c) W% X) z& P6 w main()/ r/ L+ f# Q6 I+ g* z {) p; N# b! G% X* [ int i,j,k,x0,y0,x,y,driver,mode; - N F* R( y( ?" h4 Ofloat a;' T5 R# A& E4 F q1 f( T: j# a driver=CGA;mode=CGAC0;5 w* c3 M+ k% [4 q/ v/ ^& e initgraph(&driver,&mode,""); ( O! g$ ?/ Q# a7 D- H+ S$ r7 {# {/ tsetcolor(3); * ~9 |& ]' ]$ [* I( u& d4 Osetbkcolor(GREEN); " w% _" r0 I) L+ c# O4 {x0=150;y0=100; 7 q. a3 @& t. p, U9 |4 {6 U* zcircle(x0,y0,10); 4 }7 d$ D) F0 S6 f2 U( Fcircle(x0,y0,20); + B$ J/ s; h l8 c) ^ mcircle(x0,y0,50); $ Z7 a- W+ }! P* X8 a# vfor(i=0;i<16;i++): |2 O6 d$ d/ @& o/ |2 X" c* Y { $ }# L! ^# L, @+ i C a=(2*PAI/16)*i;# O7 t' ]3 ^' z  x=ceil(x0+48*cos(a)); & \( d5 i4 i8 Z3 x' ?9 ?) W% f$ |+ Z y=ceil(y0+48*sin(a)*B);* g" b9 n8 l- k; E/ B  setcolor(2); line(x0,y0,x,y);} " ~/ s1 D8 [1 c+ ?: xsetcolor(3);circle(x0,y0,60);. U0 o# P7 U, \ /* Make 0 time normal size letters *// d! R# |, t, J \6 z' F" T( N7 E settextstyle(DEFAULT_FONT,HORIZ_DIR,0);1 c5 S% o9 H) J outtextxy(10,170,"press a key");- g9 l, X# B7 q7 M _4 k getch(); 9 Z. m$ n" e3 R6 f; G u8 p6 Dsetfillstyle(HATCH_FILL,YELLOW);7 b( R3 V8 y6 ?# N floodfill(202,100,WHITE); ; f. m @% e# a- ]getch();4 k9 P# c* J6 _0 Z/ q4 M for(k=0;k<=500;k++) : A+ \4 W- s4 h1 E+ H% R, t{4 C" }% x# Q1 ?$ V  setcolor(3); 3 w; Q) m. V- {3 X9 B for(i=0;i<=16;i++)+ C/ B/ u9 n. y+ \: C# _  {2 _; T, n. v! F# a a   a=(2*PAI/16)*i+(2*PAI/180)*k; / f- e' Y8 p c  x=ceil(x0+48*cos(a));1 ^ S5 w- |5 u$ Y- G   y=ceil(y0+48+sin(a)*B); c0 s% U, D( l" {8 u  setcolor(2); line(x0,y0,x,y); ( I; w$ m) D: z# T } e$ w! }/ T2 V& C- a: ] for(j=1;j<=50;j++) N" c$ P; h, _) r) n' S: d2 n6 A {. L9 W6 L3 j7 S+ q   a=(2*PAI/16)*i+(2*PAI/180)*k-1; , r+ p9 r% T7 D& I) I! C% S  x=ceil(x0+48*cos(a)); 0 d1 K4 T4 P' M# D% W+ [# }' S4 F  y=ceil(y0+48*sin(a)*B); 1 x5 T' T. ~' |, |/ p$ u9 P  line(x0,y0,x,y);1 j9 V8 I A4 u5 F% A X/ F Z, q  }% B* z4 K9 b# L. {- { } : h* G; ~, C+ c2 M1 W. O1 b' ^restorecrtmode();7 y* S' y2 N. a }+ j6 p. {4 g$ q$ |& R ==============================================================! k1 w7 ~0 R. t2 b" `- M 【程序60】 8 T, l' X! i# L% J. w$ f题目:画图,综合例子。   " L% P( P' C6 i( w5 V2 r% p2 m 1.程序分析: " ]: |/ x$ f; N( _1 _" @2.程序源代码: ' ^ w% n6 ^* U#include "graphics.h" . E# r- o! R4 @! ?) C! I' V2 T% V#define LEFT 08 l5 z# n' r/ f5 z3 N #define TOP 0 + _8 @" \7 {4 B; K" k#define RIGHT 639 - q' Z8 z( }6 Z$ c/ U( J2 t#define BOTTOM 479 8 f M- ~' [9 O) T#define LINES 400 % X6 d; N( \9 \. h#define MAXCOLOR 15( k6 v1 j; \% v! C1 k( N, @; i main() ) M9 d8 v+ z z! T{) \$ d2 g2 e% c* J) s/ \ int driver,mode,error; + P9 c) Y4 S: eint x1,y1;! O# E+ |( M, x' d7 I int x2,y2; 2 Z! q( G3 k9 U6 Q2 p$ bint dx1,dy1,dx2,dy2,i=1; % Z" j; q( }2 f3 X* g! w0 F8 Pint count=0; 2 j5 @" b" b. oint color=0; - `, S1 X. Q/ C$ L" u+ v) c) }driver=VGA; 8 q m: s3 V5 o9 t: X4 d; w. D' hmode=VGAHI;& d" {# U* A) I o$ F initgraph(&driver,&mode,"");, c& z; ?' L$ p' m8 @ x1=x2=y1=y2=10; ; H) r) |& q; `" ?% M- n! n/ wdx1=dy1=2;& |8 C5 B$ [" E4 k. f+ t dx2=dy2=3; ! B" z& [- n0 U. m; J* [, @; K4 l- Nwhile(!kbhit())8 d0 g& j0 U& V. K+ v. j { / M6 M) C1 a8 A: w, \: q+ [. |$ U# W line(x1,y1,x2,y2); ' s) R. l0 \# C x1+=dx1;y1+=dy1; * g3 ^1 {# _6 l0 T4 c9 q x2+=dx2;y2+dy2;' K. }% B% X8 e- f* {1 Z  if(x1<=LEFT||x1>=RIGHT) G/ o( u- {* K: h% A" U dx1=-dx1;; O" t+ J q2 A* E  if(y1<=TOP||y1>=BOTTOM) 0 Q' Z8 [* w. g; u  dy1=-dy1; & f( z( J/ q z: [ if(x2<=LEFT||x2>=RIGHT) * k5 N0 s; Y# @$ b8 E' A* X7 G" ]  dx2=-dx2;5 y: M3 `7 n- x$ o B3 T  if(y2<=TOP||y2>=BOTTOM)/ j! q' S- k7 u4 \. o   dy2=-dy2; ' |( c! L) m3 u/ f: U if(++count>LINES) ! N; P) U+ C* q8 ?; t { 7 @! [6 f5 a, j+ S) g* ]  setcolor(color); j5 [& G# y q( V# L( K; s3 ^   color=(color>=MAXCOLOR)?0:++color; ( a; p8 [4 F( l; J* T# @0 W) H3 L }0 ^3 Q; r1 E* {' y } . n$ r( |! H3 [& |* P7 kclosegraph(); " o, P% H1 v, y2 e7 h}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序61】3 z& _3 g% e% B" d4 K# L7 F 题目:打印出杨辉三角形(要求打印出10行如下图)    ) ~8 z0 ]# G* y; h5 s1.程序分析: " [" |2 y; @$ m! `! {, Y       1$ `' w; _& c/ F4 W2 i% ~       1  11 C- f6 Q' O+ ?2 n9 G       1  2  14 _& ~3 }1 E# d- t, X       1  3  3  14 m8 |! T$ V, E- b! k0 X$ {* }       1  4  6  4  13 I' v9 S# R0 g* D1 c       1  5  10 10 5  1  8 s) ?! a! G9 a2.程序源代码:. @$ \* j- j4 j8 Y9 f5 A6 _6 \ main()! P* H X2 Y4 t! }2 ~: O' Q3 @5 A {int i,j; [9 N! d* H7 n2 }* @; ?' J4 Iint a[10][10]; 6 R* B% A, ]5 O5 A1 kprintf("\n");# ^& t( w. w) b& E$ R for(i=0;i<10;i++)* Q) z) Y7 I# z  {a[0]=1; 1 f1 X0 M# m1 ~" \( c5 a2 C a=1;}! y: a2 ^3 j$ h O! N8 G; k" u { for(i=2;i<10;i++)& m) y' l& c& I6 h( |# y, @6 K- M  for(j=1;j<i;j++)2 d b5 H* I- m+ {. W% }  a[j]=a[i-1][j-1]+a[i-1][j]; - _8 J/ }4 d! u7 [+ W( @for(i=0;i<10;i++) * L/ q% P+ x( q6 G# }* `/ G' O. M( [ {for(j=0;j<=i;j++) 5 F$ i7 E. \9 i% [8 y" A Y printf("%5d",a[j]); + V( U. H( ]+ I: H+ {/ Q" \ printf("\n");2 Q- w( V3 A' f8 f/ a- [9 _- D  } 5 R# o. k) b1 `}7 @+ w7 _% u6 [. O, J9 C o5 p3 \5 ]2 _ ==============================================================( m. Y& s# |4 h 【程序62】& g5 j6 m8 o$ Q: i% x. F* Q. R3 ` 题目:学习putpixel画点。% r2 ?' D2 F2 r0 T# L3 v 1.程序分析:             $ E3 m6 h; X, l3 {& U- N2.程序源代码: B1 V) i4 }6 J$ b: I% S3 I#include "stdio.h" {6 t7 A2 R1 H& Q Q: L/ g #include "graphics.h" 7 x7 m" O5 E" @, d/ P# K( W+ E2 hmain()4 F9 W- _; I1 q" z3 B {- j x1 ^/ p3 O G, C c4 [5 v int i,j,driver=VGA,mode=VGAHI; ( l8 ^) z3 x7 N- ~, o6 r2 p9 O1 Pinitgraph(&driver,&mode,"");! s1 V* t! [ i! h, { setbkcolor(YELLOW); 0 U" z' n, }% T S& Z5 F( q) Mfor(i=50;i<=230;i+=20) ' Q( Z" v" n' T* U6 c! l V for(j=50;j<=230;j++) . _6 \; ?; q7 i2 i" A putpixel(i,j,1); 5 q `: @! U; C7 m( ]4 I" Xfor(j=50;j<=230;j+=20)8 H$ b+ e! S0 B! Q& w9 A+ S0 b  for(i=50;i<=230;i++) 1 E. N5 R& A' e8 c6 T putpixel(i,j,1);) z7 ~5 G( |* o, B! A9 `6 N }+ M2 X5 u2 o# p* T ============================================================== 2 O( R6 B0 @1 _1 o& v! Z. c$ P/ l【程序63】 , u6 i" F% V: C( R! k; {题目:画椭圆ellipse    5 J% }! g5 _* i! s: b E. X/ h+ _) n! d1.程序分析: P. G5 g1 \9 T; k* y* n, C2.程序源代码: ( I: i2 g- w _#include "stdio.h"; L1 J( }4 i# U5 F, U; B #include "graphics.h"5 |% p, E$ [1 a+ N$ F1 n #include "conio.h"" ~) {( R8 C: A main()" V+ q% u6 v0 e" D! k0 r% }0 Y* }3 G {5 ?2 K$ ~) k" |- E- \" I int x=360,y=160,driver=VGA,mode=VGAHI;, {2 [; v# o6 V$ p5 V; ` int num=20,i;* q* @/ s. [; {" I8 f int top,bottom; 1 P. t+ h" Q( P, m m# Vinitgraph(&driver,&mode,"");& n$ I# J0 Y, R5 l+ c6 x top=y-30;6 l& k3 R# [5 a4 `; }; H bottom=y-30;- c' N) ]( y2 O for(i=0;i<num;i++) . p6 I q, R$ u4 ] i% |- F) B! F{6 P# E2 q `" Y" | ellipse(250,250,0,360,top,bottom);; `0 Y1 k6 N8 E8 } top-=5; # Z$ {# L) Z% t8 s0 m+ dbottom+=5;: b* c; r4 ]# \ } ; p8 u6 |) ?) \. |getch();6 @ i8 e; I% a6 f A } , C3 b) F5 X( r( T$ {. R! G============================================================== - j! {- m! Y. `* f+ X: F6 A, K8 u【程序64】# T4 p9 F9 t1 d1 j( E) c/ J3 v8 l 题目:利用ellipse and rectangle 画图。 # H+ Z" B3 O8 C9 F2 X* {5 z1.程序分析: ! y. X" t6 f, P: u: ?! K2.程序源代码:/ E7 v0 e+ ~ T/ O2 n, [ #include "stdio.h" : Q% Z6 P8 ]4 H, m: T#include "graphics.h" ; |4 e7 h% T1 Z1 |' O#include "conio.h"/ E- }# `' K/ F main() / z* ~" }9 j6 _' j8 i{! G. `4 f- S/ g4 [5 R int driver=VGA,mode=VGAHI;- v4 \* p% I$ F6 U! g) n int i,num=15,top=50;2 v' W' a0 g% w& R0 @5 ?% x4 y int left=20,right=50; k% Y0 A7 @$ @! ?6 j initgraph(&driver,&mode,"");/ v' Q2 e# K- b8 f G, n: U- T1 t for(i=0;i<num;i++)6 I$ T O7 V$ \4 r9 G {$ h3 ?5 Y4 g& C* g. C6 } ellipse(250,250,0,360,right,left);- n- g$ }5 Q4 O8 A- i% `7 p, ? ellipse(250,250,0,360,20,top); " N- T+ i. V! D; ~3 J9 _9 Frectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); 3 r; @: j( F: mright+=5;6 s, R! r. L, G' N$ e4 O left+=5; 4 X' u6 F' [* v" S+ Ctop+=10;, p7 ~( p, P' r8 x5 ? }& E7 o$ G; |2 I% J) i. o& t+ b getch(); % c, J& W0 \( A5 w2 f" y! f}" _ T$ q1 s# m0 W* G( t$ i ==============================================================# |& ]% _! P) ]4 d/ Z9 n 【程序65】% \( j0 t7 }$ R3 C6 `9 v 题目:一个最优美的图案。    4 d8 m/ u A2 m* P M5 v1.程序分析:% U$ l1 X# m) a% T f 2.程序源代码:8 O0 u4 u, ^) G y* n! U9 h$ V #include "graphics.h" 6 {$ @* \/ Q! [& g9 I#include "math.h"( e7 X' u1 r# Y #include "dos.h": E f- c& |6 N4 [ m* Q8 ` #include "conio.h"$ k4 I) t" e* i/ O* U* d #include "stdlib.h"/ u. r& O* J0 P3 d0 s #include "stdio.h" # d4 A; i/ f& K5 P#include "stdarg.h"3 b. G6 m8 U# v* a: q #define MAXPTS 15 0 v* u6 L0 Q4 s. N1 w#define PI 3.1415926 " y0 B; ?9 g, N+ ostruct PTS { # L. h+ x; `5 Xint x,y;4 \1 Z7 s. H- E/ } }; ( k I/ ^- ~% @2 j! B4 h0 q6 gdouble AspectRatio=0.85; 8 r& Q6 V4 y( D8 i/ `; Avoid LineToDemo(void)# N. r; f& ~3 Z; t* c! | {7 F3 K" V7 `- @. d: g; b struct viewporttype vp;3 z; S8 l) B# W0 G& L' f/ ~1 c struct PTS points[MAXPTS]; ! g1 ]7 e' S4 s0 t x7 sint i, j, h, w, xcenter, ycenter; & j P$ j# W7 q% Oint radius, angle, step;3 z; T( h' M/ n) d double rads; ) ]" P3 d( W; ~# n0 e6 M$ e/ Wprintf(" MoveTo / LineTo Demonstration" );9 M4 E% |+ K; ]+ y0 G& I+ M getviewsettings( &vp ); ' a6 Y) D i: k+ Wh = vp.bottom - vp.top;8 z$ Q1 w8 x8 ]! E. f+ v2 l5 `: M w = vp.right - vp.left; * h: o* a8 A& q$ } ^. U+ S6 Mxcenter = w / 2; /* Determine the center of circle */2 i s! M1 Q: e) }; V0 } ycenter = h / 2;$ R" Z, ?( D/ W# K radius = (h - 30) / (AspectRatio * 2);/ B. I& j0 v( |! m( ] step = 360 / MAXPTS; /* Determine # of increments */ O% f: C: @9 O3 x$ Vangle = 0; /* Begin at zero degrees */4 S" y- Z& [+ M* ~, A/ F' M for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */ 6 B6 ?3 w8 N4 s+ O1 {1 Drads = (double)angle * PI / 180.0; /* Convert angle to radians */1 r% K o& z. U1 j/ R3 F points.x = xcenter + (int)( cos(rads) * radius );7 @9 h- a1 ]: H( H' B, V3 h points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );) Z4 D; @ U; N angle += step; /* Move to next increment */3 y; J y& y+ t) `7 f }" \% c6 K8 b: t9 D$ t0 f& h8 J circle( xcenter, ycenter, radius ); /* Draw bounding circle */ $ `' V0 b# C4 D% I# ffor( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */ ~ v: ~$ W! ~4 rfor( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */ + t- F) z2 E' L* `4 }moveto(points.x, points.y); /* Move to beginning of cord */ 5 W V! n6 \; q: olineto(points[j].x, points[j].y); /* Draw the cord */# S: M5 L9 X& _3 } } } } 2 W0 j0 E# P0 P1 I+ a: M6 imain()# G# H/ ]" Q. c6 Y. R {int driver,mode;' n9 R5 H8 a7 C7 T. L driver=CGA;mode=CGAC0; : Y6 O6 b" e+ D* [1 Minitgraph(&driver,&mode,""); * o! W. |+ l/ \9 {! O, ]% Osetcolor(3);* f# B& s$ f, ^$ z- A7 P setbkcolor(GREEN);6 L1 i: W& ~( F2 A5 Q LineToDemo();} 3 ^# {7 A$ a: t) S0 U7 |============================================================== 6 J) Y' f" W. n, o' e5 o) J【程序66】 " o% B: s5 E! R4 X* r5 R2 T题目:输入3个数a,b,c,按大小顺序输出。    ! E( h* M: W3 L+ y; {- `1.程序分析:利用指针方法。9 i9 Z# g/ L3 B! g# I# l 2.程序源代码: 4 C5 g3 D2 a1 }' r% ?" D/*pointer*/& I, M7 ]% Q) f& R" \ main() 7 g( Y0 ~7 {8 X9 y, F# ~ w1 [{ 1 m) D. ]( y8 h, a: E/ lint n1,n2,n3; ! }) z# ^- C; Z2 l. J; xint *pointer1,*pointer2,*pointer3;2 n* P) J/ j* ^) l printf("please input 3 number:n1,n2,n3:"); ; p: W2 H; [, T1 u2 Y+ Escanf("%d,%d,%d",&n1,&n2,&n3); # k% k1 K1 w6 d6 t( f( _0 @pointer1=&n1; 1 t, o1 \ n5 I kpointer2=&n2;! u5 S# J0 s- m: v R$ W pointer3=&n3;% P H6 R& Y/ r' R if(n1>n2) swap(pointer1,pointer2);/ A ?, p( I# x4 D: R if(n1>n3) swap(pointer1,pointer3);; o$ I# P; k4 ~3 K N if(n2>n3) swap(pointer2,pointer3); / ^# v" z, h( c$ A D7 x( Q- A3 g- iprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);' n# I6 n+ P5 w" ]8 | }% V8 _- A! L- C5 e swap(p1,p2), }9 i! W. x; @* M1 Z; s8 b int *p1,*p2;# ]) I5 v- w, ^$ w* N0 \ {int p; : A( d9 l& P/ zp=*p1;*p1=*p2;*p2=p; : f4 ^' q0 [" z; m, ~} ; G( A. u( z3 Y3 Y I============================================================== + ?9 ]1 J6 Z: G7 O; e【程序67】# W( ?8 X7 z% p, u 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 ! K+ T7 ~, b# |" H$ [& J1.程序分析:谭浩强的书中答案有问题。      - e2 @: `) i6 r7 P7 E' } 2.程序源代码:( L. Z& h9 k( v5 ?* r3 j$ s+ [9 | main()3 L5 ?( @: C ^. u" w { ! h& @2 m2 h; T. }9 T+ ?int number[10];0 p% ~. [/ h9 H& L3 ]3 Z input(number);1 I: f0 A7 h0 u6 L: S& @ max_min(number); 2 U3 n8 f/ D7 ~" b7 coutput(number); - G, T/ m* L/ t} 8 R ? q0 `: W! ^input(number)2 |( R4 _# \: B- Z8 X7 k int number[10];8 X* D P+ z- e. r$ G6 U2 Q9 s5 i* G {int i;) A6 c. I2 p) c( F for(i=0;i<9;i++) 5 e, W4 g0 U, b scanf("%d,",&number);! v, w$ S" E* h' }! V! E* B- v  scanf("%d",&number[9]); 1 B8 D0 V2 a* G+ D( z1 N# o} 5 S8 _, t/ o. @" {max_min(array)+ `+ f. H" C: U# p M int array[10]; 7 L) Q% k. j, m" q{int *max,*min,k,l;: b* A T! p, H) N% b. w int *p,*arr_end; . h5 e g6 p% ^6 s' Sarr_end=array+10; . I2 u$ {' ^( V3 k$ pmax=min=array; 1 p+ e5 U O+ e# g- g5 dfor(p=array+1;p<arr_end;p++)9 A- {) P* b+ V% b8 I d  if(*p>*max) max=p; % z* [: t+ _& X; s0 D! O- }5 Z else if(*p<*min) min=p;& b9 r1 ^8 Z( V- G  k=*max; - [* k5 g& B* ~, J9 { l=*min; & y/ U9 ^ K/ `8 @2 J *p=array[0];array[0]=l;l=*p; ) @# x7 ^! I6 h* g: K) K) E: v *p=array[9];array[9]=k;k=*p;* D# [2 w) O9 Z  return;; S; m8 E( z9 ?) p- p } " ]9 W$ _! L- D3 noutput(array) $ S5 G I. k, L: pint array[10]; % [# n ~6 E& y9 V5 y$ ^{ int *p; 0 s/ w( p; W: `' Q4 N! ^for(p=array;p<array+9;p++) " }. N/ b# Q" l) k, C$ Y printf("%d,",*p); * d% \1 K5 q+ Iprintf("%d\n",array[9]); 1 e9 K7 F* h5 e7 ^8 Q3 Q; S}# t7 [9 A) C( j ==============================================================6 F9 {' V& L! z/ X 【程序68】+ `' Q1 M Q: s) I 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 7 H3 B% I4 {& ^' ]1.程序分析: ( O1 r1 E" P# }7 W0 f' F. O2.程序源代码:& k/ u: e# N. p7 {% B main() 0 A2 c0 r0 y3 T{ * I* g; [$ o; j: W7 Y& rint number[20],n,m,i;9 K4 y2 I" ^( M* N' | @ printf("the total numbers is:"); ; z1 H4 {8 e9 I7 ?! v: D! f7 g. ~% fscanf("%d",&n); 5 p0 H' X2 H" K4 ^+ Q& C3 ~printf("back m:"); 5 u" _7 D6 q9 i9 Yscanf("%d",&m);3 y8 o4 Q/ U* n, a5 C7 \( A( Y for(i=0;i<n-1;i++) Y7 Z0 c9 Z; v- a scanf("%d,",&number);( `& E& u1 { a. X! m scanf("%d",&number[n-1]); + y5 e9 U' l; `move(number,n,m); 1 c" A* y, R1 @3 zfor(i=0;i<n-1;i++)( ^2 f2 J- z# {$ f  printf("%d,",number);. p2 T9 Z% a0 M! W printf("%d",number[n-1]);5 q% Y3 z8 q D5 ~1 B }8 Y/ x- e$ ?- G# {* d9 ]1 x. z* a move(array,n,m) 6 \+ ^8 t: l( N2 Hint n,m,array[20]; # ]9 R* G* T' v; d" C( D{ & D' T$ F# _4 i% `2 Cint *p,array_end;9 P) n% t3 M1 F! R array_end=*(array+n-1);3 a! ~' N5 E# `- _ for(p=array+n-1;p>array;p--)* w3 Q4 A0 p8 ?  *p=*(p-1); " z4 E4 d0 A3 B9 y *array=array_end;8 ~# C; b0 s" n$ V  m--;4 b& i$ ]7 d# g+ u  if(m>0) move(array,n,m); 4 f5 h$ D( b7 U}, e* \# n9 n; c5 w; j ==============================================================3 e b( w; M# o0 D& @ 【程序69】) c+ C3 n! _7 g 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出# O; A1 a: B; l3 y+ s4 m. I0 I( ]    圈子,问最后留下的是原来第几号的那位。 , z- y6 W; t2 Z3 m) ~7 e( K f1. 程序分析:$ H4 n1 k3 K% {. } 2.程序源代码: 1 F1 c, ]4 M: k#define nmax 50 ! T2 l9 j' t% z% d1 X5 omain()( d2 }$ G' T; P% @; h9 [" B1 @ { 0 g& o$ t' @0 C7 L1 Oint i,k,m,n,num[nmax],*p;+ o! V. S! M3 w printf("please input the total of numbers:");2 A9 U7 J! G" D8 j& G/ q scanf("%d",&n); 8 f, k5 d g/ J' g: kp=num;( Q8 N& ?0 l* f& t for(i=0;i<n;i++) 3 L6 C9 y4 Z' [ *(p+i)=i+1;1 S9 j0 @6 l! e3 S) [  i=0; ( h; K0 R3 @! e k=0; : |' h% a4 ~5 q0 m6 o m=0;7 W6 s1 {$ _+ g4 }, O' f) w  while(m<n-1) 2 v) f# \+ z* S8 }- m: n# ] { ( I1 l( n9 E; O$ c) o if(*(p+i)!=0) k++; ; b# j& n$ t5 s' _+ h if(k==3) 4 q$ ~& f, Y" c2 X { *(p+i)=0; 1 J$ M' l9 V" X, B% a; u k=0; + ?; F" r, ^9 S m++; - y& P7 H2 l8 m4 U9 ^( A } 3 b6 @( W, _: ^( yi++;$ h2 L. B8 r! H; d+ N if(i==n) i=0; 1 i# t9 q) r4 l: @* M* y9 `}! {8 X7 w) l/ f8 n' X while(*p==0) p++;- N3 O# b: Y E% D4 o8 X6 v printf("%d is left\n",*p); ) Z7 a/ C; E! b; H2 L}, y5 j8 K( V, n: E/ ` ============================================================== " H, O0 U" v/ N! Q t【程序70】4 T8 q n% n/ F8 c, |8 G0 w: G 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。    # z$ b) p6 z- r' m1 y! n u0 ~6 M1.程序分析: ! D/ A0 r5 e6 a L6 t7 h# h: q2.程序源代码:5 P& b2 R/ ?$ A" ^8 c7 \' { main()- L8 P6 k- R: G9 u0 Q' m& @7 F6 q) _ {: Z! {6 X9 a2 y F$ n6 b int len;7 q6 x& B% v& @: y char *str[20]; ) R2 g1 |) x, N4 b1 O5 V8 [printf("please input a string:\n"); ; d e' Z" ^ Y- Ascanf("%s",str); E7 s% |5 W% C0 b0 C+ @len=length(str); ; J0 l v6 P4 L sprintf("the string has %d characters.",len); u$ y) u7 U/ H6 _, W* }2 `4 P}9 r9 f0 T9 v4 g3 w4 o+ s" W t length(p)5 x5 f7 U+ y. J7 y char *p; 4 h. v o( z6 y& |. l3 [- t4 B! S{ ; I" T' _( X* K- aint n; ) _& }6 R* u# b( X& nn=0;8 L: o* @: k6 D while(*p!='\0')! ~. S$ v- r" S N' _- W- S {! Q h2 A1 q( z6 K! f  n++;$ l0 i" e! H+ h9 J9 A) z- l  p++;/ k0 R d l2 A/ i u( g% G }* ` J* o1 b K7 ^ return n;% G3 k2 l- F+ E" M5 ~$ H2 I }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序71】 # |' p `( |0 }% t M4 s; l$ d题目:编写input()和output()函数输入,输出5个学生的数据记录。 . I. A3 D# K% n1.程序分析:) T' F! H! j, p/ @9 p 2.程序源代码: . x+ d9 L4 `( `& R#define N 5) S2 @7 @2 B! ` struct student- R8 Q* [6 `, i/ L; Z { char num[6]; 0 z: U2 i' ~3 j1 _$ k char name[8]; : H z; M3 v$ A0 _9 N2 @; X1 i int score[4];6 Y& q! D @, l* E7 o! K; [ } stu[N];) M: u7 V2 R1 x* V0 j9 @0 d input(stu)( @% z1 x& `- |( B) `; k( m/ j ^' B struct student stu[];6 L; L$ R2 ^* V2 W. H! L$ u0 [ { int i,j;* ^3 S3 p" R/ ?; A  for(i=0;i<N;i++)! I; J6 q: [9 r  { printf("\n please input %d of %d\n",i+1,N); / @4 @: s( f1 w, p  printf("num: "); 9 v+ |& h! W+ _5 d: E3 U  scanf("%s",stu.num);0 [ A4 x7 x% _7 M/ J+ ?! @$ f   printf("name: ");4 C6 f7 K7 h0 i$ C# e& p# M6 ]* h   scanf("%s",stu.name);9 X8 Q/ l0 h& l3 I9 P    for(j=0;j<3;j++)5 J7 `. T- @: r' r9 A" d& v4 ~, y    { printf("score %d.",j+1);$ y. t, D5 ]' a1 |. L9 z     scanf("%d",&stu.score[j]);1 y) f8 S8 p) Q% x8 G7 \7 g    } % B4 z6 P+ S% r  printf("\n");/ c: a/ A( n q* T) f, w1 Q  } 0 W+ v; ^+ C1 |* q}5 U8 e7 B, K& G K print(stu)1 |' f- Y# G0 ]- K3 N" ~) U struct student stu[];! m+ v, ]- [; d. w { int i,j; % _7 f! Z* @! J+ iprintf("\nNo. Name Sco1 Sco2 Sco3\n"); 9 S; |5 X1 {6 E; ?! v- efor(i=0;i<N;i++) " ~4 w% V/ [' P4 y{ printf("%-6s%-10s",stu.num,stu.name); S- i& s3 n6 m, _$ U2 j L  for(j=0;j<3;j++) 6 k' e! @) y7 a4 W- V( T) ]  printf("%-8d",stu.score[j]); + L! }7 B& c+ R( l& m printf("\n");$ [% W3 w# e2 X$ F } 8 |9 f+ H3 r. D" b}* p, S3 c* f e" h3 @- X! A7 m+ E main() 1 Z1 S; j0 V, ]; S{% ]# n; R; a/ x5 n+ L( Q5 V  input();, h3 M: k- F3 r1 J9 C( o  print(); 7 r+ h) ~' g, L$ X}+ ^0 L3 k& t$ B" v! T$ Z& \ ==============================================================5 d" }$ _+ W1 c. u; Q8 ] 【程序72】 - T2 N! Q9 d3 _3 @% k! c4 I题目:创建一个链表。 ! S) s2 i) s1 g P6 x. d3 L' G, q$ q1.程序分析:           9 s+ y' E! ^: | d- }$ E 2.程序源代码:* ?" N6 U2 n. w; Z /*creat a list*/- W3 |! H' e; f1 {& Z( w5 Y #include "stdlib.h" ( u5 R5 @. Z! g, ]5 i#include "stdio.h"$ E9 B8 X& m% E; ? struct list% z7 Y3 _) I2 Y$ N" a$ L { int data;+ `) f* z- Q7 B. V7 c. U) ~" w struct list *next; 2 C+ x+ Y1 f& [& U! E, C};( s& H) }$ P- g& W c typedef struct list node; 2 Q2 g; t3 `% K" t- H, R, w/ r2 stypedef node *link; 0 `- Y# O4 ?6 y1 G7 S# K t3 @% e* k& evoid main() " e+ V' b0 @' {& ?' f+ q% X{ link ptr,head;) C# c0 u9 d5 m; k9 h- u/ w* R int num,i;6 i+ Z9 s- h* x ptr=(link)malloc(sizeof(node));4 g0 q% a& a4 I. _3 x1 u8 i3 W6 @ ptr=head; 2 n7 z T# s dprintf("please input 5 numbers==>\n"); " B. O/ R. p2 A* d, p( ^for(i=0;i<=4;i++)3 C# w* _3 P( C- O: d. q1 i { ; z, `7 \, c8 G1 s6 f( S scanf("%d",&num);0 J" w7 F |7 S0 V! e* [/ j; F  ptr->data=num; ( f% ~" c* S" L, t0 C ptr->next=(link)malloc(sizeof(node)); 5 S) k" v4 i$ ?4 m& w, P- P a1 |3 p if(i==4) ptr->next=NULL;. U1 j# Q4 k( c. [8 R  else ptr=ptr->next;: `6 u/ v! T1 m) p }! } M/ H# R. P5 P0 R: T7 R1 @ ptr=head;+ i# }. d) ~+ x; M: x2 f/ t while(ptr!=NULL)& F: ?8 R( `5 Y1 l6 W& K { printf("The value is ==>%d\n",ptr->data);) B7 M! \& i9 c+ X# e  ptr=ptr->next; : v2 h3 `8 J$ _* _* f1 \}7 W9 u% L( M* j, I0 {/ d; \ }' O. V) F4 k& [* o ==============================================================4 L" r5 \( z8 L$ h; _0 ^3 ? 【程序73】; N6 j3 M& v% i5 {5 d 题目:反向输出一个链表。   $ x7 T. a) n0 E7 @$ D 1.程序分析: , W5 f- v8 B$ d2 q4 t2.程序源代码: 7 j7 j3 [$ T9 }1 C/*reverse output a list*/ 2 Y% G4 f+ M; S5 J: p) I#include "stdlib.h" & X6 W, L- M: g: y#include "stdio.h" " ^# k+ ?: i/ R6 L( t; H8 u0 b/ bstruct list! j8 }9 D8 \7 P1 X { int data; & t5 T# ~& M, h- f# @" U struct list *next;) j- r# \" Q* Z) f( ~" c" L% {3 U }; " u1 v7 y8 g& k- H5 `# Ytypedef struct list node; + n0 B, W. e! ^typedef node *link; ! F( L1 V$ w& k% n6 S. y( Kvoid main()! A! V4 y y) o h2 \5 J { link ptr,head,tail;  6 S. q M4 f* D U. x7 d+ A4 A int num,i; / t8 j# i! I- n( r6 h. y tail=(link)malloc(sizeof(node)); , w5 o8 h* D$ g6 [; A tail->next=NULL;: t# i% C, v, e0 p; E. C  ptr=tail;7 E F; S0 ]( m2 ?  printf("\nplease input 5 data==>\n"); 5 e/ d1 d. l, z2 ?2 K, T8 D for(i=0;i<=4;i++) 2 B! w9 o$ E- ?6 K ]! m& J: R) g {3 J8 N- ` M% K5 K   scanf("%d",&num); . E& _/ V4 m& N( y7 T+ d  ptr->data=num; 3 s6 T V+ h% N! S  head=(link)malloc(sizeof(node));2 b3 k; y# N& Z2 _   head->next=ptr; ' ?4 T0 d( y: t: A9 B5 s9 i" z  ptr=head; ; N2 A4 O7 J7 q% y6 W1 j, t i }- f/ e* Y/ u, u: a9 r ptr=ptr->next; / g9 v& i q3 k- A+ Pwhile(ptr!=NULL) # Z: K# H8 W' B{ printf("The value is ==>%d\n",ptr->data); ; U$ @& i" [' I* n ptr=ptr->next; 7 P" V6 E. Z C+ O) X; Q3 [}}7 m! e* r6 J S: m" ^; F ============================================================== + ~0 ?, P( }/ D& u4 M9 X5 L, Q【程序74】 # x2 l A( Q9 `* i' R题目:连接两个链表。 & y$ i: V4 M( x7 d+ ]$ x P# g1.程序分析:# M& |1 Y+ t- x9 V3 P 2.程序源代码: " X# c3 O3 A! P#include "stdlib.h"! O; }1 A. z$ `3 S+ N #include "stdio.h"0 U) c9 p) I, p. S0 F- T struct list 5 e; B& d% c ^' ?- ?{ int data;4 r2 i5 y7 L7 f) l; B$ f struct list *next;5 S2 ]& r0 C# d" Q5 B6 |* r }; : v6 {# _' t8 r2 l0 gtypedef struct list node; ! J0 w! [2 H0 w5 X W" P xtypedef node *link;+ ^/ R4 t3 G" Y link delete_node(link pointer,link tmp) $ d5 k$ f* p; {# C{if (tmp==NULL) /*delete first node*/5 k, p6 h0 \7 A0 a0 ^  return pointer->next; 9 L4 W6 g8 K( U6 `$ welse( C3 W0 v s; e7 V% d6 y { if(tmp->next->next==NULL)/*delete last node*/ & M# L4 @2 c# U. E' S  tmp->next=NULL;/ D0 C* j& r) `2 B- }( A5 y  else /*delete the other node*/( R+ d- W) Y# J6 l9 D( W   tmp->next=tmp->next->next; 0 f. F* D/ u( Y- P2 H1 c return pointer; 5 S, o, `9 K% I+ u} ! \1 D& \ k5 F0 _. h} " o8 Y: B4 g1 C* X! @7 Qvoid selection_sort(link pointer,int num) $ o8 @5 L$ w( }$ j6 v/ r/ S{ link tmp,btmp;" d% K% ^+ }1 m1 S  int i,min; " v+ k! L ?! [: T! {; w for(i=0;i<num;i++) 8 B& t1 ^3 i: M2 X) q9 p { # j0 o' Q! f# j: ^; ?- L! J tmp=pointer;2 L$ J+ t2 L' ]8 ?* r, B  min=tmp->data;1 l I# }4 E. e5 I2 V" }& |  btmp=NULL; 4 I7 h/ F5 G \7 d while(tmp->next) $ j, @6 `- N% ?9 T/ M% G { if(min>tmp->next->data) ! [- S# B- ^* G, m5 i {min=tmp->next->data; 5 n8 e$ n( g: L5 n* R+ N2 ~0 g  btmp=tmp; . i# B: X) z9 r p# [) f1 L }/ J% Y7 ^' ~* A: O) f. b  tmp=tmp->next;8 H+ s( l- U0 r( o* v  } 8 l9 I: N7 ], O; r% U7 _printf("\40: %d\n",min); ' B* N' V0 T4 r5 I5 t! ~. U3 npointer=delete_node(pointer,btmp); . }' d2 {+ j+ A$ L0 { N- o8 D2 p# P} 5 }6 G1 V" B d# u/ Q} 2 p* x+ H( N2 n% A* |3 z. U; ^link create_list(int array[],int num) F) i6 N6 u: K4 [- ?{ link tmp1,tmp2,pointer; " W; y4 g. @4 `8 o/ qint i; t) l1 V0 O3 Lpointer=(link)malloc(sizeof(node)); 4 a4 H5 _9 C% Ipointer->data=array[0];& Y* S# H# S5 W) v4 R# [ tmp1=pointer;' j, d% ^8 T. }! `) @7 P$ K for(i=1;i<num;i++)" K" A5 ?# U w( u { tmp2=(link)malloc(sizeof(node)); 1 j1 T% G' Y% O d tmp2->next=NULL; " Y0 ?- C% L. \: D tmp2->data=array;$ C- {5 K% ]8 Q# O) H# t; f  tmp1->next=tmp2; 3 G0 b: f# k* L& Z tmp1=tmp1->next;" Y: F# Z" I2 l T }0 h( Z, |+ d" a$ t. |* j return pointer;* ^' u/ z' h$ {1 W+ {- z& i( g } u# h* `. m- n: C7 C4 p link concatenate(link pointer1,link pointer2) & w2 ^7 Q) J" v2 F! n5 y8 y{ link tmp;- q# V: m9 L9 j$ e4 t tmp=pointer1;7 S( E7 ]0 R5 W' M while(tmp->next): m' _ R/ n) M6 V  tmp=tmp->next;' d) a+ x& Z5 Z/ h3 a tmp->next=pointer2; 0 ]' n3 @& `1 i0 b' [ f, freturn pointer1;4 o" ] H6 N9 [/ h( n6 l }, L9 H* X1 m) c: M/ T; |! d9 k4 K void main(void) + _0 m' n3 X% e: D, G{ int arr1[]={3,12,8,9,11}; ' [: j- d$ D/ u5 r: H0 ~ link ptr;6 q! g! `6 Y1 `% t  ptr=create_list(arr1,5); ! P% }; p) { [ selection_sort(ptr,5);% B( G) S3 c# h) S: g$ m }, l% _8 s2 C3 t# A# t' F, A* \ ==============================================================5 A& V9 O& w; _/ C- e6 {, Y 【程序75】2 ^0 S3 i$ }) J2 o& Q 题目:放松一下,算一道简单的题目。! x8 p3 ~+ p4 i 1.程序分析: ( v6 [% c8 I+ c8 a2.程序源代码: ) f* t3 X& \, [" {; vmain() 6 C7 s# V! G+ E# Y* t{ $ \7 N4 K, C4 \5 G; r% L1 ^! N) ?int i,n;# a6 k5 ~; E! l* N0 U for(i=1;i<5;i++) " ^7 H8 y' ^' e8 `! A/ ]- k# O{ n=0;% V/ a2 ?* i/ G% P9 X" E- v  if(i!=1)- R7 w6 v v. e2 r2 ^) _/ r  n=n+1; + g- ^3 D6 j7 B1 c/ B if(i==3) 5 x- ]* Q/ L0 H+ Q& F4 l n=n+1; 7 v1 N$ b2 K: I+ X if(i==4) ; {9 V3 U# g6 P* _) s/ l Z n=n+1;# x: B5 G9 @; V' _1 y  if(i!=4)- u$ D! e) q% I) c; d5 W9 c# o8 C  n=n+1; ) v. W ?7 T4 k; f8 D if(n==3) ; V1 r3 W8 ]! Z/ W/ S  printf("zhu hao shi de shi:%c",64+i); 7 W0 H, }2 d5 g, E: _7 z, y }3 c$ R0 N+ r2 s. O( J7 |# h/ v }# O5 M+ N% C/ C ============================================================== ) {& S* i$ n4 h8 X* ?$ H【程序76】 , F: m s. y5 ~- l题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 3 s% G" v- O6 v0 a   1/1+1/3+...+1/n(利用指针函数) 7 L+ E4 x( x/ N8 }1.程序分析:3 t4 ^: r& d) ^7 z 2.程序源代码: / Y' E% F0 \9 J) s X4 t& F/ rmain()' A9 a; b3 I# L# h3 f #include "stdio.h" 2 S1 u ]$ Y2 Y9 j; U# lmain()$ o5 I2 c2 C8 y3 @# L/ o7 G { # `# {0 T, y! | j wfloat peven(),podd(),dcall(); 7 h' f! Z( z2 C5 Wfloat sum;, }$ Y) x1 M4 u8 n/ }9 V# `- b int n;( u8 [9 W* `/ h0 y# E while (1)$ A2 c6 E+ t" |. w( ~ { $ K m5 @" r) _, y& o1 x. e scanf("%d",&n);' Z5 ^9 Z0 `* J; q& A  if(n>1) # O9 C7 U3 ~2 N/ _  break; . ]# J# v1 Z0 w# c: s+ g8 k6 Y, {7 _}# W7 a$ _7 B# ]1 h9 J. I if(n%2==0) , {7 c, v( l7 Q( ?{ H6 m7 t1 Y6 F( c$ a  printf("Even="); ; }5 F6 _: r4 T. M sum=dcall(peven,n);/ Y! T o5 [ m7 C$ V! _; t3 r } 3 I% ~' P8 [' a: {8 gelse) X9 z$ J% Y! n7 D, ^- r9 W { 7 `3 |7 V5 e) \! G0 W! R# s; N printf("Odd="); 5 q) h6 A& E8 ^+ g0 B/ l, `) b sum=dcall(podd,n); 4 v; S3 w: P M+ @}: r% c- G4 j- x3 b* S; w printf("%f",sum);% u' `! R( q' Y0 A5 {$ ^0 P6 b* S } - X O* `$ R& B) c' e: ~1 Efloat peven(int n) & z. m j* T+ e0 {9 N{ , a- V. m# y" ]4 ifloat s;. C8 A1 f- ^5 T" C% h& m# y int i;& K: W7 t( Q" A8 Y s=1;# j2 r& c+ N5 w for(i=2;i<=n;i+=2) , N2 D- b5 q. Q+ N! |0 N& X' X+ ~9 R s+=1/(float)i;' q2 ~) @+ N9 u9 S/ p+ j return(s); 4 z. j: a$ I0 d( W/ R/ z8 |}8 C2 b, u5 }2 D1 l+ z+ A" i% C float podd(n) ' j6 l2 v+ S# nint n; 7 T! N, u b$ l! t4 I5 Y{: Z }/ ?6 B; }3 E$ U1 i float s; ; i* b% B- X% n4 ]* y9 j; {int i; & Y: [$ A$ I9 u3 M7 As=0;6 x$ [0 T3 r% T3 J for(i=1;i<=n;i+=2) + H& r% J' r3 ?/ R" Q2 @8 S s+=1/(float)i; 2 j0 p: i2 z9 P4 t. k/ l3 |* Jreturn(s);4 D3 R8 V9 B' e, v }0 }. }) A5 R G- l. q/ H% q float dcall(fp,n)) I2 K5 W9 ?' k# A! K. M float (*fp)();/ R( J! X8 p, T0 B int n;+ `0 s! v+ [4 u9 F9 |1 B9 d, b" v3 g {/ k6 T4 q( \1 }& S$ U% B float s; / f3 x' ~% U$ ~- g8 W1 \s=(*fp)(n);* |& @4 m; b/ j) c. e6 r9 E" u return(s); ! W$ B6 W: e9 X: ^7 D} ' t2 C1 Y& |! t==============================================================5 s+ K) u8 e# w6 W, r6 B 【程序77】 " M" K" ~$ v J0 J# }8 R0 H题目:填空练习(指向指针的指针) : Y1 S. Z. k; F5 J! y7 v" W2 q1.程序分析:      $ w) u5 ~- f# q7 @/ O2.程序源代码:/ n2 @6 u9 D+ b main() 6 k0 K; t& }0 D: O{ char *s[]={"man","woman","girl","boy","sister"};6 S9 Q! T4 [$ n& O0 t char **q;4 \7 ^, ~$ Q7 k int k; 6 U! y- y1 G, a. w! M B+ cfor(k=0;k<5;k++) 8 M. O2 }; G' I- S' m{       ;/*这里填写什么语句*/ y d# O3 C+ |% b; N8 h: c  printf("%s\n",*q);' j# M/ e$ c! Q4 x+ L8 J0 N }% R9 C) H0 I$ d/ a: e } 0 A o, A+ k B& [6 z==============================================================2 @. S6 G0 g5 ^; E& D- s, G 【程序78】$ z' ? W6 Z' l% M$ @3 a 题目:找到年龄最大的人,并输出。请找出程序中有什么问题。+ [; ]. w2 G d1 M" m1 J1 c 1.程序分析: p0 f. ~; ?' Z8 f) O 2.程序源代码: - p" D) D, L) W/ o z$ B% g( Q3 C#define N 4 " y: D( _; w0 f9 N0 o9 P. C6 K#include "stdio.h" ( x9 P) r2 t& l7 r" pstatic struct man 0 L- d' ?; p- j @4 O{ char name[20]; % ]: K3 `2 }! p6 d' v5 Z2 N6 S2 Wint age; , b, a* B! x$ I* g/ F ?& ]7 r} person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; + I) X2 K' Z+ g( Imain()( F7 G* c( f6 A2 j/ l; R {struct man *q,*p;4 ~; ]! w f2 p/ W# _ int i,m=0; ' P/ L0 Y$ B$ p8 ~% f3 H6 I; @p=person;, J# D# r& ~) j% U; R for (i=0;i<N;i++)# n% w1 f u8 p, i7 N3 s {if(m<p->age)- n5 P+ k! |( r" L! ^  q=p++;! P8 z' y; ?: ^: t5 l* z" V! h  m=q->age;}6 i/ l5 c, v- v6 \5 U printf("%s,%d",(*q).name,(*q).age);: X: G b B9 j7 T6 K7 ~' G } : Y1 K& ]) S0 z5 g1 O* Q==============================================================- R6 V1 r, j4 g/ k; ^8 y. | 【程序79】& e& ?0 G6 V, F! `, _6 I2 v: ` 题目:字符串排序。 ; f! o5 R& L" b9 I$ s, w# d+ s$ J1 ^0 J1.程序分析:5 ^# S* W, T3 f' ^ 2.程序源代码:6 `9 P1 x+ W$ q7 r: O8 I% O- o main()( o/ a% A; E* r0 V# l* {1 X { y) q1 V5 _) |0 z" } char *str1[20],*str2[20],*str3[20]; $ U0 Y9 P" }6 J/ f h, V2 Tchar swap();. Q! i$ A9 d: B1 F) b4 o printf("please input three strings\n"); / I6 n. e# x* }( S: n2 i* mscanf("%s",str1); 7 z. I+ E7 c8 }: h) _) v5 j* qscanf("%s",str2);1 c& [. r5 G% t1 f" j# s scanf("%s",str3); % @& h% _) y/ Z V+ M$ [if(strcmp(str1,str2)>0) swap(str1,str2);( j4 M; v8 Y b) i& Y if(strcmp(str1,str3)>0) swap(str1,str3); " X2 B2 v* U6 E, B8 y; p/ sif(strcmp(str2,str3)>0) swap(str2,str3); 6 j% z9 D$ K0 q/ l7 I! R- {printf("after being sorted\n"); 4 {) ?. q5 y+ m: v& ^ Zprintf("%s\n%s\n%s\n",str1,str2,str3); K% s7 \- k5 b/ P2 m } . D; i8 J& \* \. x9 _( D8 o; xchar swap(p1,p2) 9 h O3 W6 w# K4 mchar *p1,*p2;: u z. C. |* n3 P1 D9 v! p, m {5 q. n* D, A0 ?1 {! |" D char *p[20]; ( g- k9 e" M' g% A% A' jstrcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); , E6 d5 L- E9 i9 @+ U# K} 1 @# J" w. Y# Z, H# d" b* `==============================================================4 i/ t" i2 S. E8 A. _' I 【程序80】 8 b, u# m# G5 j1 S5 G题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只6 S6 t8 ?/ R7 e1 p% V5 W" j8 C    猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了' { J& Y- w8 m/ U7 o    一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, ) R7 j0 v- @9 N, w' k: s1 i" c   问海滩上原来最少有多少个桃子?6 l: `8 F' L+ A6 B6 O) Y$ S 1.程序分析: $ V+ V4 u: L$ Y3 i6 o+ J8 v/ }2.程序源代码:' Z3 \6 k8 T; r, D main() ! x' w- a$ I5 E5 o9 r{int i,m,j,k,count; & _: t7 L9 M7 Lfor(i=4;i<10000;i+=4) $ B' a/ b" u- A{ count=0; . @% ~6 y. u) z* D: T$ km=i; . B i \. B/ \ i: g' c3 Z k. ^for(k=0;k<5;k++)' |7 u! r6 ^ V3 U { & i+ I( v% B: e9 R j=i/4*5+1; 3 u" Q8 @" t; N I# Z i=j; ! s' d/ X9 F, \/ f8 H/ N if(j%4==0)2 ? N8 ?' ?8 s5 _   count++;6 V4 ]+ d6 O9 T  else/ P; {; K8 i- h" x   break; 0 ]' F) f3 d- D$ c8 y} * Y, f# p. ~% q! |, B. i4 i i=m;) @- r1 k7 m6 i2 E' S  if(count==4) + ?2 s3 H& g% i! y. D/ S {printf("%d\n",count);* J6 x q3 Q3 q# B6 {* H   break;}6 }, c) M* _ x2 K } 9 C& h1 x0 e+ s/ O( D+ r- A9 V3 t}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序81】) u& L4 r. H0 z1 J! K5 y' N 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。& C4 ]2 y! }2 E7 ~ 1.程序分析: 6 J7 E! O' J8 [+ K N/ L2.程序源代码:8 F, M; S3 s* I3 d! Z5 o$ z+ }( E output(long b,long i) g: M9 W$ Y% B: s, w! W { printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); * ?5 m! _, i6 c" p) }}: e( w8 N+ y% ^, o main()3 R0 [* E, o5 ~* O7 [ {long int a,b,i;( z: `+ E4 _: |3 B7 f5 { a=809; , ^# h+ w4 E/ T% B9 wfor(i=10;i<100;i++)( F- i0 E% l V9 B; J' B1 } {b=i*a+1;& p$ e. T, [& K( @ if(b>=1000&&b<=10000&&8*i<100&&9*i>=100); x% t$ h! h! L- k8 i output(b,i); }5 r% g- E3 l; A) g' x0 N2 j }. @2 ]2 V& V5 a) d ==============================================================% ~& d) L0 `- ]1 v2 \' @ 【程序82】4 H9 p! ?( T3 r" Z) F 题目:八进制转换为十进制 0 M# h6 o1 Q: R' w2 `# K1.程序分析:           ' K) l3 i, }) S, N) H 2.程序源代码:7 |+ Q' t6 t5 H* C! h$ _3 d main()+ J0 `" c6 {5 k* f# A { char *p,s[6];int n; 5 Z* M9 a+ X0 l0 B3 d' ^8 E2 Qp=s;. E7 x: Q/ l/ A; |4 G$ d0 c% S1 F gets(p); ; H5 |$ _3 ~" a& Fn=0;3 ~8 Y2 ^$ b7 k4 V while(*(p)!='\0') 2 g- h; \7 i: E{n=n*8+*p-'0';$ z: A7 E% ~( U( ]; Z S4 F! d p++;}/ t B' a* a6 q% t printf("%d",n);1 n4 k# b( ?( F/ v# F } ~0 B8 f% u- w, p/ ]============================================================== - O4 V& U( V- [5 K# Y【程序83】" X2 U* o7 q/ h7 v8 a! E( X 题目:求0—7所能组成的奇数个数。9 Y2 E, o# h7 ^, g 1.程序分析: 4 ? E6 J) j9 `8 _5 v( t2.程序源代码: ) w& ?$ ?) W$ e- h+ I2 L0 mmain() * I/ X" T" W$ h1 }0 f' ]& w{' A( s# W+ l: g8 o/ D! L0 O1 U0 P* r long sum=4,s=4;0 q2 D6 t) h* @5 F2 Q int j; 0 A4 }0 Z# Q7 w0 Wfor(j=2;j<=8;j++)/*j is place of number*/ ; N4 q8 D. x1 \; d/ z8 _{ printf("\n%ld",sum);$ H' d% g$ ?' ?* ]/ @4 O5 W+ _! T& m if(j<=2) 9 k5 ~5 I* U4 ]& cs*=7;# E4 `' l% h7 k) u! p0 m' v else2 v1 F: x) P. D' e+ @+ q s*=8; . }* ^8 {' Q5 z# Q: xsum+=s;} 2 @, U) ]. f8 X* [) e8 D4 k% h2 Gprintf("\nsum=%ld",sum); ( f9 p) C( c& p' v5 Q" ~! {} ) r i& s* l7 w% w( m5 q3 B+ o==============================================================. n2 C! M O; U x2 }1 v2 [ 【程序84】# ]! h6 U; k6 q; L B 题目:一个偶数总能表示为两个素数之和。 # G7 k, q7 P& ~8 Z2 _, {1.程序分析:3 g x) Q6 B, r8 O* v1 [+ n1 ? 2.程序源代码: - a: f3 ~; ^0 D, Q; m; A8 A( p, }#include "stdio.h"5 A, v0 n1 C, f( m& @: w. R #include "math.h" . d5 h- O$ v) Lmain() $ G I. a* @4 Q2 E4 q# U/ b{ int a,b,c,d;# Q/ j2 X2 m. c scanf("%d",&a); - I* s' w t( \2 V$ B2 B6 ofor(b=3;b<=a/2;b+=2)$ R: ]* @ K9 K% L: ` { for(c=2;c<=sqrt(b);c++) 2 a0 q, x) r% g; jif(b%c==0) break; ) g7 E* T. A' F0 |+ G3 m1 mif(c>sqrt(b)) 1 m1 R8 g: Y8 H! z: A9 Q2 i7 vd=a-b; " y# C* }4 [" R# [else & A; Q. d6 E2 |, U' q) Gbreak; 9 \- h7 S* N! hfor(c=2;c<=sqrt(d);c++) ! Q7 J E( f c- Iif(d%c==0) break; " a! O' T* F/ i! N4 u1 o! j; Hif(c>sqrt(d))! ], F, W7 }7 G' r S, c' \+ H printf("%d=%d+%d\n",a,b,d);$ o$ a+ e) }3 D( t# a' m* ~5 C }3 j l- J1 _ y! P0 Z }; Q; t3 j( _7 X& T ============================================================== ( b( f m' Q0 {6 A4 ]! F% c1 u! {【程序85】 # I; T& G% ~5 q' B* ~题目:判断一个素数能被几个9整除 i. ]* _. A9 Y 1.程序分析:# x+ Y" |, S7 B. \& y. Z 2.程序源代码:+ R7 n0 E) v6 Y5 h main()1 B5 k1 J% z- V- D2 G$ d { long int m9=9,sum=9;8 r- R% j5 K! E! t int zi,n1=1,c9=1;" S7 ~4 O! R' g9 @/ r scanf("%d",&zi);3 k a4 z' Z* a6 x while(n1!=0)4 w/ a: n( w: |- m( [4 Q0 |+ p { if(!(sum%zi))& B! W7 \$ [* E3 A* k I$ k n1=0;5 \+ w. B0 u3 m! y p. C) n else+ A7 n1 }& n$ y$ h- ` {m9=m9*10; : V& F8 i9 Q" Vsum=sum+m9;6 L# P. a5 b* }5 z3 ?- M# z c9++;6 ]8 v" M4 E7 A5 m& E0 f1 e } ! n6 K g+ u/ L" K- \; f} : t5 V4 j; a k0 hprintf("%ld,can be divided by %d \"9\"",sum,c9);- ^+ w( d' r/ p: w& `! Z( f% ~4 Z } , g2 y6 w2 |" l; [7 L: e============================================================== : g6 ?# T, D3 H0 W4 B$ M【程序86】6 B! G( }& K' _" |8 r, F5 z 题目:两个字符串连接程序' f& J% _2 }3 U7 j; W 1.程序分析: 2 C2 C3 f# \$ I+ I2.程序源代码: ( B4 X2 j! x, g+ F% @+ Y' T I. w#include "stdio.h" ) B6 E% F; k5 }, f" O! p0 h4 Umain(), s/ E+ z- d* F* f! W& N5 | {char a[]="acegikm";' E2 W# Z' M" l* R, ~# l char b[]="bdfhjlnpq";8 }5 H3 P7 g" C1 B6 c C char c[80],*p; $ m7 w! O+ D9 ?- j% K5 Yint i=0,j=0,k=0;1 N7 E5 I! B4 b( v5 h$ x- {: V& B C" \ while(a!='\0'&&b[j]!='\0')( m) L W; V, `- k7 o* r5 s {if (a2 [: q$ @. ]% D$ v- l { c[k]=a;i++;}+ \" Z8 n% p1 k, v8 k8 Z6 v else* t+ P0 T1 E+ p8 k* e" ~ c[k]=b[j++]; 9 Z9 N1 M6 U* d! j& E, fk++;6 w* m: B% }( e( \$ f } 1 D2 _; `$ m- K( n$ C+ g1 }; |5 D& ]c[k]='\0';$ w( V8 I* G( \: d0 r: T- j if(a=='\0')- d) g' T% r: B; a, y- b p=b+j;& o9 _* m2 f1 }' Z) Y3 B else , P0 l/ r2 i! ap=a+i; 1 e- r+ H" ~5 j2 W0 `strcat(c,p);; ]3 h; z6 J" t" M. p2 h puts(c);% z0 ~2 g! j+ }4 d/ x. c1 S: V8 E }$ z+ z# m- O* g" x4 K' i& Z ============================================================== 1 Q3 P( D1 r, T, @9 ]【程序87】8 f2 j$ p1 B* z9 r4 B6 d 题目:回答结果(结构体变量传递)& c& d7 J4 ]) B: d 1.程序分析:     9 G% R H; z. q& i- z 2.程序源代码: / v, j0 K1 i4 ~, l, E#include "stdio.h" , @4 y( X/ h; w( @struct student % S z& ~ _; w{ int x;' |7 @' Z0 Q: u, [ char c;& V0 p$ ]3 {" |8 U# x i8 S } a; / |* V( m7 j5 T) p4 H [, H* B! lmain()5 Z) ]1 f# E' ^8 j8 l* p {a.x=3;" V) N5 q7 ]: \- u7 `+ M2 ? a.c='a'; 1 i$ M! w5 }1 A% \) T- @% mf(a);) F, L8 e3 Z* P+ F c printf("%d,%c",a.x,a.c); 3 M9 W. _8 J% |) f- K} 7 C: p; d6 @$ V& N7 n) v2 p2 Rf(struct student b) 0 i- w; k' ~/ n% k{2 s& I' A0 t; l! k b.x=20; % _/ j N2 L7 H+ Xb.c='y'; ( s+ L1 _& }5 ^2 O, h" s; ` h( [1 k} 6 r7 v2 h; M% x. A==============================================================2 ~% \8 e- m- k9 v 【程序88】 / J, @7 ^6 m# \6 j题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 4 X/ n2 h% Z$ X2 w9 u" B" p1.程序分析: * K4 ~1 b* Z: Q/ h9 m2.程序源代码: 6 h, T- C7 a/ i8 Y" d7 {5 tmain() ; }8 E# P3 f, [7 {- y/ `& }{int i,a,n=1;2 o9 X" f+ h5 G( V3 [+ _4 x while(n<=7) . d, F3 T/ T5 t8 e4 Z# L& u% h{ do { 1 q9 i! u' W, O# }7 ~   scanf("%d",&a); ! P' @8 Q2 [0 y   }while(a<1||a>50); $ u$ ^% s5 C- @" E8 N9 b; xfor(i=1;i<=a;i++) , m4 V* V$ ?; B& H1 D printf("*");2 ?& c* m: [1 o9 @% ? printf("\n");: |7 s" @6 i7 h- }4 n n++;} 6 v8 d% `7 Z6 N+ U$ {( t3 E; tgetch(); 4 w o0 N1 V2 i# H9 N} " v- Q1 C! p/ D9 e) z, J" o============================================================== $ C+ \$ c; g6 F6 Y$ o. s# w( w5 x' h【程序89】) b. [6 K v1 o" o Y1 M4 S 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: + F; p* q9 U# V( ]* D   每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 & w& K3 O3 _8 Z1.程序分析: ' U1 t8 l+ |. t9 b( ]2.程序源代码: I* _- D4 G* f; _' B main() ~* a+ l. j* H2 R5 X4 a {int a,i,aa[4],t;2 e4 _- M, ?3 h& _ scanf("%d",&a); ! K+ l* M. x3 I& }; T1 B9 Iaa[0]=a%10;1 q6 g" ^9 Z; T- z7 y aa[1]=a%100/10;$ E! N& t) ]! @0 P2 s0 \ aa[2]=a%1000/100;; X' S' i8 o$ ^2 a" X aa[3]=a/1000; 2 d8 e# O7 z" [0 D; m7 Y& }for(i=0;i<=3;i++) , ^* {4 S6 [4 C {aa+=5;: r0 C0 u3 K9 m' H7 h1 y  aa%=10;- }" ?7 ?0 _, S2 |  }! t' v' a# u/ d. m! O4 w+ | U: Y7 g for(i=0;i<=3/2;i++)! h/ ~7 w7 [' N* B/ z( {) h  {t=aa;6 G1 r) J# f5 Q6 C  aa=aa[3-i]; ( y+ P) G6 S3 R, Q. F3 a( G+ F1 k aa[3-i]=t; % j! U9 G* H2 u2 T+ Z( \7 H) F" ~ }, O" K6 c. G- a7 X6 _1 d4 L for(i=3;i>=0;i--) 6 E1 e% N4 ? g3 r# l+ q( Kprintf("%d",aa);3 p- r; @4 `9 } } r7 p ^' u8 j6 [7 _: h==============================================================, u2 P* D8 F' M0 L 【程序90】 " ]3 E# Q# I; ]% E) T3 M- o题目:专升本一题,读结果。 ( T8 _% X3 t" q; U* g9 t% y4 O1.程序分析:1 y! L# E4 R. u; _- l4 h* G$ y 2.程序源代码: + T6 r1 }& x' B' Y#include "stdio.h"0 t5 t8 [. j& t' {1 ~ #define M 5; S1 R( K# F/ R main(); ~1 {/ \. A) ] o {int a[M]={1,2,3,4,5}; / K d, j; n+ ^5 @int i,j,t;6 c& V0 V, m- q m ~ [ i=0;j=M-1; / v2 h8 m! a. j. |. _while(i' T: u f0 V% J n' W" F- }- p {t=*(a+i); 3 B# p# U5 y* c5 |7 B8 N*(a+i)=*(a+j);$ J7 x0 q3 W0 W *(a+j)=t; ) G/ ?, ^: S- }! ^i++;j--; ' G# P4 v2 s% h% L4 O" e6 T; i}" Z& z2 o3 A) O% l- ? for(i=0;i- z4 {1 ]: F' _6 ~# p printf("%d",*(a+i));, C- j3 S( |2 ~ }

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-8-29 06:06 , Processed in 0.347494 second(s), 91 queries .

回顶部