QQ登录

只需要一步,快速开始

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

经典c程序100例

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

事先声明:

4 A( f! g I) L' Q( @

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序1】2 x8 G' M/ N- ]1 ~* x 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?9 I: g R* o3 A" L b 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去1 r3 f$ T# |* B5 ]       掉不满足条件的排列。 4 K$ N( s/ V: W 2.程序源代码:" E$ L0 @: T; b9 h7 s) J7 k main() " S" n/ D$ f5 j/ X{ ^0 ~8 A/ M, I2 X. g int i,j,k; * a5 {% r+ }( I6 K3 h9 kprintf("\n");, m* m9 E. D0 o0 x1 J: W for(i=1;i<5;i++)    /*以下为三重循环*/ , g6 W8 P! i( w' `( Z) v! i/ R for(j=1;j<5;j++)  , @% `$ a$ H, K+ l k  for (k=1;k<5;k++) - ^) {' E N0 L   {- t8 [( W1 o) `     if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*// U( K6 m# w* H     printf("%d,%d,%d\n",i,j,k); ; `+ N0 `" P' M i   } 2 Q" [4 o/ x* v: T, c9 A( t3 X" W} . ?: [" Y B/ q. f" k============================================================== 2 u2 z6 M+ n5 d# \/ K【程序2】 & l) e2 C' a; s# f& c题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 & e8 {! r5 o. y( X B   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 : }( x, M5 e% J# X7 M) I) G, f   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 0 d' X; i% W9 ^0 R   40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于! S Y) B+ Z0 t8 d9 w1 v    100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1 A) c, ] d1 i1 @5 _7 [1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。       # E3 ~$ j5 W, _! K j! E2.程序源代码:. A' d0 G' i. u: ?7 E5 S main() 0 ~+ ]) R8 s% J4 M1 b{) n# c4 b3 k& [* I: _! ~ long int i; 7 r+ k: _/ j8 zint bonus1,bonus2,bonus4,bonus6,bonus10,bonus;6 h( y! i3 B) j8 {: e V0 r/ m scanf("%ld",&i);! v5 i7 S, I( D7 R; E/ _ bonus1=100000*0.1;bonus2=bonus1+100000*0.75;3 \" r- D- ^& S% [+ U, F4 I bonus4=bonus2+200000*0.5; $ W9 e2 T+ n$ z$ R) m9 e: r* gbonus6=bonus4+200000*0.3; ) z1 D/ O: s! }bonus10=bonus6+400000*0.15;( m8 b, Q8 j4 ^/ ^* _  if(i<=100000) , v7 v- [% y$ C/ b% x  bonus=i*0.1; 3 w9 J) E0 x1 L6 t6 U: A) Q else if(i<=200000) 3 @6 D9 M _- h# k, f8 ~, Y4 R$ Z3 e     bonus=bonus1+(i-100000)*0.075;8 n, j' k; i0 V/ W' A     else if(i<=400000) 0 X# W" i1 A n        bonus=bonus2+(i-200000)*0.05;, k$ m; B. j- D" {* M        else if(i<=600000) 7 R/ Y/ w0 Y: P3 f/ B           bonus=bonus4+(i-400000)*0.03; / M& @! U- k9 Q6 K          else if(i<=1000000)8 r% h4 ?7 }( v! K- E+ e               bonus=bonus6+(i-600000)*0.015;5 `/ c- d: d) H2 X: p              else* O4 j, Z4 }, a R1 D- J% A               bonus=bonus10+(i-1000000)*0.01; * F; ~/ d6 D, t4 l2 h6 [printf("bonus=%d",bonus); % L6 I' s2 Y: P( i7 g9 C+ @- ^} . s0 Y8 C& x5 p5 x 8 {( B# {( n9 h==============================================================0 F8 }0 k% L* g8 z' Y9 G3 b 【程序3】 6 i# N- u+ { e4 n8 h/ U题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? % D: _) [+ E7 B5 X) _) j1 ?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后% `7 P$ ^5 X& n4 n2 r1 }       的结果满足如下条件,即是结果。请看具体分析:$ Z2 R$ k' o, a2 ?) Y 2.程序源代码:# `" X7 E& e8 ^: T- j #include "math.h" - J" ?7 R J) v7 w' mmain(); I& M( W. _) B% {) y: s" Q { 1 f- H* W8 G, qlong int i,x,y,z; i3 o# v" t5 X' _; u4 m& D for (i=1;i<100000;i++)- O4 r c$ v* I  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/4 z; \1 ]6 A- I* A, |% e; J* q* K! @: K   y=sqrt(i+268);   /*y为再加上168后开方后的结果*/8 U0 S+ H3 E1 B) S/ l% Y    if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ 6 F) J* c( k9 o$ H9 I: T    printf("\n%ld\n",i);* G& y' ?3 k/ n! E* ^7 y. @, \- s  }; c; \6 t. w% q/ U } 9 V3 r- l' i4 B6 T2 a============================================================== 3 Y- h8 i. r5 V! }) i7 G【程序4】: \- T' \7 B: a a" U% j 题目:输入某年某月某日,判断这一天是这一年的第几天? ! U) D; h* b* p$ D4 O/ K+ }9 h1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 * C9 C9 s5 c X0 A      情况,闰年且输入月份大于3时需考虑多加一天。 / J9 q5 e' L! K) q. v2.程序源代码:& q9 z) t8 N0 x$ R( @7 G: M& R main() ; |- d2 Q4 f, I, C! \5 }) F; H{4 O/ d9 W" y5 H$ o# M/ ^/ F int day,month,year,sum,leap;# s5 J5 P* V- {9 e$ f& d printf("\nplease input year,month,day\n");6 l @8 D6 K( S" e2 N0 l `: m( H6 S scanf("%d,%d,%d",&year,&month,&day); 9 v$ Y$ V: w N7 N- {& f; ]switch(month)/*先计算某月以前月份的总天数*/ + W B Y% m1 P9 y4 Y{ b" j# a3 P" b9 F5 z  case 1:sum=0;break;! F6 d9 s* a! @4 n9 d- c  case 2:sum=31;break;* V$ h# ?7 V6 c( s  case 3:sum=59;break; R" L/ G! s( C3 W  case 4:sum=90;break;: e( y3 E* K( Y' l6 V! S! N  case 5:sum=120;break; ! `6 {. h" d4 C9 w0 \ case 6:sum=151;break;' |/ \; m! k" a2 a j/ z  case 7:sum=181;break;8 f+ ~5 Z6 {% T0 R) a1 F, ^9 G  case 8:sum=212;break;5 q6 {9 y! S- K1 r% L  case 9:sum=243;break; 2 X- m& ?$ o8 f case 10:sum=273;break; 1 q) H& d! W3 ?3 K case 11:sum=304;break; : ?! _8 P" C0 T* x: K0 ? case 12:sum=334;break; ( {) j. F7 d7 c default:printf("data error");break;) Y* S/ a, Z7 @0 i }2 T9 L* l/ `' ^ Q7 C* L D sum=sum+day;  /*再加上某天的天数*/ 8 U* E' F6 H% R+ }8 K0 B. U if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/5 q& H/ z. w) ^6 g   leap=1; ' _4 P# [4 r# m else( W$ q$ O1 p% ~6 Q! d7 ?+ Q! t' B/ w   leap=0; 7 G7 {, N. B/ Vif(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ 2 q; `9 Z% Z! u1 Fsum++;) h! W4 {+ v' t/ k printf("It is the %dth day.",sum);} % K" W8 r4 W/ n) f' O, R' G============================================================== 5 Z* E. L5 P) y9 ]【程序5】, Y' `/ o4 u# l5 l" I" @) | 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 ' n2 r+ e& R8 e+ k1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, 2 n% @3 T% w l' G0 k( v0 B* B      然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 9 ^) E6 R5 Y' L2.程序源代码:) @8 b; A" w8 o main() $ w2 n* ~* l% \) {& m{ n' K$ h' y+ rint x,y,z,t; ) w; I+ |" U7 V* }, E# [- xscanf("%d%d%d",&x,&y,&z); 8 |7 S! n4 ^7 q+ k) c# d: c/ Pif (x>y) ^3 F2 s0 ~& d {t=x;x=y;y=t;} /*交换x,y的值*/ ' `7 V0 g+ W% k( I0 }% E/ [if(x>z) + K, R; ^; i4 U9 l' v4 V, p8 n{t=z;z=x;x=t;}/*交换x,z的值*/ W* T! i3 {1 u5 @4 g* Jif(y>z)! D8 Y" p- q% m, B% c0 p& p4 o3 z {t=y;y=z;z=t;}/*交换z,y的值*/ 4 K! b0 L" s }: xprintf("small to big: %d %d %d\n",x,y,z);4 |. l0 L( } [2 p. l, f } @4 h) d- y; Y ==============================================================) R2 q# a+ N; \4 j 【程序6】! }4 [) m, b' h0 t 题目:用*号输出字母C的图案。: c: \8 D! v" R6 s$ N3 ~ ~ 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 ) d6 W5 ?% k+ V2 r5 G2.程序源代码: - F7 B; R% f/ c7 u5 l; m, A8 D#include "stdio.h". a, q* W) S# F; M main() , `: O% z9 G6 S, f{ 6 K, _9 d- G4 }& x3 N }% Nprintf("Hello C-world!\n");& v0 r4 O2 r$ R! @" {# K# u+ R% Y printf(" ****\n"); & w) R9 }9 m5 W& |. ?1 |printf(" *\n");+ J4 F8 p6 H1 @) l! \* G printf(" * \n");' g* b; U+ M, I printf(" ****\n");5 T% m" ?. o9 c } 1 z. O" V9 M& F8 V. U" `==============================================================4 m# Y6 v8 p% P2 B 【程序7】; ]9 @8 K8 y- w/ ~9 e+ z$ l 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!3 q, R) t% U' @8 k; ~/ G8 b$ q M 1.程序分析:字符共有256个。不同字符,图形不一样。      5 ?5 t4 ]$ o# Y8 S 2.程序源代码:+ f* c2 E$ _0 ?5 W- d9 X, @ #include "stdio.h" 7 M0 E0 e; |. r" _main() " a) [8 i: y) G% O# q4 r{ $ K+ d" p y0 u5 p% e+ ychar a=176,b=219;/ H- E6 z* `( I9 y8 G" w# l% ? printf("%c%c%c%c%c\n",b,a,a,a,b);' N9 d) |- e& P% P' H) e, b1 ? printf("%c%c%c%c%c\n",a,b,a,b,a); 7 c: r' y3 z l: d* ]printf("%c%c%c%c%c\n",a,a,b,a,a);- `$ y) K' U) e9 X7 L$ u printf("%c%c%c%c%c\n",a,b,a,b,a);7 @8 x9 p; ~$ j% \, S' D$ p( X printf("%c%c%c%c%c\n",b,a,a,a,b);} M" K( f. z; O3 q$ h( e( ^/ m% R" l==============================================================$ U3 @1 }+ H9 b6 j7 w. ^ 【程序8】 ( L$ H2 ^; ?5 t题目:输出9*9口诀。 / y9 h& R1 R1 y1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 $ V: A% a8 i+ d4 K0 ~" y" Q8 l2.程序源代码:2 R9 {2 I, S' R #include "stdio.h" K3 z# r" S6 h$ ]main() 9 J" O. Q9 ?3 `" G9 y{ * y2 j* _5 ?3 ` int i,j,result; 5 y5 n: ^2 Y6 Q( P# g& k& H printf("\n"); % f3 S% O& p/ |! I for (i=1;i<10;i++)4 x1 G o1 c2 \   { for(j=1;j<10;j++) " s: F. T. T! ~8 w    {# U7 g: s1 E" \5 b' m      result=i*j;* t1 M5 ?- h; F; H4 `' w3 h) Y      printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/# }; V- ^0 B/ j5 r4 j     }; B( l( R7 D" | u: F    printf("\n");/*每一行后换行*/9 Z! j5 M% N6 M% J% ]* f _. p' `. o   } : S: ?1 Y- O0 t6 k a+ f6 `}# V# y7 s5 @# o ==============================================================# Q+ }- t9 U {! i2 e# r 【程序9】, N$ W! E5 W" d9 V" V7 ]$ B" u 题目:要求输出国际象棋棋盘。5 e% R5 f9 `% j) { 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。% Y6 f* E7 ]) d: _! I3 V6 M6 m. H 2.程序源代码: ( @( [* V1 t4 I8 P+ g( N#include "stdio.h"& [. e: I% W6 ^- b7 M main()% D# @ W& r/ R2 F( P { - ]- `( ~( U. V5 Z* Zint i,j; , s P) q1 ], i7 ~1 h) [% ofor(i=0;i<8;i++)5 B8 _- v2 [1 \2 P' Y/ \  { - P& Q u+ Q( a1 f8 c* }. F+ p  for(j=0;j<8;j++)/ d, J6 \% i; h# j4 H    if((i+j)%2==0)6 t! w, `. @( ^1 E1 T) q     printf("%c%c",219,219); ' f# t4 g2 l/ h+ k+ S   else # }* r1 b, a7 }    printf(" "); " U. |7 C+ D2 G a   printf("\n");+ P0 {7 H1 J2 ^/ N" x7 f  }) o1 K$ y; [$ I% E7 p }3 e$ _" b! \8 N5 v, R ============================================================== . b N; }8 d: m. t7 \/ N- l 【程序10】. s( _4 F) z! x; O 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 9 @8 K; H! h6 {6 |1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。" x0 @( ^) w0 ^6 X 2.程序源代码:: y+ z8 E: l) Y6 b. t #include "stdio.h"$ w& P' Z4 e) _9 J main() : z0 n9 d: ]# {' O/ I{ 5 u7 X, n7 x9 c# I4 ^! e& yint i,j;) l$ `% o) h: y& P printf("\1\1\n");/*输出两个笑脸*/ 6 v* T4 T" I+ W# S. vfor(i=1;i<11;i++)* Z' e! z- x; M: g7 j  {' z8 Q/ G' C4 Q0 m* a$ X6 w  for(j=1;j<=i;j++) ' M5 A9 t9 m* \! j- H   printf("%c%c",219,219); % D0 | J# a! \ printf("\n"); : T6 n4 k0 ~& o! T8 z }5 A0 H8 G0 S$ u @! n8 `4 O } ( L2 @; h1 H* ?& J4 Y: S7 l( ~

' {5 U4 S' V+ f
[此贴子已经被作者于2004-10-4 2:10:53编辑过]
回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序51】 : |6 l: N* ~4 A/ i8 A) E T题目:学习使用按位与 & 。   ; O& g" r- ~9 b% j1 _- i 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 6 H* F8 ^, [% m# z2.程序源代码: V7 c- { J' Z2 M/ ^/ Y# ~; H( F #include "stdio.h"" N% g: h8 o( S# A- w% A6 l main()7 W* [( S9 `7 F { ) `: T9 P% ?, y, E/ b tint a,b;( \* g7 H% m1 N3 c$ e a=077;+ I% q4 }' S, J b=a&3;& }+ u9 d2 m1 u0 S0 q- y printf("\40: The a & b(decimal) is %d \n",b); ' S! S$ C1 F1 s! mb&=7; 5 Q `& `& \/ {; V- I6 Nprintf("\40: The a & b(decimal) is %d \n",b); 7 |. x/ i3 l3 U} 3 a! P' h, R4 Y6 N. u; Z============================================================== ) x7 Q7 P" T! s) X【程序52】 % W" t4 J: \: y3 R题目:学习使用按位或 | 。 % A! `( a1 T; R! z4 N4 o# l6 o$ @6 W1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1             1 o2 @2 E" p( q; f6 `( O; V, N2.程序源代码:0 W F5 j$ i% X! X #include "stdio.h"9 Q$ P- l9 x+ i0 @+ a) x main()2 E+ @/ X& m% }1 C$ t& a8 I. ` { - G4 Y* V/ X, N3 K: Z' F$ Sint a,b; ( K- L% E3 ~/ Y3 aa=077;7 m. n0 L( o: h" u: D# `( W W b=a|3; # R, a3 L+ z8 b: `! v7 q/ G- pprintf("\40: The a & b(decimal) is %d \n",b);/ `! X" J( |; T* e b|=7;, b. ?- `% Q$ x) i' d/ W printf("\40: The a & b(decimal) is %d \n",b);' D6 J/ }* `9 [; z* |1 w% t: Z } " G, X9 R) o. d- ?3 D# W============================================================== % ?+ L5 G* e2 b' e$ r【程序53】! W2 }0 F0 [2 h+ h/ \ 题目:学习使用按位异或 ^ 。    4 N5 y U5 Z# r- t0 s* `, U8 ^1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0$ r$ K% s$ U% ~% ~+ \ 2.程序源代码: , K( a4 A4 _& W. z, @2 k+ T: p#include "stdio.h"' \2 Q+ A/ ~/ i7 ~( ^" v main() ' \" z: I7 D6 b1 G% @{ 7 f+ G. m$ E ]' S) x3 I$ fint a,b; ( ]3 a) ] [/ W9 |7 X* da=077;4 l9 @, K$ B$ g b=a^3; 6 e0 A! _: j8 H$ Oprintf("\40: The a & b(decimal) is %d \n",b); : l5 F6 y+ M1 E5 f1 \b^=7; 5 Q' g$ y1 x' J2 _printf("\40: The a & b(decimal) is %d \n",b);6 _* k/ G, J/ n3 J1 [1 N* \ } # U) ~; L1 M: P; L+ j; j! `0 b* `============================================================== , T5 y& B; ~( ?; ^) e9 T+ x, D ], L【程序54】, w$ w; n7 c2 B! @9 J 题目:取一个整数a从右端开始的4~7位。" y* R7 ]3 J) U5 k$ X 程序分析:可以这样考虑: 7 L+ w w- m) o4 d& ~( ?; I5 _" Z(1)先使a右移4位。# g. p g' [* z' H9 C (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) ! ]" n# C6 c: e& e: e(3)将上面二者进行&运算。! o9 b- u8 w( w9 w# E 2.程序源代码:/ O* L0 ^/ ]. e main()8 i1 w' g: M6 L; y9 k, f5 D8 Z+ a9 A6 O { 5 J s$ D& k8 e: Y" G g- E9 tunsigned a,b,c,d;1 k! Q1 M5 H, n scanf("%o",&a); 6 z3 c4 ?/ W* Z& c! @# }2 m7 o7 Xb=a>>4;1 ~. Y- y/ r+ Z |" \! } c=~(~0<<4); ( K$ z( D2 O' S" L v8 o6 `d=b&c; : o% R# n; x8 r9 X& V! p2 Sprintf("%o\n%o\n",a,d); 0 H' x. T* ~7 M0 b" Y1 b6 D' O- o} & `* S6 k; p; z1 Q. B0 ^7 `) m============================================================== , k: L8 V- S) W- E【程序55】4 e, x7 a6 s$ ~7 z 题目:学习使用按位取反~。    , \8 e" ?* m; J2 ~- B; e( \1.程序分析:~0=1; ~1=0;/ j$ S) @$ T p6 b8 u! ~ 2.程序源代码: : H, i; |" C4 I( L; l5 H#include "stdio.h" 3 q. O2 X) N b7 \# r' Hmain()7 K* J% b0 e: b9 w2 m0 P$ O6 d3 L {* n I" N. x' r) D' P int a,b; . Y* L: r- \( \7 da=234; 3 }3 X+ Q, o3 k5 Xb=~a;$ b8 z! M* s+ n printf("\40: The a's 1 complement(decimal) is %d \n",b);& F! a( Y/ Q9 l) M- b! [ a=~a;4 l& r, D) f1 `) ^% |' w printf("\40: The a's 1 complement(hexidecimal) is %x \n",a); 7 w& ^+ S" o; M* i} ( l2 P, G8 C/ ]% i3 A. |" d ==============================================================& p" P1 g u( i6 j 【程序56】 ) n# k8 g! [3 m+ W题目:画图,学用circle画圆形。   - i+ |. I: P7 D: x3 q, ~ X 1.程序分析: ' V5 ^" x' C9 \; R# w3 O) ~. g5 A2.程序源代码:3 S7 L$ E0 T: M, ^) d /*circle*/ 2 D% O' x% n+ Q( t- ~8 t#include "graphics.h" 9 B P9 Q- ~! f1 z9 Mmain()' j" M% i% K3 I {int driver,mode,i; 1 ~2 P' ~- k7 M& D' Pfloat j=1,k=1;# y4 `4 S1 L: }# u) l: s4 U driver=VGA;mode=VGAHI;' L8 P! ^! v# g$ a initgraph(&driver,&mode,"");0 k, n% H3 p# Z& S5 I4 x setbkcolor(YELLOW); & f# J, N A8 D+ j: Wfor(i=0;i<=25;i++)6 v, R" t, ?# t { . C. T# W" m& f. \2 j7 j5 ~setcolor(8); $ Q6 V7 C/ y4 R" F+ C3 @circle(310,250,k); ' n7 C' a1 G& Y- fk=k+j; 4 Q t0 X/ u) u$ ?' x% Z6 L, Gj=j+0.3; 6 e' g# x( J ]: D- y( X& U; F} 7 @% Y. H/ M! x: _9 a4 b7 `) c} ' p# }( V8 ]2 k, ?0 [% c============================================================== ' y, j; f; Z& k9 W. \* d1 L' t2 b【程序57】 ! {6 f4 T( t! Y) s题目:画图,学用line画直线。8 Y$ T1 C H# [# Y" \. I9 A 1.程序分析:            ! {" m$ U. R" K. ~' x2.程序源代码:) U* j* R& h3 i, t #include "graphics.h" 3 q8 N" F6 Z' i* _# d# `main() [% o, v8 }8 D{int driver,mode,i; 6 `( [+ J1 C, J" X; kfloat x0,y0,y1,x1;& Z1 d; v$ f" u/ g" } float j=12,k; , V4 }' X4 x4 k5 Bdriver=VGA;mode=VGAHI; ) I/ x' I$ m/ Z, n! Hinitgraph(&driver,&mode,""); * a/ q- R% x# F C3 gsetbkcolor(GREEN);! R9 F/ B% E! _ x0=263;y0=263;y1=275;x1=275; / \( Y% U7 t. r! t7 O: Y8 Qfor(i=0;i<=18;i++)/ W! z% G( u5 M% G; L { R6 g4 O4 q: z% i; w; ~setcolor(5);- m+ v( w& C% b4 d2 @4 k9 ~! |! a line(x0,y0,x0,y1);& v( |& G$ f1 w/ U; A5 M x0=x0-5; . F% `" `$ r2 h# Oy0=y0-5; , M1 }0 w; n" }, N3 r8 N2 |x1=x1+5;4 d6 V8 \) N# I+ E1 y y1=y1+5; 8 S; k) A0 D6 V Bj=j+10;2 l# H$ B3 v3 e) x; l3 X }; i+ h% j+ W5 c @9 V' E) S x0=263;y1=275;y0=263;# D+ ]/ c' i8 D for(i=0;i<=20;i++)) T3 p- I" r0 y' x) v% e8 J) w, E' W { Z' c% ?) o: g. }setcolor(5);6 }4 V6 G: c" g% Y- Z1 T8 z line(x0,y0,x0,y1); q" y; K" u( Y3 ]4 z x0=x0+5; 8 v/ x( v5 N5 E zy0=y0+5; : H3 e$ r# z1 C* E! ~7 y+ dy1=y1-5;- h; Z" \7 |( l% n& L } 1 V( b# ?% g' w0 d4 K1 z5 T5 M} " N9 }) X b+ I$ L3 r) ]# m( G8 G============================================================== 5 E9 T5 ^" T4 B9 |3 z【程序58】 ; B1 @ u$ G; K" l- d' f题目:画图,学用rectangle画方形。   1 v8 Y6 h8 t1 n" { 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 0 _, V& v+ D8 x( D0 S2.程序源代码:! n6 Q; d) \/ n2 K& `; f+ K" x #include "graphics.h" 7 J2 x4 b( F. T; A! C" pmain()! U8 d6 k, a9 t$ w8 j: K {int x0,y0,y1,x1,driver,mode,i; - Y5 n% F2 e0 D. Mdriver=VGA;mode=VGAHI; 5 K. U" s/ J0 b( e: X4 [initgraph(&driver,&mode,""); ' y: X5 S' @* @6 |, l$ J; Csetbkcolor(YELLOW);* v. K1 g. d/ w; G R9 {$ H4 M x0=263;y0=263;y1=275;x1=275; # f& n" _& L+ p/ h- Zfor(i=0;i<=18;i++) 0 d0 Y5 n; r# Y# U/ J9 }{ 0 f+ X- V6 P4 {& }* ]+ J5 q( h' Qsetcolor(1); 3 T9 {0 z; Z: O' k/ k& _$ drectangle(x0,y0,x1,y1);2 K3 r$ a7 R3 `4 q x0=x0-5; 5 b$ V$ h% D: ly0=y0-5; ; y3 V1 D0 _2 y' j4 Sx1=x1+5;) v9 Z% s! {0 c7 M! n& u& x y1=y1+5;# e/ z4 G! I1 K) J% P/ z0 j } * `' R6 c& Z( p$ @1 _7 _6 tsettextstyle(DEFAULT_FONT,HORIZ_DIR,2);! m% m/ k% B, y6 z outtextxy(150,40,"How beautiful it is!"); * {( l; C( k3 _, Iline(130,60,480,60);5 o, j- s3 k% d4 [" v setcolor(2);8 z1 f7 Y+ z+ @( Q& y circle(269,269,137);$ K+ v7 Q0 U6 Z7 K }% r7 g7 q/ {7 _( B ==============================================================4 r# L" A0 j+ O/ h/ j, W: H 【程序59】 5 h7 b* |+ A( l题目:画图,综合例子。: v9 ?# o3 H; e T' T- T, S 1.程序分析: / A+ [3 P0 }$ l2 j2.程序源代码: , ~/ d3 P u6 r6 C& @& Q# define PAI 3.1415926" o( i" f5 I! E # define B 0.809" \1 }( W5 h' g # include "graphics.h") c9 P' _3 A" m' e4 B- D; G #include "math.h"6 N* v F* A# ~: B4 M main()5 a; e* b$ U& ]+ h) a! a9 @* Y {! M2 A& H: j' } int i,j,k,x0,y0,x,y,driver,mode;& m8 D7 ^2 g& c float a;7 }7 [! J/ S& s driver=CGA;mode=CGAC0;% v$ v1 k- U0 y2 i; v) q initgraph(&driver,&mode,"");8 a% b0 I5 N6 d2 w2 x& [5 ?' \ setcolor(3); ' x, N" w% l) a. i) Fsetbkcolor(GREEN); % F w) @) @: k0 c" v2 ?8 S N! v" Kx0=150;y0=100;& O: E% M# u' K5 F circle(x0,y0,10); " t8 z% S! o& p5 z! o$ }7 g- Ycircle(x0,y0,20); ' R$ H$ {8 c# K( zcircle(x0,y0,50);/ j* ^* J `2 Q1 [/ W for(i=0;i<16;i++) v/ d: B: e, H- h- b6 W7 J1 s& Z+ ]. J { : b# l' [ k1 y, E a=(2*PAI/16)*i; # \/ B0 m& M/ k$ J6 n# f x=ceil(x0+48*cos(a));8 z7 h0 o: U1 x9 |  y=ceil(y0+48*sin(a)*B); , d1 C/ A4 O- Q/ S2 E0 {6 f setcolor(2); line(x0,y0,x,y);}7 a7 {* D+ G/ P, j9 f! I7 Z4 p7 o* J setcolor(3);circle(x0,y0,60); : ?8 A; j# U0 N$ v3 ~9 X- s- J) Y/* Make 0 time normal size letters */ ( b. l4 e. K% e( ]% ^* s, l' jsettextstyle(DEFAULT_FONT,HORIZ_DIR,0); + j; F$ X1 N' f4 x P* Douttextxy(10,170,"press a key");/ Y( k) v4 r0 G+ G3 F getch(); ) s7 ~2 l2 E0 Ksetfillstyle(HATCH_FILL,YELLOW);+ U& R+ x! N$ ~$ b/ e2 z4 Y floodfill(202,100,WHITE);6 a8 h2 \* I0 _) e6 O getch();2 C. N9 Q2 M) m) k) z( S) R) R$ U for(k=0;k<=500;k++) 5 K- ]! v( a" S& q) V{ + _5 {& k! ^9 i2 | setcolor(3);( F* n1 l& e) e  for(i=0;i<=16;i++)$ |& p6 }' Z+ u8 Q: J6 t  {( K1 `* t$ q: ^& y( ?0 ?   a=(2*PAI/16)*i+(2*PAI/180)*k; $ |1 d: y+ _) f  x=ceil(x0+48*cos(a)); 0 r% w3 I: r$ A4 X  y=ceil(y0+48+sin(a)*B); # B& A* y: y6 |. x  setcolor(2); line(x0,y0,x,y);" N' Q' p- \; O3 U/ g* m, P  } 1 b. |" r1 q/ I6 x7 E+ y for(j=1;j<=50;j++)3 P+ N' x H+ N! g4 q5 f  { ) p2 @$ r4 W v: i! x% N y' b- P2 M  a=(2*PAI/16)*i+(2*PAI/180)*k-1;/ t5 G& M$ }) O: X   x=ceil(x0+48*cos(a));6 S: u7 s5 H+ M# D5 v) }, N   y=ceil(y0+48*sin(a)*B); 8 z* [" K6 v* }7 D, m& [  line(x0,y0,x,y);& t1 E# W$ u O6 o2 U  }% j; o8 M5 z9 i, v5 Z. j } 7 s* K5 d( b) u9 z% }' prestorecrtmode(); , X2 P. T: d2 u5 N/ f) ~" ~! A, B}* I$ v# N' K0 v5 k ==============================================================4 E9 v. H2 U( b$ |7 ]/ O6 e 【程序60】 2 m I" o- K8 L题目:画图,综合例子。   + n+ s; [/ D& T9 y+ e e' P 1.程序分析: # t2 X( c9 s9 J7 P2.程序源代码:: F& r0 h; J6 b4 u #include "graphics.h" $ [# \- ]1 F* ^1 r3 P# l#define LEFT 0 / a5 P- {: x' t#define TOP 0, R$ `: o, r2 \( ~ #define RIGHT 639 0 K& k1 i! q2 `6 w! O+ p#define BOTTOM 479 / s6 `. F5 B7 q$ m$ A#define LINES 400 * R( Q+ R( r% E, g8 Q#define MAXCOLOR 15, ^; b5 k1 }5 c& j' k( N; Y& i5 I$ I( ` main()! l8 y/ Z/ ?, E( d { 5 _% d( V2 |% ^2 R1 S% P! oint driver,mode,error; O+ q, {* A+ P& h6 M3 aint x1,y1; 7 | R9 }2 H0 t% ?( @$ Bint x2,y2;6 C: |% y1 F# f: {8 a int dx1,dy1,dx2,dy2,i=1; 3 n5 [* Y% b. a2 C; d, v, q( m) mint count=0;* o9 G- u1 t- {, Z# T' w" { int color=0;+ Z, }% y2 f+ f% k driver=VGA;3 |8 O+ g0 q; J( P, f$ q3 Z mode=VGAHI; 7 S0 a6 C: l/ s' V7 a Jinitgraph(&driver,&mode,"");2 l! W; P" V+ o& T) L x1=x2=y1=y2=10; ( r8 h: n, Y% kdx1=dy1=2;2 r- |$ R0 k% z4 P0 V8 D! ]6 V% y dx2=dy2=3;8 m5 o; Y: q% R1 H! O9 [ while(!kbhit())6 s* i3 k, L; H. n { 2 g* }) ]/ M! q$ ~5 d4 H$ q& O line(x1,y1,x2,y2);3 Q: [; m: u- p& B8 n) \3 S: b9 H  x1+=dx1;y1+=dy1; - W% }; O9 k; R- E K x2+=dx2;y2+dy2;" j0 E' n' S$ N& j" |# [  if(x1<=LEFT||x1>=RIGHT) ! B2 I" f9 r( c5 ?" T3 k: y dx1=-dx1;" k: z& q! M \& [  if(y1<=TOP||y1>=BOTTOM) " |% c2 S& _! r0 T  dy1=-dy1; 8 Y- H, R* C( g: a' n; J& [ if(x2<=LEFT||x2>=RIGHT) / O) n6 Y, g: s5 l  dx2=-dx2;' m) m. y! }3 L  if(y2<=TOP||y2>=BOTTOM) & [9 X0 U6 R9 V, R  dy2=-dy2; U \/ a6 l, P9 o3 B- }  if(++count>LINES) - @# z) s! W5 w/ `. I3 \/ G { . s" c8 Q' }7 `" m" q7 R  setcolor(color); # }2 H' Y! i# o/ V/ |# M7 e# b# Z  color=(color>=MAXCOLOR)?0:++color; . q8 J4 _+ `! {( }# e) y }5 A4 l9 l& p6 t5 y4 V; t6 { } 1 [8 s b3 x5 g. g$ }closegraph(); 4 K! b; L3 d* k1 h% G}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序61】; s& @, r3 y9 }' H j3 ]8 | 题目:打印出杨辉三角形(要求打印出10行如下图)   * c# n8 B; i: T# U( b- G 1.程序分析: : N' t/ R" R7 M       1 7 b$ R% F8 F5 a" ?, e      1  1, ]2 j. r! J( `6 f4 S       1  2  1* R' }! t0 l1 f       1  3  3  1 9 G) O) @/ b4 @- S7 ]      1  4  6  4  12 [# s5 w9 s9 N1 O/ v6 [       1  5  10 10 5  1  ; c' v( N5 K( r# `# G) @ 2.程序源代码:0 \, U! d* O1 R4 l- h9 f; i5 Y main()% I; p5 f, M% ]+ S B: v& Z {int i,j; * y2 x5 d! m2 B6 b0 ^8 Cint a[10][10]; ; ^( q5 a9 ~8 lprintf("\n");5 j( e9 n- o0 x2 j/ [9 c for(i=0;i<10;i++) $ M4 P. q1 |# q; B0 F- x$ ~1 M- f$ s {a[0]=1;9 w L! x3 E9 y: Z. l( Q3 I( _  a=1;}3 A/ q4 c$ K& R4 x, p for(i=2;i<10;i++)8 K/ p4 F9 S3 n8 K8 f  for(j=1;j<i;j++)5 b6 @: [" Q7 k# c* C  a[j]=a[i-1][j-1]+a[i-1][j]; + S* S) a" O% t5 I8 n: h4 H! Gfor(i=0;i<10;i++)7 j& p& D! r: h+ v  {for(j=0;j<=i;j++)- i+ F: n; ^$ Z  printf("%5d",a[j]); + q) |9 q! V& E2 M printf("\n"); & {! z$ }5 c' ], ?* | } 4 A& f. N+ b4 ?5 f6 i} # B8 ^8 d- [# I2 ~==============================================================' I1 P/ l2 o$ }3 A 【程序62】' U- p/ N. I! [" w9 x 题目:学习putpixel画点。; d' u# Z& I) q [ 1.程序分析:             , T+ _/ m/ R3 K, h2.程序源代码:0 u0 {3 _/ x" T0 y #include "stdio.h"" v/ z( K8 J! p# j2 n& g #include "graphics.h" ( r$ d( R. F! n5 Pmain()! l; c$ r3 K7 i3 z* w! f# J { ) U) |- n* U9 y1 }* Hint i,j,driver=VGA,mode=VGAHI; + K1 \ ~( A, e% binitgraph(&driver,&mode,""); U" R2 y6 O6 [* ~8 { setbkcolor(YELLOW); * y8 S7 J; m7 O+ c* Y6 I1 a; nfor(i=50;i<=230;i+=20)7 H" L( A& f, W. k# f  for(j=50;j<=230;j++) 4 Y" d# d1 H$ K* s9 V6 r% X7 G putpixel(i,j,1); 8 K3 ]+ s9 i2 H1 T6 c/ ~ Hfor(j=50;j<=230;j+=20); g; M# D' B7 ?2 \2 J; S. m% @  for(i=50;i<=230;i++) * T2 R3 K5 c. X! J9 t8 h putpixel(i,j,1); - a; n) G% `9 `/ B% v, T/ x}$ G: M3 t8 I- X! L2 J ==============================================================5 V3 w) i) w6 q 【程序63】 8 Q* T6 S. o7 x7 k3 e题目:画椭圆ellipse    ) q; {. r, S# K1.程序分析:) l' T4 O6 |; F, Q. o' L% B- ]4 F 2.程序源代码:% E j6 H; f$ Z$ C: J #include "stdio.h" & a- V t. }8 @/ P, w#include "graphics.h" / Q$ ]* { D5 ]#include "conio.h"* [' J/ ]6 i, o9 z4 P ~5 Y5 C- K main() ; ?7 E: [2 ?" _7 V% D8 i0 C{$ q5 h3 R$ [4 T3 E6 \$ I) j int x=360,y=160,driver=VGA,mode=VGAHI;; f. v+ w! M, T, F% D int num=20,i; ) O6 |6 V# l( Z1 Bint top,bottom; 6 ?" R+ \6 F& linitgraph(&driver,&mode,""); + y( J0 y @& p. e! Atop=y-30; + N G3 @* E& ~8 B5 Tbottom=y-30; ) t- |# o5 l: u* k0 X: a0 wfor(i=0;i<num;i++) : q J7 U f$ A+ G{ 7 r$ a- A" F) zellipse(250,250,0,360,top,bottom); ' e% t+ U1 P8 n2 F2 N, ?1 X: [top-=5; 9 u8 z P+ w& Q+ Hbottom+=5; # y; b$ k3 `: E% d$ ~} ; E. y5 {( }; O) a. q% @; w0 rgetch(); / n) [; @/ d1 [0 I- m0 o! u4 c}/ \" j- i/ h: V ==============================================================5 h% \/ S! A3 A- q: R3 {8 p6 e 【程序64】/ B6 n# ~" N" z3 Z; h5 i* N 题目:利用ellipse and rectangle 画图。1 i: I5 f( i9 l 1.程序分析:* F% ?& b3 \+ g3 [1 C9 ?0 w 2.程序源代码: 7 L8 D* m( h5 N# ^1 n& y#include "stdio.h" , ]; @* S. j/ T9 [! M1 Q1 E( X#include "graphics.h"" {- ~6 n; G& ^/ l #include "conio.h" 9 [. b" ]1 M! ~ Z1 emain() / Z0 E% k/ {( ^) p4 X6 O8 r{+ w2 U: w0 R+ J; `7 C int driver=VGA,mode=VGAHI; * n0 w* x Z/ w% E: F% ^int i,num=15,top=50; # ^) Z- l3 t, {int left=20,right=50; & }* ^ N$ R) T: F* K2 N J. |initgraph(&driver,&mode,""); + D8 p( W) y2 P+ f7 b/ ^for(i=0;i<num;i++) + k) c' J6 o* l+ ~% E( K{0 ] b( I: G; F ellipse(250,250,0,360,right,left); & E, W# ]7 g/ A+ H" lellipse(250,250,0,360,20,top); * x5 _- k5 y; U- O9 p+ Y" l9 v& ~rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); M3 `" x) x( r# n7 ?8 a) H" [right+=5;5 Y! I: P& |5 V/ ~ d left+=5;; k" i6 `7 y6 T5 Q5 Y+ F# N top+=10; - m; K1 k! [, G' l0 e F9 y% k}+ ]) T( N3 U" c getch(); 5 [6 v# ?# ~! S" k; t+ a9 T9 c5 X} $ l" U5 u; w6 }6 ^, U. e; d============================================================== : i2 r# V. H3 e【程序65】 ) J; F3 d" ?9 r题目:一个最优美的图案。    n% t7 K0 D0 ]0 X9 |/ m1.程序分析:' W8 a: o8 {- ~0 ~, Q 2.程序源代码: + J3 C5 p+ Y" \8 k: V7 [3 c#include "graphics.h"' Q! g" g& h% ^2 c #include "math.h" S8 Q, p. D1 U* @8 j#include "dos.h"6 x9 A2 C: r& ]4 Y #include "conio.h" 6 l+ \7 r3 S: h0 }- g0 e# s#include "stdlib.h" 9 d' S! F! J+ K4 {) u0 z#include "stdio.h" ' j. O: Z/ O( q#include "stdarg.h" ) ^1 U; W7 B. l8 }+ v+ [5 X [#define MAXPTS 15; f2 o6 l! \ M4 Q$ m #define PI 3.1415926% k/ E% H$ z' B) M" T6 t. z struct PTS { $ F3 V# D s* Z _* U) @int x,y; @' i; p) f8 q: q" j };0 j+ o# \: w% k; b0 u& ?4 _1 a double AspectRatio=0.85;" G9 g+ w+ D7 p" p9 E- K void LineToDemo(void) $ c |5 E$ Z( v @* u' }4 H{ / n% w9 F% W) ?" jstruct viewporttype vp;/ i3 O0 ]4 e$ B struct PTS points[MAXPTS]; + r. x4 ]- f" m- rint i, j, h, w, xcenter, ycenter;/ r" p* q3 J: \- \( ?! y int radius, angle, step;* V9 B* Z4 e' k7 i9 z double rads;: C. n: g& A# I. b# t' Z1 n& v printf(" MoveTo / LineTo Demonstration" );$ }% i% N6 Y/ d5 n: }# G getviewsettings( &vp ); # N" k/ A* i" r6 Oh = vp.bottom - vp.top;' `3 y( V \- U0 c9 A+ o, F% I w = vp.right - vp.left;0 J' F! {8 U# X, Z xcenter = w / 2; /* Determine the center of circle */ & P/ Y% v3 c; H; K [& Lycenter = h / 2;- ~6 d2 ~0 t/ L1 @; G radius = (h - 30) / (AspectRatio * 2);# ?* H V4 Z& k% l. S U9 H; R9 z step = 360 / MAXPTS; /* Determine # of increments */! e: ^& Z. t/ u! M( V angle = 0; /* Begin at zero degrees */. A6 `+ O% o0 i0 t' m7 B9 x/ p for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */ " E, v5 I b1 V9 T% }7 v9 d+ a# ~rads = (double)angle * PI / 180.0; /* Convert angle to radians */# k: ^& b7 n, h- x! N2 c; @' t points.x = xcenter + (int)( cos(rads) * radius );5 e, W, n' E' I ^- \: S0 [7 } points.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); 7 n8 m! n6 s/ k4 ^8 l. rangle += step; /* Move to next increment */( {4 E: \1 n. g0 I0 j } 3 I" J0 R% m5 l4 `7 G- l qcircle( xcenter, ycenter, radius ); /* Draw bounding circle */6 |6 w' V' Z& I for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */$ t: e f+ G3 ^( T! v& E* q5 f for( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */ * P `9 A6 d( Kmoveto(points.x, points.y); /* Move to beginning of cord */$ Q8 }2 ]3 |6 B# I2 \ lineto(points[j].x, points[j].y); /* Draw the cord */) t9 Z* n6 x- E" `( M) S' s } } }0 C3 s8 w4 l. h2 F. D9 d0 ` @ main()8 d' V/ W) w: c {int driver,mode;) }; u! d) |3 V7 Q1 Q9 c/ H driver=CGA;mode=CGAC0;9 G6 s6 u- Y ~: P initgraph(&driver,&mode,"");9 B2 A; a; i- y2 F' p setcolor(3);% \! H; M( ]0 W1 W' J1 Z setbkcolor(GREEN); 1 s$ N$ ^& n* I& ^$ r k! fLineToDemo();} + g5 X( X6 ?; H) J/ p3 U- [6 ~) o============================================================== % f( K" C. q, ?1 U6 n5 j u- P【程序66】 / ^ O9 S1 R8 a9 d% i4 z题目:输入3个数a,b,c,按大小顺序输出。   6 \3 g0 _8 y% U ] 1.程序分析:利用指针方法。/ g/ o9 i3 v7 G# z$ |* r5 t' R/ _ f 2.程序源代码:; e2 p) z4 @& k/ W! d4 t /*pointer*/ % _% ]* A1 t( T5 F3 n1 k: umain() ) t o0 D8 p1 O5 ?$ J6 S+ A( d5 X0 S{, M$ _9 B( E' w: K2 N. J int n1,n2,n3;% s- ?% P9 b$ A" ?: A8 e int *pointer1,*pointer2,*pointer3; ! ]! o3 v* D. I. n: m( I8 D. N& C* F- ^printf("please input 3 number:n1,n2,n3:");: d1 a3 B# ]) M; b9 n( B scanf("%d,%d,%d",&n1,&n2,&n3);) o! j; f! A( w+ f* ?8 [, x pointer1=&n1; $ U! @/ i+ i- z& t9 Wpointer2=&n2; " {' B; A) ^# p, ]2 ipointer3=&n3;" N/ A& e4 e' l, k2 F4 [0 t# H if(n1>n2) swap(pointer1,pointer2);) |' B1 _: X3 }7 k# S, C' @( ? if(n1>n3) swap(pointer1,pointer3);. |: c" r; s; n if(n2>n3) swap(pointer2,pointer3); n$ B+ N" R$ _* ~5 G/ xprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); + h) k2 q/ s r1 r) D( H} 8 `! ]# S3 e Y3 C, k$ nswap(p1,p2)# M) b6 e+ E5 T& L% D/ d int *p1,*p2; ; a; e. r3 ~: j5 _0 M$ U{int p;# t) m3 ^/ a" V$ X% S p=*p1;*p1=*p2;*p2=p;2 K% M3 G) M: T! c, z. W } ! {5 M0 V2 Y9 b% Q' @============================================================== * L. m$ V2 H$ m h3 e7 G& O【程序67】: ] e A- C5 h 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。2 V7 o- w) p6 y3 b1 q 1.程序分析:谭浩强的书中答案有问题。       0 O6 `) Z- E$ @/ w5 x3 C% d2.程序源代码: $ u7 k8 r! n/ U* F: ?" f) Xmain()% t \0 q9 m( Q# C' G$ \7 O {0 w1 q% T7 E7 v0 _$ c int number[10];7 ^0 ^2 w' m0 T" W* T% R( H; g# W input(number);8 b3 i2 x9 D4 F! F; o) i max_min(number);0 I) C- t3 U' t8 I0 k* P1 i% K output(number); / J% m" t6 }. Q6 G6 ?4 J} " n1 F# F7 o* G* W2 k/ N- G, |! uinput(number)" H/ I2 g# c) w int number[10];1 @# J/ ]! e3 i {int i; 0 y( i% N+ u! m9 T: G; efor(i=0;i<9;i++) & H$ O) g' [4 z4 R! B scanf("%d,",&number); 4 V' e7 u; j4 V, J9 ~ scanf("%d",&number[9]); 6 U, q7 W8 w4 E9 s4 }$ t} . Y) t% x. ]* U4 y; emax_min(array) ( j3 d, _ y4 t6 G( _int array[10];# Q8 E. |" i/ @' x7 |# K7 A$ @ {int *max,*min,k,l; 1 Z& z0 \" f# z, Z0 c. d: } p' ]+ `8 hint *p,*arr_end; ( l" m- h- K w& X Harr_end=array+10;% f' q" z1 O) `# B I0 z" D- i max=min=array; 6 _! N. ? M5 B" t H$ Y& ufor(p=array+1;p<arr_end;p++)* r8 e& e! p1 y. b! T, d  if(*p>*max) max=p; ( l$ A Q+ _3 G1 {" Q! q8 `: A else if(*p<*min) min=p; 6 i4 ^+ U0 |* Z6 e _; A k=*max; ) j9 H# F! f3 n+ Z% l" j6 C3 f5 m7 } l=*min;% _* I7 q- R1 h8 A. v  *p=array[0];array[0]=l;l=*p;0 q' K2 ]) e1 _- ]; R  *p=array[9];array[9]=k;k=*p;5 D% K& `6 q' [# M) E3 J  return; 1 h/ h0 O$ W b4 S} V' @3 L1 B9 |, qoutput(array)6 S. ^2 e# I2 x3 l* I: U6 z int array[10];( Y8 C4 ]$ }' x7 o% R { int *p;( r# i1 t7 x# G/ ^ for(p=array;p<array+9;p++)! h( Z, A# T- s u9 _2 w0 j! Z  printf("%d,",*p); 7 @4 d r# j' A7 J' Yprintf("%d\n",array[9]); % F M( h$ x, _+ G' ]7 G} 8 G, t6 `$ h) z U. A==============================================================! a2 Z f+ y' O 【程序68】 1 F( \8 p) V2 ?7 V题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数5 i7 J, f/ s& T9 H6 N 1.程序分析:! M7 |8 Y- z2 n% b 2.程序源代码:' O" Q; U$ E! K6 f main() 9 N* N; w% f7 j. s; [. n{3 D0 b' C; m$ Q/ H( ~) t2 M3 P int number[20],n,m,i; + l. N% f; O( g9 V [printf("the total numbers is:"); ) Q7 |, _4 ]4 [; { hscanf("%d",&n); % `; p0 c! U0 d, p* yprintf("back m:"); + A% J9 F% G$ S' C2 ?& A7 ?% Mscanf("%d",&m);* v a! u0 {" z" { for(i=0;i<n-1;i++) - f! [$ y' w, R h scanf("%d,",&number);) D: R* g+ } u' Q& v; v, W scanf("%d",&number[n-1]); - T, S( |9 H' B7 @7 B, Smove(number,n,m);* w/ o$ o' x8 [0 m: W$ s5 D for(i=0;i<n-1;i++)) l1 d. K4 s5 {. E9 q: {  printf("%d,",number); 6 _; g; P [# ~7 T% t8 S/ jprintf("%d",number[n-1]);/ `* |* d! ?: E0 s$ O: i) q& A9 V }( b- ]6 y! c: ]0 {6 }1 M: z move(array,n,m)8 {# B" [5 M% Y0 M3 n v7 j6 I int n,m,array[20];% d+ t& Y4 p0 ~ {1 Z T5 S& w& s2 `2 B, @; d int *p,array_end;/ {/ {, Y- W8 f3 h3 y4 _+ ^2 I% c: \1 r% L array_end=*(array+n-1);, Z7 u' x& i7 \4 [3 U+ W6 u for(p=array+n-1;p>array;p--); R: N8 ?$ r+ x3 ], Y! f  *p=*(p-1);( O: u, \6 ]# Y: I w  *array=array_end;' Q# S1 U6 e, _) A4 X5 T  m--;/ _- ^$ l# @5 R9 v" J1 e, l  if(m>0) move(array,n,m); 3 ^, k& v' W+ z} $ Y, v/ x) G9 ]# m+ a# r. Q1 \==============================================================* o# t9 I! |* M1 `0 Q. i& l 【程序69】 F3 R8 a8 ~1 D- g" }* A4 U 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 Q9 d N2 F4 l   圈子,问最后留下的是原来第几号的那位。# V7 s9 l k! W* j( u 1. 程序分析: # q/ r; o+ u4 ?; ]5 w2.程序源代码: 7 K/ f' K" v8 I Y5 P#define nmax 50- t7 s( `2 T3 Z% t! e main()) A2 O* w% `3 ?% [0 @ { 0 n" V3 j1 @* [' rint i,k,m,n,num[nmax],*p; ' H: I* u' U. w+ m% ^ }: l) Uprintf("please input the total of numbers:"); # K! }/ Y ?4 ~) `+ lscanf("%d",&n); ; [+ w; j8 j- |2 ?8 x5 Tp=num; 1 C* T/ }5 X" m7 L6 u* `" _for(i=0;i<n;i++)3 ~% P: Y& M7 W- V2 |  *(p+i)=i+1; + R4 f( `9 |- G4 H i=0; ; \2 C8 \9 M1 L9 g/ t# z! c: ]1 u ? k=0; . g6 S% \# |# [) [) h3 H9 J m=0; & \& A! x. z8 E; B/ [, Z while(m<n-1) ( ]# Z J9 ^" E+ ]2 A5 \ {5 |; z; O; I7 d* t  if(*(p+i)!=0) k++; 7 z+ z- f8 k4 I6 l4 r1 T if(k==3)* m' g) d1 t) @& x' F  { *(p+i)=0;: l$ l9 s; U; H, K2 a  k=0; / U0 [( e/ l1 {- S0 T) N m++;; Y$ r: v+ ]- R" L% }" S9 D  }/ T5 M1 \- K% _* N i++; : j& t2 r; _; ]# l V' s& F2 Oif(i==n) i=0;* X+ c6 {9 Y5 v( N. j% Z0 W } 0 c" g0 b/ k- U3 mwhile(*p==0) p++;) z8 x! q9 u5 z2 ] printf("%d is left\n",*p);. a' X* i* O* j } N8 w& s, H, \2 A- ?7 v) T5 P4 x============================================================== 6 q, u& z5 @9 N7 [& \' U【程序70】 ; Q$ b/ D5 W3 C& l3 z题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。   5 h1 Z/ D5 L" [" O9 d 1.程序分析: 4 q: g1 l" C0 L4 y! I; N/ o1 d2.程序源代码: ; Q4 y# d- u& X' umain() . r) i% [5 n9 f y3 w7 O$ g{ # t4 q0 N9 @( Q9 J n. L' P8 \int len;; g- D! Q) t. @7 t char *str[20]; 8 p& ?' z# N3 x/ p" C8 U' U- uprintf("please input a string:\n");. G/ _! J* B/ j2 x scanf("%s",str);$ t% [! ?' G* W/ u/ u0 A( o0 } len=length(str);, X* p: j: ~" X8 @ printf("the string has %d characters.",len);; f8 J! z* o" u& y' [1 m }( V6 `5 P/ i5 _: }& d length(p) 0 |3 Y0 h9 ~8 Zchar *p;/ E1 f% w3 m+ w9 k8 V( G4 }& g {; N: F( D( Z2 v" T# S K0 T# t, H int n; & S- a/ w: p) c5 t3 Rn=0; $ {5 y, g: _9 ~& Pwhile(*p!='\0')) T# Y8 h! v! O8 x% `# O" p9 k5 O { 0 Q7 A$ \* h* x! _8 V- O7 F2 D n++;" z1 Y1 ]% F8 X7 |7 ^6 |  p++; 7 `- R' X& W+ P% i* z, M9 Z}' Q0 a4 |, h! R8 c: [0 D5 R return n;5 n: |! T5 F K }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序71】 1 `8 {: x( v% E+ u' C6 Y题目:编写input()和output()函数输入,输出5个学生的数据记录。6 \0 P& U& g3 B+ E# z0 r 1.程序分析:, ] w k8 s" V% l' D# H: ~3 w 2.程序源代码: ( |% I* Q. i, W#define N 5 4 t+ W7 B" R9 B$ rstruct student+ i% T+ D2 k+ M6 P { char num[6]; 2 @8 S) L3 T7 Y0 y# I/ u" k2 n char name[8];. P$ P0 _: g& a6 c  int score[4];0 a1 d3 r: Y5 \4 x5 d% L& w } stu[N];9 ~5 h1 X, z4 } input(stu) % y$ \* E2 T' i+ estruct student stu[];9 Q t4 p9 h( {$ W, [ { int i,j; $ d1 [, v, h! H/ M for(i=0;i<N;i++) % i+ o3 ]/ O% o5 h$ l$ z0 d o, E' p { printf("\n please input %d of %d\n",i+1,N); $ N( f; K7 R+ Q) L: H2 H  printf("num: ");* {7 O; H% ^. F7 H" f$ j! x# ~+ w   scanf("%s",stu.num);. O; q, x! {$ A; m5 z   printf("name: ");) `8 H. D8 b. O% @. X   scanf("%s",stu.name); F; \$ I% x) |0 ^8 I   for(j=0;j<3;j++)5 u" X' ]3 x2 R. w: y6 j" J    { printf("score %d.",j+1); % A6 @+ c j# f- x+ S v    scanf("%d",&stu.score[j]); : m2 `, E5 E$ j* Z) J- N) Y   } 7 F+ M# i: w6 b0 w- k6 p) G6 H- S A  printf("\n"); + Y& y4 d) M$ R4 ? }" |8 }. ^' ~6 N } 8 k# l+ P; N! l; h4 x7 Nprint(stu)3 n$ B( A, I2 P# H6 z struct student stu[];. D$ c" U+ _* e: L& h4 T { int i,j; - f) `3 y4 R5 k2 Fprintf("\nNo. Name Sco1 Sco2 Sco3\n"); & E/ M- B4 q) X# f: C# J5 Yfor(i=0;i<N;i++)) l [ ^$ i# E7 Y* E/ S% B { printf("%-6s%-10s",stu.num,stu.name);7 Q9 A) X& z) [  for(j=0;j<3;j++)5 f/ |4 V9 r6 v& E% o/ R   printf("%-8d",stu.score[j]);' P: O) @+ E6 a2 D; P, n! b  printf("\n"); 2 p5 N; @4 f* z5 Y1 q5 w} + O: a' f: X5 Z( T9 f' O} + s- W4 Q9 y7 A8 _+ }$ y. N' Jmain() 7 H8 q/ w6 N+ g8 F' X{ ! R' ?6 G; P& g) ~ input(); : B+ g' u2 c ^, Y* L* o9 ?- s print(); {0 y; ]2 M5 e8 M& v}+ j) D7 N2 b f ==============================================================( d" ], M/ G* W8 k! n 【程序72】 * q9 S' r. R9 s7 N9 u' \1 C题目:创建一个链表。3 E0 a* U& s4 r4 H7 N 1.程序分析:           5 d9 o3 m8 t) G+ q 2.程序源代码:& d# f2 R* K1 K- K' s /*creat a list*/2 }$ Y+ H, c; W) U* v8 Q1 H1 W #include "stdlib.h" ; a" i5 V" b- C7 X4 s#include "stdio.h"* G4 H# ^, V+ L% w8 h3 ~ struct list 4 R$ l. o! @8 u( |{ int data;3 ?. k, ]* v2 r# w4 A struct list *next;, V+ {" C- _( j; ~ };7 j9 w2 |* z+ r l typedef struct list node; B$ V" T: g) f7 u0 y typedef node *link; % A7 ]: z1 ]' A' h" Avoid main() * |. w; ]3 n+ v8 o{ link ptr,head; : t/ l b+ e ^( Bint num,i; 7 G' @+ n6 H) Q, h* `ptr=(link)malloc(sizeof(node));$ `+ y! X' n; X2 a ptr=head;3 _) s: l; r/ t; e j' J printf("please input 5 numbers==>\n"); + t' i. W3 O$ M; T" A/ ~5 M# a0 y" d8 gfor(i=0;i<=4;i++) ) p9 G9 W) g! p, K{ . F( G. l" S2 f! T ? scanf("%d",&num); # O# \/ F* j- O7 v ptr->data=num;1 ]' a- y$ e X0 N) r C5 l* w  ptr->next=(link)malloc(sizeof(node)); % n7 V7 r3 `/ u' k9 q) F if(i==4) ptr->next=NULL;9 |$ L) B7 ~2 k6 W6 w; \  else ptr=ptr->next;7 u" i; w6 ^5 p5 Q, ? }. w4 H6 U- h" Z: ` ptr=head; + q M" }8 ~& M0 b1 B, ]while(ptr!=NULL) % v G0 Y3 R3 Y, Y4 \{ printf("The value is ==>%d\n",ptr->data); $ C3 G5 y% s! U/ K7 L; O ptr=ptr->next; & r9 M! h2 t; J, I+ p+ ?, z}$ m, y$ `/ K4 A% `3 ? } % y- A, ]0 v* e==============================================================, b3 N2 Z6 p, \4 d/ J; s | 【程序73】 : W, y% a; |! T% j" | a4 r题目:反向输出一个链表。    / q2 D9 h) N# R7 t x% A" D1.程序分析: 1 ]5 [* H3 w: Z: d3 }2.程序源代码: ; d1 v; h8 z8 k8 h E5 E; m/*reverse output a list*/) `$ k+ X8 y' w/ u2 B4 M #include "stdlib.h" ' ^3 R' E4 P0 ]2 n1 Q" e#include "stdio.h" ! C7 ?% H' j1 r- wstruct list / \/ O( Z/ u, p5 {{ int data;6 }5 I7 m; ~" y. q3 T- h1 L  struct list *next;; m! J+ T# Q- z, [ }; * F( j+ P# N$ _" `' R* q7 Btypedef struct list node; 7 \2 z' P0 r' ~9 }7 T7 L1 ttypedef node *link;3 z) o/ S6 o: O$ i/ f void main() ( d' O6 g& b3 \3 {9 d. Y: b{ link ptr,head,tail;  - G1 o; |4 t) t, I int num,i; ) B/ ]8 g$ i D" ` tail=(link)malloc(sizeof(node)); ) o' G; P( T F7 Y" a: } tail->next=NULL; 1 ~! f4 p/ s5 @% `, R1 z) X j ptr=tail; l3 l( A2 W$ @ _* u E3 r) b printf("\nplease input 5 data==>\n");0 c9 d( c3 d1 j# n! \  for(i=0;i<=4;i++)2 _6 `9 _8 L% R6 y1 d/ h, I  { - z# ~7 R' S" n! b+ q0 g/ p  scanf("%d",&num); $ A- n3 g/ m4 ]/ |  ptr->data=num; ( \0 |3 ]1 l3 N5 t" }9 Y' O  head=(link)malloc(sizeof(node)); t0 n( h3 ~0 F8 o, r5 ?  head->next=ptr; . R! m' H% M+ _1 p( G. s0 ^  ptr=head; 0 S# f/ c8 y+ Q4 W1 l }8 E# Y6 S7 r1 r5 k9 E/ r ptr=ptr->next; ; S* R9 g/ }0 p- K' H. dwhile(ptr!=NULL) b7 T: [2 ^& k { printf("The value is ==>%d\n",ptr->data);( ]. C- p2 R1 g7 ?  ptr=ptr->next;7 x( j% y2 E+ Z: z- O" M6 n }}/ N& z; R+ H' Y6 C0 q. j' e: A ==============================================================' d7 [2 A0 N+ v9 I h 【程序74】 2 }2 [# \0 K. n+ _* L题目:连接两个链表。0 z' i7 [3 u& Y2 p 1.程序分析: 1 D j$ s, z7 v2.程序源代码:6 h' i Y7 W* s #include "stdlib.h" " l ~0 `( l" S) Z/ z V3 a$ }; w#include "stdio.h"3 i8 V9 K- }9 F. u struct list, F' z/ ?3 t- U8 P" c' t { int data; 3 V$ G0 c8 N, T* F9 q. w9 q" Istruct list *next; 4 I/ G" I5 o* d- ?8 ], V0 o# m" ]& x}; * @" ]# s+ i7 M' ftypedef struct list node; ) g) r# c4 C; h, i, \& I* etypedef node *link; + h8 a9 m! ~/ S8 C, G) Llink delete_node(link pointer,link tmp) C$ N6 ?" @* D8 K5 K {if (tmp==NULL) /*delete first node*/ 1 j1 u8 `, h0 H/ ] return pointer->next;! @$ L% Z- E, P2 P, E: ^* x else+ Y$ _( W. z7 p1 e& \' ] { if(tmp->next->next==NULL)/*delete last node*/1 ^+ q' k- T! r9 \. Q8 T" b   tmp->next=NULL;' r5 p) z+ M" p9 F& ?3 a* g  else /*delete the other node*/6 b R$ a( w, Y7 A   tmp->next=tmp->next->next; 1 L d( a& j; r& d( A5 M return pointer; % P8 f& \& ^6 K' O' b4 e} ' L. w A! }. d5 w9 B: l8 Y}1 ]% X1 D5 k8 q( N/ z7 X void selection_sort(link pointer,int num) , T2 w5 w4 S+ s& S" [' J4 Q9 C{ link tmp,btmp;7 _: ?+ L: r' O) o+ z. @& C! `  int i,min;: U2 i* c6 O+ A5 \& A t  for(i=0;i<num;i++)' l) {. L4 w$ |3 T& C: P* i$ }4 ?9 {  {; |/ G5 S* i0 n1 A6 ]# R) A  tmp=pointer; 7 V# u& Z5 i. V; F `! L- s min=tmp->data; 7 W* j/ I; I8 e9 _, |0 a3 I5 @ btmp=NULL; % z4 @' _- |& T! d p D" T while(tmp->next) % I' r% n8 e5 o/ e { if(min>tmp->next->data)# Z! L" G7 M1 w" T1 h1 }0 D* v  {min=tmp->next->data; 1 q$ k$ W& x/ [) G, v( b  btmp=tmp; . l' @! N" b8 o/ Z! g7 m7 F } 7 T, A* M5 B( R3 W( I tmp=tmp->next;- a" S# x& O! P, j: g* w  } ; Q8 ]4 ^, m9 w4 nprintf("\40: %d\n",min); * {( Z5 L4 [9 `pointer=delete_node(pointer,btmp);! m4 ~3 g7 [* Z. I } ' H+ R& X2 V% [# C3 L/ U) O$ p9 J}( u. b4 c' R0 a, b, L. ~ link create_list(int array[],int num)8 A n% V, o4 n- o3 q3 J# | { link tmp1,tmp2,pointer; 1 @" j( b- n2 S$ r c( b$ R6 F8 tint i; & G3 ~7 j1 J* Q8 W7 z- z$ A& Ypointer=(link)malloc(sizeof(node)); 3 n7 c' W( n" N) Hpointer->data=array[0];! z' q3 _% f* n4 E5 F( Q tmp1=pointer;: l( |; Y6 O( _! v# C0 K for(i=1;i<num;i++) 8 T! H |- J# n$ Y& S7 }{ tmp2=(link)malloc(sizeof(node)); " |& V, R4 A. Z: I tmp2->next=NULL; 5 Q) F+ T/ i" X6 W! _% P/ u. M3 I tmp2->data=array;* {- l2 j) H3 A* Q! E  tmp1->next=tmp2;$ P: e, _( \ F0 k- O  tmp1=tmp1->next;5 @( W% Z! `% f B! } } , c" s. Q( I5 [" A. w3 z% s1 vreturn pointer; 6 \+ `& l1 R; _5 e: \} ! V6 q8 i3 ^ G a Clink concatenate(link pointer1,link pointer2) 7 e, B/ ?! Y; j7 @; g7 V) k9 @{ link tmp; * W d" e6 M Atmp=pointer1;3 J2 g& Y, ^3 F% k- c$ U- [ while(tmp->next) ! O' \# Z9 A4 P; b tmp=tmp->next;( B( B* u' M8 V1 W tmp->next=pointer2; % }# u& R1 B4 V) T& o6 u8 I* m6 c- Lreturn pointer1;. q5 v& R+ W2 }$ W1 l' Q/ ? } ) ~9 C }3 Q3 @! T" Tvoid main(void) & F4 u1 w8 @6 Y( {{ int arr1[]={3,12,8,9,11};' N* }1 [8 h$ h# m* v  link ptr; $ P# J! F/ c" p7 d ptr=create_list(arr1,5); 2 v8 [. `0 a# i& F: l selection_sort(ptr,5);8 w3 u( t; ?$ Z% r, q$ J }. v4 a2 |& r% {& ^" k ==============================================================8 x0 p" T# S* k5 l3 q( d7 e# X: Z 【程序75】- M" A' H6 b6 r4 ^$ z 题目:放松一下,算一道简单的题目。: r. e( J( ^" W! N# } 1.程序分析:; K2 S' y" Z8 f8 x' V 2.程序源代码:- H& y8 P* q7 ^4 S# i main() N) h$ }5 A+ f/ ]4 a) l2 \4 a{ : y9 P, B A ]) w- b$ {int i,n; , ]. _4 e7 e# c( F" ?for(i=1;i<5;i++) / v# B, u+ y1 _* F3 O8 l{ n=0;1 w/ O" K& V2 B' J  if(i!=1) + P+ _) L. e5 e* r/ G( F n=n+1;( R( _% s7 e! X- Q+ Z  if(i==3)0 N6 q! a4 Z" o- x L4 c  n=n+1; |: i0 h1 F5 W C# y z+ ^6 g  if(i==4) ) E P' L8 d% U0 G# h: H n=n+1;' |8 y( X1 ~1 q5 Z7 W5 a( P' Z  if(i!=4)& C. e- y5 u$ V! H( B6 ]. G  n=n+1; j* B! [3 Q) `* c' N% B# T! H% v  if(n==3) 0 `4 Z* U% g* ?, n, `8 R  printf("zhu hao shi de shi:%c",64+i);9 k1 Z7 h* K0 D2 ?  } + [6 M! [8 ~8 D+ v& b} & h8 G& L5 d( a; Y==============================================================$ n+ d! u3 g/ O: J* M9 | 【程序76】 - j Q- o! C2 F8 j ~题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数: J4 ^+ [% _1 L    1/1+1/3+...+1/n(利用指针函数) 7 A# Z' P) U5 ?$ l. ?1.程序分析: & k: S/ `7 G$ `3 x: @2.程序源代码:. v' M; m( M5 B ^. Q0 `0 t& X, I main()" b5 R. p: ?0 H0 V #include "stdio.h"% M6 m: K0 t* f main()1 }$ H6 Y, \% U( r6 | {) \6 [% a y/ _, Y+ ~; J7 [ float peven(),podd(),dcall();1 k; a) m1 y( R! z& C0 R% ] float sum; $ `. `8 s5 ~7 |5 w; Tint n;1 m1 q) n4 P3 V; h0 j while (1) % @* C; b8 m# s- B6 D( S{' ~# C6 n% i9 f! w$ [. _2 w  scanf("%d",&n);7 W) P; I6 s7 |( }  if(n>1) 8 Y3 E* g* V0 M* _- \9 n& c2 M5 z  break; 3 A& k$ d+ {; h6 Y3 t, D) [}' r% m7 K+ m- j3 |: u if(n%2==0). |. P q6 ^; f& ^7 o {4 R: i P4 I) {0 P4 [6 ?  printf("Even="); + ?# e& l+ C+ O6 [* F sum=dcall(peven,n);$ |$ p" M+ y5 r7 m I0 s } / a3 z( Y6 g" Y. c6 n: B, A! v9 Welse4 K+ {& x+ x# q { 7 Z) Q9 s) H/ ]7 H; b* ^& n# O printf("Odd="); 3 m1 {4 x* U Y& A sum=dcall(podd,n);3 ?2 A% a7 @7 _' D# R } 3 }, A* x9 H% W) Y- Yprintf("%f",sum); 3 U: S$ r: o$ h: }4 c/ X, \- t2 n}$ o* v# p; h" U* M8 F0 w/ t float peven(int n) : g) U7 t4 F+ V* C# s{* J( G, g4 a" Q& b, ]0 U. V float s; 4 z, n: U: u5 u \5 Dint i;. l+ L6 {/ z" R) [$ p% e s=1;7 c! ]" d, Q( ?4 c# {7 Y) u# M for(i=2;i<=n;i+=2) 0 F# W6 ]& F4 T# c s+=1/(float)i;( \' d: @& X& P( T: H6 z7 Q return(s);, m5 U/ e# f$ J }- q: n6 F+ s$ ^; @: x/ B- V float podd(n)1 ^& z0 p, e: ]/ F: ?' [ int n; 9 e1 F6 J* `0 G2 t{ 0 _4 x4 @- h7 i3 F( ]) b! q/ Tfloat s;' |, n9 R# @8 i6 r: Y5 H int i;4 N- F: L4 w) @2 H s=0; 4 F& U( W2 \; y, S3 b! Ofor(i=1;i<=n;i+=2) 7 `5 Q' _; d- m3 s/ F8 [1 \; z s+=1/(float)i; & U$ b; o) V" }+ ireturn(s); 6 N, w! H* a+ t}" F3 f: a9 j: n* {( X4 ~8 v float dcall(fp,n) 9 u2 k. J& t% p5 ufloat (*fp)();! o3 s. b, K/ E. Y int n;9 u- `7 n' a1 Z, }4 u- F4 ~9 ` {! p# T" W/ H/ b& \8 e9 D3 K, J, N float s;9 m' m2 }( e; f$ _- g& y s=(*fp)(n);5 ?- Y, n' Y; h& J return(s); K, q% T! Q6 D) E }' c: n* |$ Q4 @: N, c3 [( V9 ? ==============================================================0 B* q% P, a: ~" }5 f' J 【程序77】- X" Y% s# b0 ?( Y 题目:填空练习(指向指针的指针) & `9 G+ z9 N$ ]% z1.程序分析:      ) G/ w! r; K- E3 j2.程序源代码: 5 c! ^; q5 R6 Dmain()8 J, T+ N0 b$ L { char *s[]={"man","woman","girl","boy","sister"};% H9 w7 ?" |" k d S4 C char **q;( F: R: l+ M" C+ B5 F5 u5 R int k;1 ]6 q6 _* ^9 w/ M6 ^' I$ @ for(k=0;k<5;k++) # P6 [+ c* W0 R7 D! ]( Y{       ;/*这里填写什么语句*/ ; m& _( W; u, q M printf("%s\n",*q); 9 E1 |7 g1 d/ k, g: C}" F0 C" k. B$ m, O4 I; }: [ }1 D0 H" G" Q/ _5 ` ============================================================== 0 @! u' v, z8 [# g0 \【程序78】& X" Q% M7 m ?2 x' e0 e+ G 题目:找到年龄最大的人,并输出。请找出程序中有什么问题。' k. V" ^8 B% Q, X: r K 1.程序分析:! h; m: U R- ?! [& ?3 f+ q1 D 2.程序源代码: 2 C. a/ P; l* ]#define N 40 o; ~2 R7 o1 W* V+ \ #include "stdio.h"9 N8 B/ {) j! W7 l* h$ t0 V static struct man7 n6 x$ J/ ~% M2 k' E* l3 q9 ` { char name[20]; . u0 v( ]# b9 g. C5 ?int age; 6 u2 ?$ ]0 J1 c8 q/ R: J} person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; 3 R y* J! n, W9 [& qmain()& n- j9 J5 r4 Y; f/ d6 d {struct man *q,*p;# O- l1 J" J/ G: m' U( W3 Z4 O int i,m=0; ) `# \, s! `& b4 f) b# b* Ep=person;5 G$ y6 f" a7 A8 \; A6 H! q for (i=0;i<N;i++)8 W | }. T4 B) }! T; i; ~& D: \4 J {if(m<p->age) / A6 U/ d9 M% |' A: ] q=p++;. q0 Z+ y8 @* `( M  m=q->age;}7 _: ^+ T$ @7 n8 f7 [+ | printf("%s,%d",(*q).name,(*q).age);* h( S! `# p: T! E, K8 K+ i# Q }6 g$ q4 ~( N0 G: Q$ ~0 k0 p. s; W9 L ============================================================== 0 D: `" j9 H* {/ k【程序79】 % R+ d& r" E/ ?) C0 m, y题目:字符串排序。 7 g; g4 T8 B1 P/ g& y6 i1.程序分析:) a2 c; c/ k& N 2.程序源代码: $ J8 ^+ D" ^0 b# a3 f7 p9 Ymain() M% {; z/ }2 I; E, Q/ k{ ) m/ F6 f, h4 u( Q# z" B' i* p9 tchar *str1[20],*str2[20],*str3[20];. ~4 g9 S" E$ i/ e# l+ W char swap();7 r e4 k# q6 d- O7 G/ P* ? printf("please input three strings\n");- J, ] }: n# \1 d scanf("%s",str1); ' K) X( n* K6 K9 s3 w' v8 G$ Jscanf("%s",str2); ( M: |% P7 X7 m: |, [scanf("%s",str3);4 b @; q) w8 j2 b* P if(strcmp(str1,str2)>0) swap(str1,str2);! r; A, c: q$ `+ Z- ~' A2 G if(strcmp(str1,str3)>0) swap(str1,str3); % ^+ P# ]. \# a+ Bif(strcmp(str2,str3)>0) swap(str2,str3);4 D; G7 M0 \0 A8 r printf("after being sorted\n");3 H, p. j4 E4 l G/ k* ~ printf("%s\n%s\n%s\n",str1,str2,str3);) }8 \3 J7 w% T* ^( x }( }, v4 ~5 e+ G! J5 g char swap(p1,p2) " E, a% s( ]+ p; t5 p& o- y! ^" O9 Zchar *p1,*p2; " q t) o' c" M3 n6 ?6 b7 L" d* K{" b; B9 ~0 L4 N char *p[20]; / ^; V. |% N/ _8 C; zstrcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); 3 `) \ A) d; j}7 t: Q b- H c ==============================================================3 ^/ O$ }. i8 Z3 \2 {; }, _. ? 【程序80】 + R! u; ~$ x! i/ t/ y题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只 ; r. O$ a- _* E! ?$ q   猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 / I. ~/ t: \3 T# w   一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, . Q* x5 e+ T1 ?' v3 G   问海滩上原来最少有多少个桃子? : X& l3 ?8 O+ l3 z, K7 N1.程序分析:/ B w; I5 E$ I! w; q 2.程序源代码: ; C' x* ?! l9 g& Kmain() ( l: @5 P2 _" f4 v3 E2 i{int i,m,j,k,count;: w) u! s! |' e, p) f$ x0 ? for(i=4;i<10000;i+=4). _' F! L1 h* j/ S* y { count=0;0 n0 \; R, L$ } V' D m=i;6 H! x J/ ~; d1 n& N) s1 w1 O for(k=0;k<5;k++) ) J b/ H7 P# h, ~" `{ $ r/ @5 u7 _6 v/ C) X8 @, I j=i/4*5+1;( D+ K' t! u3 B% |/ _; K6 D  i=j;' a, q, k1 B) l# [8 a  if(j%4==0) E9 _8 f; e4 ], j   count++; 8 ^$ {9 X! l: d8 G# g( x else 6 C5 t$ J) u# N* s: b0 v  break; : w$ @2 K" p |' ?; s! y}4 s- H* x, d* w8 l* n3 v2 C8 {  i=m;4 e8 O$ ?# Q* |4 a5 y7 `  if(count==4)6 J: }! h! I4 c6 K' [" E. m- @  {printf("%d\n",count);( r: N1 E1 r2 _: k6 }   break;}4 M/ i5 @- t1 {% k* \' M" K3 \ }- V) l, W6 R3 W& i! @ }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序81】 : h& Y+ ~: C# F( ?( _题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。: V9 Z* W J* N# s2 h 1.程序分析:& J; E7 X! y3 ?4 N5 U5 K 2.程序源代码:% @4 l/ C; n3 t4 v& E output(long b,long i)4 S4 ]3 W u4 ~2 ^ { printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); ' Y- |8 B9 B1 J7 C" m} 4 T* c( X: R7 G: Z& Fmain()- H# u A2 @& R {long int a,b,i; % `& }( a0 M& U- ]3 Aa=809; " ?4 }7 _5 O" v8 y; yfor(i=10;i<100;i++) : u' `" ~ t2 g y2 V{b=i*a+1; m2 L/ A$ U ?, J if(b>=1000&&b<=10000&&8*i<100&&9*i>=100) . z3 ^% }6 v* ^output(b,i); } $ F5 b X& l6 I! Q* u8 v} 2 a N+ q+ Z# J============================================================== * e: ^, S0 g) E" n8 {【程序82】 0 K2 h# h( K1 a: X/ q1 ?3 r题目:八进制转换为十进制( |' [& [% l: s% J 1.程序分析:           9 I0 a$ \5 [) \( j 2.程序源代码:- {; }* H7 q/ a main()9 A2 q! @" Z, k4 `8 c/ ~6 K# G { char *p,s[6];int n;3 x0 H' Q1 q7 _5 a. c$ a p=s; : e; o; h5 `' t4 _" D' jgets(p);$ r2 z( s3 W/ b) }6 I b n=0;# I% B3 V) F& M$ Y8 S while(*(p)!='\0') ) n& ]; H) h) G{n=n*8+*p-'0';9 ^1 F- v, F" a) h( J& c p++;} 7 s3 N3 M, ?& Y, z4 _# lprintf("%d",n); ( f' y; T2 R* _1 ~}+ b: `7 T. A2 T ============================================================== ! I& N- N6 ]0 _. B【程序83】 * Y- L# }) Y; y7 K9 G题目:求0—7所能组成的奇数个数。0 _9 r: W: O- `" [7 t0 P: M. O& w; q 1.程序分析: 3 X [+ S! _; Q; ~: N2.程序源代码: 2 Q7 c+ g5 v; y1 |) ]/ D, J4 tmain()8 I7 [( p. a: l! t6 H { % n0 f% e, @5 {/ S. zlong sum=4,s=4;: l9 \2 W J- A8 i int j;1 r9 l0 |3 r; T( t! I$ b for(j=2;j<=8;j++)/*j is place of number*/# o0 Z ]! I6 j9 ~ { printf("\n%ld",sum); : v. {1 _4 _; K; e2 _9 H' n! rif(j<=2)+ }) }: v- }; m* z8 H& ? s*=7; 5 j5 x) B" P5 t9 `else + ]2 }) y4 Y, G7 N0 U6 Ds*=8;# w9 s& |' g& u1 X7 Y8 E3 w9 `: v sum+=s;}& O' e. i4 ?3 j& N) ^ printf("\nsum=%ld",sum); $ R$ a* _3 g: I3 l1 ]} 3 H7 [1 G& O0 `8 Y==============================================================2 Q0 y0 ]8 y2 P% Y, j5 @9 } 【程序84】/ D9 V: l0 h5 L9 {" M6 ]( W 题目:一个偶数总能表示为两个素数之和。. e2 f" K9 c) L- f* K 1.程序分析:9 x6 Y' a- i( E: ~* u# A 2.程序源代码: ( Z. o! g/ ?) u, L5 n2 W#include "stdio.h"7 _8 m1 N! z* `6 B) ` #include "math.h"* R o3 l$ H5 _5 ~8 x6 S main() 5 h/ x6 u6 [ _{ int a,b,c,d;, [; n8 g" Q8 }2 p4 C" s scanf("%d",&a);& f( s) \2 J6 M6 E+ O* a* X. A for(b=3;b<=a/2;b+=2) 7 r1 b/ Z1 X0 P8 m& J{ for(c=2;c<=sqrt(b);c++)7 r ?& c! ] C5 j: S) F4 ^) I if(b%c==0) break;* x! K* c! F' e$ l+ V if(c>sqrt(b))( B! d" @. x7 n: H3 e d=a-b;1 h, h0 F: K3 s: U5 s( Y, A else ) v: L. t9 d' @' S1 Y% p4 U, ]! abreak;( y- T9 l! c+ I1 ^; @3 h for(c=2;c<=sqrt(d);c++) , t7 u. P" F, r! G! Dif(d%c==0) break; $ b. e7 e- v+ S) {3 V) G E- Rif(c>sqrt(d)) . [9 u2 t: W, D4 n& S5 jprintf("%d=%d+%d\n",a,b,d); 3 Q# d# S; `0 r7 W0 n}9 [* i8 x6 G0 @9 G3 o( q: i7 m } , `% x* j7 V6 L* \, r3 @6 G0 @( \==============================================================& k: y( U' A+ |. W* U3 ^9 K 【程序85】8 o. P) `. X2 y- i% M 题目:判断一个素数能被几个9整除6 _1 o7 s# E# }& e- L0 J 1.程序分析:' D" |8 Z) K( K7 n& s( L 2.程序源代码:. q: A* ]5 a3 M3 c. i& k0 W5 |2 d main() ) @; m) H9 p$ b# ~5 o: O6 _: s, r{ long int m9=9,sum=9; + w: N; l" w" e8 s& tint zi,n1=1,c9=1; 0 t! N7 h, \, C; Nscanf("%d",&zi); ! D. I8 Y. R6 k7 v! w5 iwhile(n1!=0) $ N7 v7 T! X9 Q6 _! Q2 Y% A0 C! Q{ if(!(sum%zi)) E: {+ h6 }. Y2 x n1=0;. ~. f+ k7 }7 K% ^ else 6 n! C+ C6 b4 l' O( O" r/ ]{m9=m9*10; : \6 X [! M, r e7 U u% C. a) nsum=sum+m9;$ F/ w! D# E' p( `* A c9++;9 {; v& y7 }; v: [ }2 O& R# g0 E2 I+ S, m q0 h! K }# |4 }5 F( X" @* L printf("%ld,can be divided by %d \"9\"",sum,c9); U8 l( t6 p$ f} ) X) ]/ u0 u; \2 R6 K4 g. L==============================================================' Q9 [; X0 l L& J3 k( y2 u5 E/ D 【程序86】 # L! f& e' v0 A4 h5 D, H题目:两个字符串连接程序 5 O9 W: j( v% N7 A; N0 L5 g1.程序分析:" A( l# X/ ]& ]: O& ` 2.程序源代码: 7 k* G( G& V: ? \8 h* G6 _: ]! U#include "stdio.h" 7 r9 @; I7 V: v7 wmain() _5 |1 ~2 h; t# n1 a& {4 k5 u7 }{char a[]="acegikm";3 A+ f) m- t$ Z% e: w4 ? char b[]="bdfhjlnpq";# y7 Q, N4 D i, y9 @" x3 p char c[80],*p;! u( l+ T; Q6 X int i=0,j=0,k=0; 0 q6 M2 a6 d3 e* T9 Rwhile(a!='\0'&&b[j]!='\0'). e6 S6 V g0 c {if (a( i2 L5 X, B6 A( j2 l1 M { c[k]=a;i++;} 4 W( `. W! f& ]/ N3 M) {& Melse ' R7 a0 Z; K4 T& s! d* `, ac[k]=b[j++];! c+ g' p4 q2 H/ R k++;% e6 P$ i! @0 e }) @1 [; z$ p8 i% Z! w c[k]='\0';' C! W. i% o) H if(a=='\0')9 v/ @% W: A9 n) [4 s. {. e p=b+j; ' V: |/ Z9 ^0 Aelse5 j3 [) x$ `( w+ F; ]2 s p=a+i;2 O8 M1 m9 D4 U strcat(c,p);9 H0 e1 H3 c M# q& c4 u1 J puts(c);$ L1 i7 l; y/ t: H% q } % G2 o2 z. W. [3 T) T0 K==============================================================9 C4 Z4 @- f2 R3 G' I3 a2 e- j 【程序87】* H) Y0 V7 S# B( C$ Z( H1 ^ 题目:回答结果(结构体变量传递), o- E" G# K5 ^6 E0 Y! k! X 1.程序分析:      - M7 n! v) q; V0 c* ^* ]2.程序源代码:8 P3 c1 n- n# s$ ^" f #include "stdio.h" . L3 C5 |! J3 Tstruct student 6 N" a+ m, j* L+ r{ int x;; p6 g4 t$ y( J) r! T# O char c;$ r, `$ Q* k% c; Z5 [+ D } a; . s5 k: s, j0 l0 j# ]" d! Fmain()/ @7 [8 Z8 n* Z$ y% m( O$ r3 q# G {a.x=3; ' a( H3 s5 N S2 X( `a.c='a';8 c5 |- R4 p" y" j f(a); 6 p6 Y5 F0 V9 L9 }7 ?0 cprintf("%d,%c",a.x,a.c);' x7 B+ _! ~4 ]6 u( F9 r* ?* c } ( Y- F. `- ~) hf(struct student b) * L7 _! c! E2 }/ ^8 b4 ]. j{ / J( ^1 `$ V$ n, f' l! Tb.x=20; 9 w/ Q1 l% ^( j& V' P8 @2 T! `b.c='y'; 4 I: |3 i; F& A; T( g}& r% |3 X' k& f$ B ============================================================== ' ]. o& m# |$ b6 S【程序88】1 e1 Y8 |3 {5 r2 u) p" G( O6 S& d7 v5 C8 _% O 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。: y1 W) V6 ~3 z& `7 F5 L 1.程序分析: 1 x2 W" ~2 O7 O% j: ]9 p8 p2.程序源代码:# d! V8 \& V$ F; x main() ! S4 z$ H5 m# L{int i,a,n=1;0 U; I! s" Y- n* k+ B/ \6 L6 u( C7 ^ while(n<=7)% |; c( Y, ]/ c { do { % c* t+ M! h0 |; k: t3 A   scanf("%d",&a);2 ~* K3 `% ~) {    }while(a<1||a>50);5 Z. Q' G& _* v6 B( U" x' ^5 k0 ~ for(i=1;i<=a;i++)# U' H- i- D& y! V! U  printf("*");9 z' G) m* \, e: _' Q$ M printf("\n");/ C9 N% A9 h, A n++;} / D% o/ X) B; w; ^ Hgetch(); . O! r0 Y% q" r2 Y! f4 E}/ y) C8 f9 ^# j6 b i' C' K" H ============================================================== 6 m, k$ u0 V$ o- ? W【程序89】 0 R i8 G% x9 c( @ f+ M) Q题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:( U$ N. C9 X) L8 j* L/ a2 i, ~# u; \    每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。* n. \ x$ [; g* q1 }4 ` 1.程序分析: 2 ` \4 q4 W- N1 D" l% J! B2.程序源代码: ' `( ]8 C, r/ L( F4 y# N! g* [main()" |; Y5 U/ h7 |9 s" T {int a,i,aa[4],t; + i$ m0 O" a: p: `' `scanf("%d",&a); : y, ?+ Z4 t1 A1 j1 I2 zaa[0]=a%10;/ [4 B* b0 r% F/ P/ N aa[1]=a%100/10; 9 p/ G( `9 j0 v0 y; b& vaa[2]=a%1000/100; 3 ?# l( ?/ {7 H# D5 Zaa[3]=a/1000; 7 ^6 H) ?4 {5 {* X* d4 T- a2 Pfor(i=0;i<=3;i++)1 i7 A1 O2 h- b% g/ o$ L$ g0 f  {aa+=5; ; r- P/ N' ?' F6 A/ @* a aa%=10;. |& ^& R9 C, C( H9 b/ I  }$ G) R z3 r! ^3 h, j+ Z9 } for(i=0;i<=3/2;i++); ?: L& r9 X4 \; Z; a y  {t=aa; ' U& A2 @# v" L' I! n$ b( ` aa=aa[3-i];/ P5 E4 r; ~1 D' k$ _, o" }  aa[3-i]=t;1 Z9 P4 E$ q& l$ F3 K( ~& x  }2 @( z+ ]4 _+ T6 t for(i=3;i>=0;i--)- @) R: V8 v q, ?- U3 t- E printf("%d",aa);* u: v1 w$ w/ |' |0 q } ) x( F, _$ ~0 i" K9 ^& w==============================================================( y: `* [$ z$ x) E0 t( i" A. j 【程序90】 $ ?4 X5 }# `' W0 P# D题目:专升本一题,读结果。 # w E3 H8 K$ T1 P. X4 I2 R/ t% ?1.程序分析: 1 z S, X5 Q- S$ G2 b7 W) j" E' {! @5 ?2.程序源代码:; ]( {' D1 C& } L, }- v. t1 y! p/ Z #include "stdio.h"/ o |9 g( d# Y* d" \9 T+ @2 h) z #define M 5 ' i9 f' \- i% M# N: Z! j9 ?8 V: rmain()% w; l) ~, G2 f" F0 S* _ {int a[M]={1,2,3,4,5}; ( m0 a, v7 p1 U/ Bint i,j,t; ; h' D- F2 b0 g7 p) e1 ei=0;j=M-1;$ Y! M& m1 y( u2 W$ d$ F while(i4 q) Q5 k: Y6 e# t2 I7 u {t=*(a+i); : W6 v% M; w Q) M: F3 C$ `2 q# q*(a+i)=*(a+j);/ M9 f: {) v+ N! ?& U# k$ H *(a+j)=t; ' x9 V" Y6 V" B% D; zi++;j--;6 ?/ q9 h8 z4 N6 [7 [- m( e } 0 {4 O, _2 H& N o3 z, w) O# t Ofor(i=0;i! H4 b. Z& E% J1 f. }8 s/ Q1 \ printf("%d",*(a+i)); 9 e, G5 g% Z/ u" V4 f) w5 n}

回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-6-11 04:07 , Processed in 0.497912 second(s), 75 queries .

回顶部