QQ登录

只需要一步,快速开始

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

经典c程序100例

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

事先声明:

0 D6 `7 x* j7 t* X M" \

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序81】 3 R) ?6 m, D3 @题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。* a* T, G Z! A9 E+ R& E8 h 1.程序分析:! F3 B* J) ~2 Z; z! W' M0 R 2.程序源代码: ; @. Z1 ?. T t: W8 `: doutput(long b,long i) 2 b2 z1 Y r5 o2 N6 W3 z{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); / s3 {2 M1 f& ~# U- Q* p}6 d8 |# `: I- F+ _ L0 e5 I2 {& y& T6 Q- u main()4 w% Y& Z8 E( v: m3 x+ s: R {long int a,b,i; . _7 I2 S% P8 ia=809; ' @3 }0 ?. K" s$ Zfor(i=10;i<100;i++) 7 K0 ^* f( i5 _. w& p{b=i*a+1; + u% I& |- W& t/ ~) Q% Vif(b>=1000&&b<=10000&&8*i<100&&9*i>=100) 1 `( }8 ]1 P3 |; }output(b,i); }2 p5 l9 d/ t! y7 O1 C: Q/ ^ }* l. G* c3 K! A, R4 v5 f+ d R ============================================================== + l- Y: J. m; k$ s& \【程序82】 5 d9 ]& ~ o" l+ x题目:八进制转换为十进制 1 G" v( }' [4 k1.程序分析:           , V' |2 ?9 ~1 N$ p/ y1 J7 E 2.程序源代码: . ~7 a/ T+ u4 S4 nmain() , l, A9 e) r' R; T0 v{ char *p,s[6];int n;3 C% E" v; V8 d! `1 d5 @ p=s; - ]% C$ L& Q- f" Lgets(p); , y/ {" _- l! b& K+ D3 A5 G4 |n=0; 6 [. u$ A$ `' j6 y2 T! @while(*(p)!='\0') $ t* E2 h& D9 k{n=n*8+*p-'0'; 6 {+ W( H* Y3 u. j0 ]( ^p++;}5 Y/ @1 \: r! G; V printf("%d",n);- f0 x) C( r$ h: u( e; C. B# c }% H/ u$ A- z2 e) Z ==============================================================$ c" x+ g4 O) y g 【程序83】2 o/ K5 Z/ K1 u* |( H! j; J) g$ \ 题目:求0—7所能组成的奇数个数。) X/ E) C% A2 t: | 1.程序分析:7 _; x" w! A9 ^ D, {1 O4 J 2.程序源代码:, [. |! A# {* d5 H main() / N/ Y& Q1 O/ @{ 5 N5 l) d: P' V1 l$ ~* m; C9 A+ E. ?long sum=4,s=4; " Q4 S$ T( ]1 ~* `! h5 n9 d6 cint j; , r7 h. T) e, {' F% Y7 |: ffor(j=2;j<=8;j++)/*j is place of number*/( z3 i$ O3 I' X# m { printf("\n%ld",sum);6 v; a5 x* M1 m7 Z; u# J) G, t, |9 ` if(j<=2)9 }! E! t- i, q5 z) _! Y/ F& Y s*=7;$ [( h" m; O @$ L else 2 {5 }8 u+ z* S" l/ r! ss*=8;: H2 Q; |) Y: G! Z sum+=s;}9 i; y" S6 Q. d& g& }4 o' |, v3 Q# H3 E printf("\nsum=%ld",sum); , X6 [: Q6 O* Z) l* k}, h# F) a7 R* E; ?* _ ============================================================== % H# [0 W: e/ T6 o) [4 M9 Y5 F3 T【程序84】 ' x- G2 ~0 c# c/ G: Z, }题目:一个偶数总能表示为两个素数之和。1 b: t( q1 B. A6 a7 @ 1.程序分析:9 i1 F6 N' r) o! u 2.程序源代码:0 R, T2 Y! X/ h #include "stdio.h"7 ~2 C7 n6 c1 K6 C. }5 K #include "math.h"7 t- ^: O) F; X3 _0 \ main()4 g3 I' I8 B3 o { int a,b,c,d; 3 `4 ?7 _% q& Z! d) n# Q# Y2 \1 \scanf("%d",&a); 8 n, Q: H8 M8 Z Y" l: K# U% Sfor(b=3;b<=a/2;b+=2) ' E8 H3 b4 k+ M. ^8 S{ for(c=2;c<=sqrt(b);c++). i: h5 d( J3 m if(b%c==0) break;% @, ?' v( p+ q7 M if(c>sqrt(b))) u& l3 j/ b' K. E, d d=a-b; ; k2 e3 O+ a( oelse: O( U4 Q/ K, k% u4 v break;$ [4 R: I m7 _7 b1 j8 l) d for(c=2;c<=sqrt(d);c++)% O/ K- [) l# X$ b6 ?3 ` if(d%c==0) break; " Z, P* @; c1 o3 _if(c>sqrt(d)) * p/ S; C8 x5 G, W# Jprintf("%d=%d+%d\n",a,b,d); $ V+ I1 g4 R, v% e. W} * K- s* B2 x/ G' N5 V}% ~5 l% _/ U3 S( m, g* U9 d ============================================================== $ x8 m5 w+ { `# e0 l- y- S【程序85】7 H# b9 x, y' ^$ I: m, N 题目:判断一个素数能被几个9整除 3 B- V# B' \- j$ i m1.程序分析:% ?8 d7 h5 e" u1 H; ^* [: m 2.程序源代码:0 Q3 z! }, I* I d main() " U) _! ^. L1 h. t4 }{ long int m9=9,sum=9; 3 J V% k: n3 u4 G( oint zi,n1=1,c9=1; 7 P! g0 C* ^1 P" P5 c& Iscanf("%d",&zi); 0 |$ b, f1 q4 S' E" w3 O8 z0 Lwhile(n1!=0)9 N( L4 n/ g5 w( S2 W% x { if(!(sum%zi))1 E* l( i3 I4 X P2 j3 w n1=0;; v% g6 h, f1 e4 H5 i else/ z. \' P2 e5 i1 u# R& u {m9=m9*10; - w, x2 c, W/ Z; F5 Lsum=sum+m9;) M- K% S) \0 ^' Z c9++; J. q$ p* V( o( W2 h4 M4 Z}1 @, i$ n- X. ~- { } & `5 x8 E8 y' nprintf("%ld,can be divided by %d \"9\"",sum,c9);. H, f) i8 E7 J3 A }# a" T7 ^1 b" A5 C/ ]: R B ============================================================== ) q/ Z8 |* |6 s) |( c$ A0 ?8 X【程序86】1 i2 {' s, q* F2 K* f 题目:两个字符串连接程序 ( l$ O) L+ {7 R+ Z% v2 _% F1.程序分析: 1 }4 i/ x/ O! {% Y n2.程序源代码: W( R9 F6 s8 i#include "stdio.h" % J3 P$ Y* ~+ G- A% R& {8 t$ E& {main() 7 f- p! t; r. J# q7 q K# g{char a[]="acegikm";) d4 P& B% _/ z+ t' @' p char b[]="bdfhjlnpq"; 3 h7 g0 J9 m8 P( Echar c[80],*p;% R0 F+ G, G' B5 P, _ int i=0,j=0,k=0; , |, Q: g" \# f9 xwhile(a!='\0'&&b[j]!='\0')+ \8 B* j5 C* J9 k {if (a2 Q* E+ ]- D$ E. O% [ { c[k]=a;i++;}' h) a4 M2 u2 U9 e else: o' R$ H& z' J1 E c[k]=b[j++]; & o( J; I" X. g8 wk++;5 b. I9 a4 _' `9 M9 m. l }/ `2 V' E! a p, v. m2 C c[k]='\0'; 6 a- D8 s) t- I. Hif(a=='\0') ) _4 \7 C7 ?4 V8 y7 }& X" \p=b+j;# W. p* ?" B0 {! ?* Z, h7 ^ else ! @" Z, S. a. m0 A. Y4 _p=a+i; - O5 C" n1 i, R9 p* bstrcat(c,p);- y# ?2 c; O# Z6 v/ f puts(c); & C B7 h+ l! H+ A# k/ S( V} . \, z* U, @% j==============================================================" J; x4 X$ A3 o 【程序87】 2 H' W" Q7 |6 a8 v3 x- v题目:回答结果(结构体变量传递)) j* y8 p; f8 p$ [! y 1.程序分析:      , k! R' z: E/ Z! H0 p5 N9 K2.程序源代码: 0 \4 }5 f; @$ R. s2 H% x9 N#include "stdio.h" G; }9 J7 A1 @& L struct student8 Q# c$ Q$ _; ^% [ { int x; - S2 j4 H, T; ~% V1 w [9 L- i6 L; ?char c; & a: g# `% [7 t2 G, z/ X} a;8 I# u5 c* O& X4 d% O9 A main() M* s: C5 G/ p( G) ~ N {a.x=3; k: m4 @% N/ e D2 B. ?a.c='a';6 w: W' G) v' s6 _8 T# ?( g N0 } f(a); $ d) B: l% S0 bprintf("%d,%c",a.x,a.c); + O, R& {1 {; ]$ o3 z4 P. Y}/ W6 L% o! ]6 S' V/ O, P f(struct student b). p! ]' C( C/ |( _ {( F h" N4 y$ H b.x=20; ' ^; E! h$ x8 O, ~6 ~. L# cb.c='y'; % p/ W% G( p5 u$ ]}3 w9 S8 b1 E% a2 t! J ==============================================================$ ?' c% K6 o5 D" U 【程序88】' q0 N" F- \1 V2 d C+ F, r 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 1 ?2 p$ m" }1 @1.程序分析: : r8 o3 u& D% f. V7 l) A2.程序源代码:# P9 s+ Q0 P4 S8 i# \0 {' o main() " Q6 j4 u% M- _2 b& {{int i,a,n=1; i% t4 [& A7 s8 xwhile(n<=7): `2 i) ]3 A! R' c8 n { do {6 L& |5 X4 @, [+ V. e    scanf("%d",&a);6 w/ ~1 I! u* z# _8 H    }while(a<1||a>50); # t1 h8 ?, }0 J: g8 Cfor(i=1;i<=a;i++) 3 e' x: u& Q% E printf("*"); ! s% d J5 ~7 w& t8 p4 Mprintf("\n");9 W; m# U X7 g# v3 F n++;}0 r. @# ^- u! ^6 F& f" }6 L getch(); + U4 `3 K, a5 A9 m- N} 6 v+ h6 U: R/ M. J4 g" @5 h============================================================== " E$ C y. M/ A【程序89】% M1 v4 @ f1 Q" B% F 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:% M, Q- ~% y: Q3 X) }2 m    每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。* @4 X2 l# n# m" }- D% ?. d5 [ 1.程序分析:* s! G0 y$ P$ k. T 2.程序源代码:7 Y3 @- g. L7 ]6 D% R$ @ main() 1 p; m/ i6 n T( ~7 H( a{int a,i,aa[4],t; ( T$ L/ ]4 f8 b2 Yscanf("%d",&a); , I/ F- x! k% \- {- s& Q2 Zaa[0]=a%10; ! d: B7 C# |; \% ^/ xaa[1]=a%100/10;4 \" \& d. |5 O7 Y% [* [* R aa[2]=a%1000/100; 5 ^1 q& W$ l- R8 b, [% daa[3]=a/1000; 1 w2 d5 I8 @' D4 \7 _4 yfor(i=0;i<=3;i++)$ \3 J. ^. C8 [  {aa+=5;* s; D0 S$ ?4 _; o! H  aa%=10; ' A4 ?; f" ^' j) C9 r }! n: L. T X) r9 ]; S( ^ for(i=0;i<=3/2;i++) 9 L- |" t/ n- ]2 q {t=aa; ) _$ z8 u0 |) {1 e aa=aa[3-i];$ O$ M! _1 d- k& F c& l" O  aa[3-i]=t;# }7 q3 p6 j7 E j% j$ W$ l! e  }7 c- ?6 I4 Q( O$ J# s for(i=3;i>=0;i--)' n5 X2 A5 n- r printf("%d",aa); : J6 b* F) V: J* Y. `9 i} 3 A8 R; n- Q- R* ]! d4 x/ C==============================================================% ?3 h+ Z% U' s" E& `4 y6 `. M 【程序90】 ) K8 t8 u: Q: X7 l题目:专升本一题,读结果。. e" [$ X8 H1 T 1.程序分析: 5 o! |" g/ n( O6 d2.程序源代码:9 n0 o% N: t+ H- X2 h$ U8 I! p #include "stdio.h" : Q8 c4 L; I v( G9 I& Q9 f! g8 o#define M 5( Y" Y$ t# X) m9 f" Z5 X main()' q' C0 y [; @5 D {int a[M]={1,2,3,4,5}; . m4 I0 }1 [; A. ?8 w$ T% Eint i,j,t;$ D4 [- i; s p) p1 U- A i=0;j=M-1; " p; y, K) O0 D$ [2 u% Iwhile(i; t0 W5 Y; H% \" K3 U9 j R {t=*(a+i);7 h% m' m" [' p6 ~) m% ~ *(a+i)=*(a+j); ' k# J0 f1 {) [( Z! H# C4 F*(a+j)=t;0 N, W4 U/ P+ j' P2 q( [0 t. }; j i++;j--;8 h3 }5 R0 y( y4 A- I" p }# m, e' Y: ]1 u% Z: V0 l for(i=0;i+ A0 W8 o+ ]4 u# h; _9 r printf("%d",*(a+i)); , a! G* c! h- I. @( S; |}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序71】 # Z" i: M4 D! E% E/ J6 g: H题目:编写input()和output()函数输入,输出5个学生的数据记录。 0 r( z( ^6 K7 H7 l; |1 T1.程序分析:$ l! u# w* I7 L) I0 E6 H( O7 M 2.程序源代码: # N; E- d6 p9 k6 h1 x% |& J#define N 5 ( |, v$ e9 W" O# Z _1 H$ ]struct student( s9 w9 P# i+ g2 V4 j { char num[6];' `4 s& y' p! Q* I' f/ n  char name[8]; $ V, e" f& d( J1 Y+ `7 W int score[4]; 0 ~. t! j) O7 G} stu[N];# H& I. B+ y6 M input(stu) ( |% W! D# S! I3 [* E. a5 istruct student stu[]; 1 r) Y- `* G* y! {{ int i,j;8 S5 U2 ]: T/ `. V W5 ~$ [- v6 x  for(i=0;i<N;i++) 1 y! s; w+ h% ?0 p1 U6 k7 E { printf("\n please input %d of %d\n",i+1,N); / H% R9 H9 @3 u4 g! s! M+ u  printf("num: ");) ]4 A% T+ d( p& {   scanf("%s",stu.num); o- R' A3 T" i  printf("name: "); ! L9 C6 [( p8 C2 Z  scanf("%s",stu.name); # F, X% z" |+ T4 v   for(j=0;j<3;j++) ; n" r. ?9 \' O+ H   { printf("score %d.",j+1); , }" U! I5 |- X; L4 Y    scanf("%d",&stu.score[j]); 3 @& e, A9 T+ P8 e9 q3 P/ V6 n) S1 F   }1 C: Q" N7 d! t1 h" a5 }   printf("\n");* F! Z# y F) M* f O2 V5 k* V- j+ e  }# I- ^8 D& F0 d H( v: i }( y& _0 a" ^$ u- d) z2 x, Y H7 o print(stu), C( `% i! H) H$ P struct student stu[];2 \% g5 ^9 n) r& N" f2 Q: `5 U { int i,j; , ^3 C1 ~0 j7 F0 z* T. D5 h; _2 w* Eprintf("\nNo. Name Sco1 Sco2 Sco3\n");5 \# ~/ t5 \) r; | for(i=0;i<N;i++)) ]' S' D$ U# S& F! c6 i8 ` { printf("%-6s%-10s",stu.num,stu.name);1 U9 A5 @: b$ ?& b+ J! v  for(j=0;j<3;j++) : n0 w( s8 J! U7 d; g! G! U& j4 |; [& ?  printf("%-8d",stu.score[j]); 5 A' P7 c7 i; H printf("\n");( K3 b! ~3 p% b0 n( U1 y/ X } * z* A! T* t2 s" D$ |- B} ; @! f; X" Y) |- Dmain() Z' ?4 Z; _+ h9 e7 K: W( A; Z$ @ {/ @( {8 K* N7 c2 m& n- }  input(); & Y: \7 O3 s/ K( y4 z print();; _1 G2 `! Q( c [# | } + c3 y4 V, Y, q6 O$ H2 V0 V============================================================== 4 t8 C3 u p' o+ M& E& L【程序72】3 q' k# D o" h2 H3 t2 Q 题目:创建一个链表。! I! ^4 i3 i U+ l0 U) X 1.程序分析:            ! @$ X4 _/ l$ V% ^2.程序源代码: ! x, _3 w+ ]: j& `/*creat a list*/ / t# d' @$ V7 E3 B+ P#include "stdlib.h"4 _3 G* ^ x/ \. }1 t #include "stdio.h"8 ]+ G1 t* Q! E! Q struct list5 b+ R# C- q/ \1 o6 W& t; \) [0 ^ { int data;6 c1 D, {& [" R" g; F8 h; k9 y struct list *next;( b& o, t9 n% Q$ D4 ^2 _ };; S! Y5 r& F& _% O8 t# u5 N$ i typedef struct list node;% Z! S$ U0 e, [! q typedef node *link; V) l. ]! Q8 _+ s1 F6 k: o void main() / L( ^& P6 h. c, w) D+ x{ link ptr,head;( t, O; A* O% z& f) c9 Z8 @ int num,i; / ?4 d' ~7 \3 M: }) ~ptr=(link)malloc(sizeof(node)); . \( O5 h' t1 ?) P) Fptr=head;; L/ U. o5 \% V& d5 c* h printf("please input 5 numbers==>\n"); ( n9 [) @; Q: e: Zfor(i=0;i<=4;i++). q: a8 x8 E: h$ Y& r( H f {3 }( @8 P. v2 o$ n& q  scanf("%d",&num);+ l! S+ V# ~' i+ t  ptr->data=num; ) o* n- ~' |! g+ l$ Q ptr->next=(link)malloc(sizeof(node));! l4 R( r7 W3 a9 x9 a  if(i==4) ptr->next=NULL;. ]' |7 y8 V+ \6 M# F6 O  else ptr=ptr->next;1 w) m# j, x2 O } - o3 }0 f7 k6 `4 o H5 Iptr=head; 4 y. [2 e, k4 l# r, Nwhile(ptr!=NULL) 2 g9 _$ E, m" C# u{ printf("The value is ==>%d\n",ptr->data); $ ]. W/ w* n* A: T, ]6 A4 O ]- t ptr=ptr->next;! d5 p9 B5 N% t* ? }: T# ~' Y9 Z2 y6 e5 j }& Q; k3 U7 `2 c2 G% h% q% C ============================================================== $ \5 {) u. p" R6 p3 Z \, P【程序73】 $ G3 Y, P+ S% @- u9 H: d2 l7 c题目:反向输出一个链表。    . G9 B/ w3 Z+ \& O7 z! C7 P `1.程序分析: 1 }; [/ ~" v [1 ]: @: Q2.程序源代码: : x6 ^- a6 f) V6 j( u) d0 v! g/*reverse output a list*/ ( P4 R! h$ e6 l' q7 m#include "stdlib.h"4 ^% ^1 w2 @) q0 Z- N #include "stdio.h"; N* |; G c7 y- m* p% L" f% Z$ }0 } struct list 7 f+ s, @! v4 ~0 E1 p5 _{ int data;: v1 q j* V8 O" A  struct list *next; - P5 [8 B7 X8 x( H' h* k}; ; ^8 J. K) c5 m7 V7 k7 }8 Mtypedef struct list node; / f6 J1 q6 b! U- `$ u5 {typedef node *link;! `- h- O; X6 j ^ void main() 6 A* D7 E3 a* q{ link ptr,head,tail;  ) ^+ t4 S3 t; H& O2 d% U1 U int num,i; 3 J w! i1 @3 {- \7 D" K" f tail=(link)malloc(sizeof(node)); ; @ n6 Z" M1 O1 n tail->next=NULL; ; Q2 {- h; S+ J: s. A! s ptr=tail; - v$ g' y5 _; e printf("\nplease input 5 data==>\n");5 N5 R/ b4 G `8 j: o  for(i=0;i<=4;i++) 4 O; |) s2 P% \ { - [* W1 D, O$ J9 o. t  scanf("%d",&num);! Q" s* @6 Z! @   ptr->data=num;& c8 {$ A9 C, ^6 ?" J   head=(link)malloc(sizeof(node)); # z0 l5 b# C* G' j  head->next=ptr;" b. G$ V) H4 L2 c; |2 ?& J6 g   ptr=head;' H8 w8 W% ~& Y4 ^$ N( |' B  } ! o3 I* Q4 v! `3 Yptr=ptr->next;, R- C7 _ A2 Z2 b while(ptr!=NULL) V8 c4 Z% c9 _+ V; Z1 b# _2 B/ q { printf("The value is ==>%d\n",ptr->data);8 R* N6 K& s7 e& O5 B* R  ptr=ptr->next; 1 s1 B- ~1 R: P3 _}} & s- [# p! t& U============================================================== ! h6 v! Q' m4 Y. S( L9 _& D2 O! P【程序74】, q1 ^/ D. a1 j; S/ D 题目:连接两个链表。7 f4 x# L; o4 ]/ |. c& K: k; D" W 1.程序分析:. E+ v0 I: B4 d$ w2 ~ B 2.程序源代码:3 |3 f- P% X3 ?- L: Y7 s% j, F #include "stdlib.h" 0 k% P# s4 N' v#include "stdio.h" $ F/ V! Z: l6 ^8 ^7 x8 Q3 Qstruct list - r4 h: N+ O/ n9 M/ q' O{ int data; 9 I& k+ X7 _4 I% H$ i. {struct list *next;/ _8 s: ]2 Y, B2 ~* n7 M }; ( M) R5 a( i* \& a$ k/ P9 gtypedef struct list node; & { N8 G7 M4 i# Z: \typedef node *link; 6 o' |7 J6 y9 b( C* d. n: Jlink delete_node(link pointer,link tmp) 7 [" n3 w5 @, c& V{if (tmp==NULL) /*delete first node*/) S0 d0 H% r" m) g" p# M  return pointer->next; 7 [7 R+ C- g7 G1 T# E" m% i6 \else( p4 V# A7 n6 I$ X { if(tmp->next->next==NULL)/*delete last node*/ - y6 H& h8 r: W  tmp->next=NULL;) a0 R9 e; e# r" U: F9 k  else /*delete the other node*/, t9 u# z7 V {9 V4 P. w! I7 Q   tmp->next=tmp->next->next;, @+ q/ i4 }9 h4 j  return pointer; z( z: G, o) \# X+ d/ V& ^, p0 l }5 p- T9 H( W9 }+ E% h. G/ k }5 t. T5 E. E+ b- _ void selection_sort(link pointer,int num) % D2 C9 {: N9 x. s& A* O{ link tmp,btmp; / D+ F+ p. n' |+ [ int i,min;% m7 {/ {: _ D9 F  for(i=0;i<num;i++) - d3 n% }5 B/ b& A: L {5 l( g( k0 d, e0 ]: }+ o  tmp=pointer;$ R! w: Y) V( B& s% n v3 ~  min=tmp->data; % S7 B; _# m( j2 I btmp=NULL; : U4 `& h# @, q9 Z6 y6 @ while(tmp->next) 2 V4 q: s( g2 t; z: L { if(min>tmp->next->data)- m/ }6 A2 q6 ?( u  {min=tmp->next->data;% g: z- h2 o+ R5 B# v+ ~2 i8 d   btmp=tmp;6 q8 Y B9 s/ h4 z: r3 T0 F4 M  }' p: }' C) N- Z7 H6 e7 X  tmp=tmp->next; " c0 g4 L* }9 F+ E4 x) I+ n }0 Z6 s7 ?8 z* y# t- v printf("\40: %d\n",min);) i4 ^. q0 Y6 M pointer=delete_node(pointer,btmp);* S( j! i9 O/ I: S/ ~ }3 H# D& T9 i% I } 7 K$ z# F! `7 V6 E9 ^ u( Clink create_list(int array[],int num) / j# _* Y, k" E, f2 I6 B! Z{ link tmp1,tmp2,pointer; 5 L c' O/ K$ jint i;7 {( e- J# C7 y' W8 v2 a2 i pointer=(link)malloc(sizeof(node));* \! Z: h9 ]& g# {" F& ~* e: x pointer->data=array[0];# `5 o( `3 @, y+ w& v) C tmp1=pointer; 6 \/ z5 z( b; Z' j" G* Bfor(i=1;i<num;i++) ! x* D+ T9 e: b# |8 p* v{ tmp2=(link)malloc(sizeof(node));4 g0 }/ x& {9 ?& [. H+ I& C( y) E  tmp2->next=NULL; " u7 M1 z, y9 C+ R tmp2->data=array; , e, ~! V' O2 E: \; a- Y tmp1->next=tmp2; 8 [! T9 V" _* C0 b- q6 T1 M tmp1=tmp1->next;+ y9 M3 X1 f7 X+ h }6 M- N* M! |* X4 S* P/ C return pointer;, e, s" S6 h* ^. V# T }* h1 b8 v3 d* K" K! c7 r5 j& a link concatenate(link pointer1,link pointer2)7 f3 }& C# @) M7 J+ d { link tmp; - t6 H- `$ K6 I7 ?tmp=pointer1; ; V# ^- s7 t% Z: f2 c. m& W+ vwhile(tmp->next) : M0 p% w8 W6 j8 m tmp=tmp->next;; I8 |) C% L0 e% q3 c. ~ |0 z& [ tmp->next=pointer2; : [' o2 ^" _# {, A& G1 Creturn pointer1;/ ^: y9 y3 u! F* R, j& A& G }* u9 F3 h$ V( D$ [2 k void main(void)5 ?; K+ F, }$ a1 M! w2 u { int arr1[]={3,12,8,9,11}; : U1 K# \6 Z0 x7 M# u2 h link ptr; p" U" P: t/ Y% Z! U5 ?) ]7 Q  ptr=create_list(arr1,5);$ @; Y3 U8 o$ Y/ h2 P  selection_sort(ptr,5);2 H" p) ~/ x( N. s3 c5 J9 t+ R }7 c+ |2 }6 @# G ============================================================== 7 _" z* w8 Y. t7 t. Q5 e0 i【程序75】 $ m+ H1 j. U/ k$ _; R% ^题目:放松一下,算一道简单的题目。, S) Y c; c n" n, Z" l$ a' C 1.程序分析: , ~6 Z, e5 O& p) Y2.程序源代码:# v- P- ~( U0 C8 k4 ~, ~: Q main() 5 @$ G# E! W' x4 n6 L{* E; h5 d8 H" v$ e( f int i,n; ) q4 D' N$ w3 h- \" k5 Ifor(i=1;i<5;i++) 3 j, J+ H) r$ I+ I) d{ n=0; 7 j h9 c8 X' k" o2 i7 s if(i!=1) . L8 e7 H+ o$ P; ?3 C2 k: w n=n+1;. k( u. _& z* t6 m- T8 R  if(i==3) + r5 C5 S5 F5 u6 z5 T+ V( N2 M e9 _ n=n+1; 9 e" ]5 p5 R4 c- X if(i==4). H' A) M# m( [( c  n=n+1; : P" Q/ P+ J7 a1 U, a if(i!=4) % Q5 E8 O0 K( U# f0 N n=n+1;8 J0 j) A6 \$ v+ m: Z" E# A4 K  if(n==3)" @0 z8 B2 Y3 x. d6 L; x4 A   printf("zhu hao shi de shi:%c",64+i); , w+ L2 K. X1 y }# f8 R* @" L+ I }' \5 h# R, T: W: F ============================================================== 9 O" P( ~7 x, y7 \6 u【程序76】 + z( W+ N! J1 _# ~题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数) ?! R& h9 ]* S5 d3 i& ]) F    1/1+1/3+...+1/n(利用指针函数) & i7 M, b6 O' }1.程序分析:9 x W% {% s B 2.程序源代码: : {$ v7 l2 ]0 ^3 I) Fmain() - r4 U, @$ u7 b% F% r& S3 n" R#include "stdio.h"$ A/ K! O9 B0 O main() & z" s; H1 Z* r0 f1 A{ ; {% g. \1 |' o" e' I$ c/ _. rfloat peven(),podd(),dcall();: V5 ^2 U# q! C/ Q' b/ w& P float sum;) F2 |2 I- S U3 Z$ z* t6 ~ int n; 2 |% s0 }; @& f; b& {( C5 _ n3 i& kwhile (1) ; G/ D+ w5 g) f8 G0 c4 r( L6 ?{ 0 _7 f0 Q' s- @1 Z7 y! a8 o5 N scanf("%d",&n); , D5 V. o' s0 } if(n>1) 1 }- m5 r; c* [$ l; d  break; & c) V" O+ w) L4 q! w7 h! v: N}* r( h3 q' y- }3 z) @0 m: h; G if(n%2==0) ( M% Y3 ]# {& W% p7 }" E{ ! Z1 X4 ^. v! i) H) k0 P* t/ W6 v printf("Even=");- e3 [0 ~/ x# W; a  sum=dcall(peven,n); - @; @9 n( k! A; C- X& G5 X8 P} # E: C6 b/ [" telse/ h7 O4 e, F7 h$ R3 N4 b { 5 i9 ~9 m2 C: {/ R7 i1 x printf("Odd=");0 F1 A4 j( `. A4 i! O6 m1 y  sum=dcall(podd,n);9 ?4 p: \" S9 y4 c d }4 j, X# T# b% W printf("%f",sum);9 J, U5 m) M& D U9 a: u1 N }2 u3 g [/ g4 U) D! Z float peven(int n) ) G& V; l: P' w* R7 o/ A% F, m& }; A{ 8 J8 j* N& Y* S- b' }7 `float s; _! F8 \4 G- A- _% Xint i; 0 _5 }( v( k: t; W- gs=1;7 T+ h. F0 y) Y9 t2 W7 Z, y- b1 q for(i=2;i<=n;i+=2) : C1 w: I4 u! K4 T1 W! N% g s+=1/(float)i; * T) j' Y. a0 q* ?return(s);5 W4 y% l+ q( _+ |/ P5 Y } 6 F& y& p* [" Vfloat podd(n) - }2 e. @6 p D# y1 a! aint n;! x5 ]* Q E0 O& ?9 [% N( E7 D {9 ?$ x* l! @. m d$ R+ V/ O0 P float s; 0 w' K$ t' i" p% p. xint i; : T' _* A9 H0 U" _- y: Ls=0;5 ^( \" \6 ?( N4 d6 l) l1 [9 L for(i=1;i<=n;i+=2)5 i. d; s- I c  s+=1/(float)i; , K6 N" |( c9 R. M5 _# {return(s); * ]$ I- n! K' A# C h} 0 B3 _8 d( n3 D$ q! W; Wfloat dcall(fp,n) 6 P6 y1 I n/ B, O1 }float (*fp)(); % i; }( K X1 ]$ O6 U }5 `int n;1 |! T V Q/ \$ t { {7 w2 U7 K+ z1 p$ P# r$ T float s;6 q" {: D4 ~1 _" p4 R9 x+ S s=(*fp)(n); ; e$ M# r# s( T8 R5 h" Treturn(s); # a) k+ d8 x; W5 `}+ X: {/ c& O: A ============================================================== , p& M$ M4 ^5 ~- K3 z ?【程序77】. V& F4 X T1 V* U9 V 题目:填空练习(指向指针的指针), X9 Q% w9 Q/ v' A. P1 I8 [2 p- e 1.程序分析:      4 J3 `* x9 X R9 \# b2.程序源代码:: M& ?4 @* L6 J3 |; R main(), c' p- _/ x. f- m0 R { char *s[]={"man","woman","girl","boy","sister"};9 U3 Y8 n. @6 _1 U" V. l- F char **q; 5 v7 E+ k8 W: J) ?/ |) n2 ?5 D5 K7 g! Hint k;0 W3 s5 J0 l) u/ w! F5 J/ n for(k=0;k<5;k++) : x; l( J/ L, O$ _- Q0 S! z{       ;/*这里填写什么语句*/ 9 g4 z; n! ^0 D/ D/ K0 t printf("%s\n",*q);8 J$ O x6 F p4 ^" C } 6 F# q8 B" }# S% \}+ u1 g# I4 _3 y+ J/ u* W5 p ==============================================================, M: e7 ^' ]: y( C 【程序78】 , L2 w: P9 u3 d8 p题目:找到年龄最大的人,并输出。请找出程序中有什么问题。7 w1 t% B" Y4 p8 n# U/ e2 G 1.程序分析:0 u' ?5 X) T3 i: P' Q 2.程序源代码:+ N2 }: |3 _& N& J' t8 U #define N 4 & u( w: \, I& i' I( N#include "stdio.h"8 S1 N# j5 b9 n( Z# g static struct man) }6 P$ c W z& {- C { char name[20];( y: D2 Z' H5 I3 F1 H7 v' z int age; ! _3 B$ G$ B9 M* y! c, g} person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; 3 {2 w* F V( h. Ymain(), k5 k, N" C# I2 C2 ^5 ^( d1 l; v {struct man *q,*p;# f$ }# {( u; { int i,m=0;$ A0 `0 u4 [4 h% K( }) k: B+ ^. Q: s p=person;4 `- X1 z/ { y8 L$ x for (i=0;i<N;i++) ! L' K2 T' A. H# h1 i2 u8 a{if(m<p->age)$ ]+ W; {( N# n8 M# }+ i  q=p++; # q9 v3 C" w! J Y m=q->age;} $ X# O1 q. S6 f, dprintf("%s,%d",(*q).name,(*q).age); # Q% ?0 c" }8 r- s$ m} ; l- a- U' U, \7 H9 L============================================================== ) |3 G$ f1 ?' g5 K$ E" A【程序79】 & t+ M7 \% I2 r( m; I& x, m+ C题目:字符串排序。1 F) L) y; y2 H, h 1.程序分析: - S! L: j0 y: W/ d2.程序源代码: : L0 f/ g1 e/ G6 \; Zmain()3 I6 t7 Z+ ^7 B: Y- J$ C5 f {/ L$ L2 r1 ?6 E0 _7 o6 D6 _8 @ char *str1[20],*str2[20],*str3[20];1 l; Y5 s6 N. f8 C/ ~, N x3 q char swap();9 h; Y! r' F# z2 o8 | r printf("please input three strings\n"); ( |( B' l; T+ m' Escanf("%s",str1);. Y2 v- F# h) i& n scanf("%s",str2); m+ Z( E* D! p& I: q! _% tscanf("%s",str3); / ^" H* V/ E7 y$ ?if(strcmp(str1,str2)>0) swap(str1,str2); 0 E" _* D; s5 z% E# Q/ \if(strcmp(str1,str3)>0) swap(str1,str3);2 n# D3 E u* j7 t3 \: D, Y- c if(strcmp(str2,str3)>0) swap(str2,str3);8 G: ?0 x9 e# R0 \: u printf("after being sorted\n");( ~% Z0 E# ] e! P3 w2 {, z, e K/ g printf("%s\n%s\n%s\n",str1,str2,str3); n6 d; `2 O( g7 T1 g O' e } ) S" E- v% q2 Cchar swap(p1,p2) ) D+ P$ h* L6 E" }; Uchar *p1,*p2;" m0 G0 w( W2 n1 D2 M {" S) t+ y8 r, b. e w: v0 U } char *p[20];# J: p- r+ x# e: M& U1 \ strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); 9 B: ]1 o- v- K2 m5 u} 5 m2 U i, B, F' f j$ p# e============================================================== + N1 I; \3 }. h! K3 K0 H% R【程序80】 f4 P4 r; N) L5 v6 F5 ~+ _ 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只: Y0 `6 B6 l7 Z( V$ @$ k    猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了) B8 a+ K( _# m0 ]    一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,9 C" G7 T* _0 ?    问海滩上原来最少有多少个桃子? 4 @; [, o1 P1 m4 S6 u1.程序分析: 2 b* P6 y# ]: c4 R: ~+ k N2.程序源代码: ( H; y: ]9 l% F5 f; H9 z6 U2 f4 \main() 5 H7 M: n: E' ?7 u; k+ N{int i,m,j,k,count; D7 d$ H! U. Q1 c* o) ?( q for(i=4;i<10000;i+=4)2 U% L3 C4 T2 h3 q: B: P2 ^( H { count=0;: f3 R8 U6 n( W8 N2 z% E m=i; ) x0 ]. ~/ G2 U" i- K: Vfor(k=0;k<5;k++)6 O# |2 k! h! \ { 4 d, z) J! l* }. j j=i/4*5+1; 5 c6 A# m2 a. T i=j; 7 u, ]9 [9 o, I) c8 s0 n# p if(j%4==0) % n1 G) \! |" F' [* `* L  count++; C: a) F( t& e9 l- p else. j: D3 H# D- p2 n( @7 X   break; 1 W; ?; M' y M$ A1 W4 T8 X} 2 d, _ `& z/ x) Z/ w7 V i=m; f6 d5 X, n( L1 r; _  if(count==4) 2 C% T) ^' H0 d& V/ e5 p {printf("%d\n",count); ; e8 B) \3 `( I/ E  break;} 1 ~. o0 a b5 z}( T: z0 S2 o/ }+ e5 d }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序61】 : [$ h8 G( v4 ]* x" [2 U题目:打印出杨辉三角形(要求打印出10行如下图)   $ L' _ P: O9 N 1.程序分析: 7 q/ a0 C5 [) m       1 7 _2 p' j# T" C b& K* ^( `2 n! p      1  18 T: K0 i0 j3 w2 o       1  2  1/ x- k1 A, U& i$ s       1  3  3  1 + z9 p; Z) W2 O3 t1 |' p. e      1  4  6  4  19 J% |, V& X0 c, u' e       1  5  10 10 5  1  8 `: g! H4 Y3 Y' v8 A$ \+ w- {2 q2.程序源代码:$ y# ?8 f) h) P) G main()" [8 _8 m$ c) ] {int i,j; ( Z3 F+ w$ d9 B( n7 Iint a[10][10];, m& c# J8 q2 M! u5 `) d V. B printf("\n");+ T# e5 n' }3 b8 {7 L) l* H for(i=0;i<10;i++)- s' {: _& T/ Y5 w  {a[0]=1;3 i, S' o; _. U' r! j0 {  a=1;} 5 ` s/ h/ Y* L; Hfor(i=2;i<10;i++) - @/ ^: a* d0 O1 Q. x+ G# I; u for(j=1;j<i;j++) * k4 r8 ~: \5 a4 `: e9 N9 I0 Y a[j]=a[i-1][j-1]+a[i-1][j]; 1 E" X* V" ^, t9 g- |for(i=0;i<10;i++)8 H8 \% f/ R2 z. k) Q  {for(j=0;j<=i;j++) 0 P' C! u. ?' r0 }! { printf("%5d",a[j]);8 M5 V8 m5 J6 t3 i  printf("\n");6 t# Z+ O2 {! g3 a" p0 O5 ?0 o  }) z" T, F. j9 h" b$ a0 c }3 V2 n; V. |9 B8 F ==============================================================' [* d* G& ]' C1 N) O 【程序62】 4 C6 n0 `4 p; A5 D题目:学习putpixel画点。# x0 x7 }1 e8 _7 S, I 1.程序分析:            5 Y. i* r7 X. {0 z+ v. { 2.程序源代码: ) u* W. ?/ x8 Q2 ]8 K8 _* B) u! `$ G8 {! W#include "stdio.h"; R6 `" u/ ^; s' \* |3 B #include "graphics.h" , J. S! u0 G) }7 n6 S6 ^" ^* W# Lmain()7 y: ^# E$ j; X2 q; L. w { - p4 S+ g! h( ~- F ~$ ]. G7 ]int i,j,driver=VGA,mode=VGAHI; $ w5 {" \9 y9 `" n3 Q% Ainitgraph(&driver,&mode,""); - B; e2 ]/ M! J0 [! B( v' dsetbkcolor(YELLOW);, P2 t: x) i* A, h. M6 O for(i=50;i<=230;i+=20)7 q" i8 W2 r& m/ A7 W% V m  for(j=50;j<=230;j++)9 ^6 A- ]7 V) J- }/ [0 `  putpixel(i,j,1); ! M/ ^" P5 {% x! O/ Tfor(j=50;j<=230;j+=20) U. o6 p% d, {/ M# W# o  for(i=50;i<=230;i++) e9 j4 w% r) V" r/ C( j* I2 Q putpixel(i,j,1); + }" N) R2 T+ T( e} ; A, e4 ~$ v) p+ k& X. W! X7 j3 v==============================================================' a R; {. h& [+ y! z' [1 Y 【程序63】 ; @8 s- P% K; B5 Y/ t- W9 N6 ^8 b题目:画椭圆ellipse    # _9 e. g) k, I* A0 s6 b1.程序分析: w# b- p8 J1 x) d3 z 2.程序源代码: ( X+ N) M3 ]2 g$ ]#include "stdio.h" ; V8 f" X) ^0 }#include "graphics.h" [$ W$ G9 t/ ~4 y! }, b2 G#include "conio.h" ' O! ?3 D% L( a9 K8 r4 o% {7 |main() - L {! j! I, r1 `) Q3 J3 x{$ f: f2 e$ K) \" r+ R6 C" ^! u% V int x=360,y=160,driver=VGA,mode=VGAHI; 7 Y2 n& _6 j0 S4 s! ]/ W7 |5 ?$ Oint num=20,i; 3 y" z1 F7 _ M5 oint top,bottom;& M; U% `0 l/ U. s& a+ ^ initgraph(&driver,&mode,"");7 F$ p2 j) U: ~; T0 F% k/ J top=y-30; / J- i z7 H9 h' W+ i @ dbottom=y-30;/ ~* J( Y7 t6 y1 v for(i=0;i<num;i++)! R% ~8 w7 B6 Q! | { 4 d$ d7 v0 m& y, \1 f2 s% ]0 ~7 Wellipse(250,250,0,360,top,bottom); 6 m/ K! Z$ K) a& y% @top-=5;( O4 V5 o3 J7 U& z, \1 W# [/ r- U bottom+=5; 4 M4 t/ ~. |, g, _! g/ Y1 [9 K* q}' m1 z8 W1 w8 m0 Z5 r- _ getch(); / \0 {- I5 _0 b8 Y. O9 b}2 S% `5 |2 ~1 @5 J8 M; H K$ p* o# {) i ==============================================================+ h, S3 }& w/ h$ n 【程序64】 " ~% S K' f4 D8 w2 O( B题目:利用ellipse and rectangle 画图。 ! B; f; E! ~$ B0 _3 ]1.程序分析: ' Z: N7 W) y/ G9 s4 b1 {* W1 @2.程序源代码: / H3 z6 N4 a4 O5 n* g. c#include "stdio.h"( A" L' }3 {5 M& a) A, r #include "graphics.h" 5 l6 v2 G' W% R# f/ F#include "conio.h") o. ]' X6 e( [0 L: o main() ( W U& B: o) x$ n4 e{# ~* c9 ^5 Q3 q: o' n int driver=VGA,mode=VGAHI;' C% v' y! E$ \( l6 g6 J5 G int i,num=15,top=50; % n7 ?' z0 u8 U/ J" h& Fint left=20,right=50;2 ~; ~! w: g/ c% D8 _3 o initgraph(&driver,&mode,""); ( u6 v1 ~* g! Q6 `4 a+ Qfor(i=0;i<num;i++); }& @8 ^% _# k9 M" m, m+ E { , e# m2 [7 p" ]: q) eellipse(250,250,0,360,right,left);/ k1 ?) ~' w4 e' \6 j3 y ellipse(250,250,0,360,20,top);. k. ^ T* `9 D+ j& o* O rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));' n* z! G b- q1 d; p$ P8 j/ z/ m2 g right+=5; . n. H5 z! X- |3 `' L1 j1 J aleft+=5;9 u, i$ H u2 j% D4 k% @# k top+=10;% I7 R1 B8 z$ E4 S } $ Y$ ~: ]6 s& f E" A% Jgetch(); ; a. C3 `% p8 \/ x# v} f; g8 S8 T2 }1 }+ g ============================================================== 7 W5 q: \& M. |9 U7 D【程序65】 & V2 N0 x3 S7 I9 O+ b! h) ]题目:一个最优美的图案。    1 l) \% k9 r( S/ |* O/ R1.程序分析: , j& C3 J2 U1 U# ?2.程序源代码: 0 G0 C2 ]' x) l#include "graphics.h": d0 p3 Y5 p+ S% o4 x: l/ D #include "math.h" . [0 S6 }+ s; Z/ S8 w#include "dos.h"* }- U/ ~5 _! K+ P3 q* ? #include "conio.h" ) k7 g2 V, _6 v8 G5 f2 s/ T#include "stdlib.h" ) ?. [$ f! a2 a" v) c#include "stdio.h"; z# t. K; R5 W% a$ @0 ]/ \- ]8 { #include "stdarg.h"2 E9 ~/ q( R G+ k #define MAXPTS 15/ G4 q) p3 a5 z- z4 M0 \/ m8 t! S+ @ #define PI 3.1415926 8 k6 G2 }4 ^' x/ Hstruct PTS { ' S; U4 Z$ H8 g& x4 Xint x,y; + [- z: _- F* a: Y3 r0 E};/ ^" r( y$ T2 h! v% a/ [: u double AspectRatio=0.85; / k) p. D' W; \' m: @7 n1 Vvoid LineToDemo(void)! x) L) Z( ]6 J2 ~# F9 _) k {5 h/ a; |! J' g4 d struct viewporttype vp; & S- p9 f6 i# r$ gstruct PTS points[MAXPTS]; * s" p9 k8 }, P' \+ m* Q6 v" wint i, j, h, w, xcenter, ycenter; + G$ h x2 u Rint radius, angle, step; . a# O6 r1 \& q% \ x" \double rads;4 P8 K/ L0 Z+ n% M printf(" MoveTo / LineTo Demonstration" );* f! Y2 [- d6 [" w" B getviewsettings( &vp );7 O1 b: o7 \5 _, ^/ K) M h = vp.bottom - vp.top; / [% j) c) X+ C0 e6 Fw = vp.right - vp.left; 7 { g' G" I- A; @+ q3 u7 Nxcenter = w / 2; /* Determine the center of circle */) _8 L1 f) ^& q% w" v4 \ ycenter = h / 2;: u( k: n" E d9 I, {! x radius = (h - 30) / (AspectRatio * 2);% G7 e% W" {3 P0 f% T& G step = 360 / MAXPTS; /* Determine # of increments */$ `3 ]7 k: k) t2 o! H2 {' O angle = 0; /* Begin at zero degrees */ ' j* L) u' F, ?1 P* }* w5 Ufor( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */0 v& L5 \3 q" `2 g7 N C rads = (double)angle * PI / 180.0; /* Convert angle to radians */" B% K$ |' y6 X4 c) v points.x = xcenter + (int)( cos(rads) * radius ); , O0 u1 ^2 Y/ p% z* f' M* wpoints.y = ycenter - (int)( sin(rads) * radius * AspectRatio );- Q! V; C3 S, P5 v4 ? angle += step; /* Move to next increment */ - h/ p# | P% i: ^; B" `} ( w+ {' b: T3 x2 U" Vcircle( xcenter, ycenter, radius ); /* Draw bounding circle */ $ s2 }6 G' O9 O- s' Y9 ?7 `for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */ # b; Z4 N8 B& Cfor( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */ ; a( L* f1 P+ U" i, i1 @! K2 zmoveto(points.x, points.y); /* Move to beginning of cord */8 S: T: T& `# P' O& K- O" [ lineto(points[j].x, points[j].y); /* Draw the cord */3 M7 T2 b6 D# l9 ~- [$ H } } } 1 C$ N# v3 s* {% `0 umain() % w" |+ B' \4 Y/ W9 d. Y{int driver,mode;& j8 ?$ J9 b) I# K3 m9 P0 i driver=CGA;mode=CGAC0;5 l! H& \# ?7 Y- B initgraph(&driver,&mode,"");3 E5 I& n' Q, e; G setcolor(3); ! E; y; Q" S' ^setbkcolor(GREEN);% y2 |2 {! ]" u" u2 z* G" @# J LineToDemo();}: O& w6 ^' T' X ==============================================================2 P3 v) U0 K; V+ x- Z 【程序66】 4 w! P2 ?$ ~2 x: c' n: g题目:输入3个数a,b,c,按大小顺序输出。    + M5 _" |8 X3 G/ c1.程序分析:利用指针方法。 ! \* }$ y) ] v) w2.程序源代码: - k+ `7 s7 K' @/*pointer*/ $ X+ [- }+ T) w6 {4 M4 f, Ymain() . h, X+ n. x% p6 J, l& O( D8 `' o{ . _7 R5 _# \% g6 X/ V3 Q3 o9 G: Iint n1,n2,n3; 3 V! L4 n& J$ P3 [: ^, oint *pointer1,*pointer2,*pointer3; + \4 v r0 ]5 A/ G$ P7 Bprintf("please input 3 number:n1,n2,n3:");. T9 G$ I* }% n' v5 J0 ` scanf("%d,%d,%d",&n1,&n2,&n3);- \3 l$ w8 |2 L6 _* t$ c, v! |" t pointer1=&n1; 1 |4 e. A6 N+ m8 mpointer2=&n2;% D; j# a& }: W" `2 v+ V+ p pointer3=&n3; & q; n. ?& n1 j3 Uif(n1>n2) swap(pointer1,pointer2); 1 k+ T# q+ N$ b# W& F6 k. cif(n1>n3) swap(pointer1,pointer3); 8 g% X8 c; ^ c$ `+ zif(n2>n3) swap(pointer2,pointer3); D- S% H J% ^1 [. z printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);. _. R m# i( j: C m! T" x, a0 n }# r2 h/ q# a9 b8 T swap(p1,p2), {7 J; x$ t2 [- ] v' S) } int *p1,*p2; h$ A4 k8 Z! H9 T& ~ G {int p; 0 f5 b3 J& m( T4 qp=*p1;*p1=*p2;*p2=p;& v3 \* c' ~/ X$ _5 u }/ j) s6 r' @' d7 Q& P4 q ============================================================== 8 o9 p, I( S- l* W7 u8 Q( U- _3 v; @0 @【程序67】 / a$ Y2 b1 e! V% L, s/ Z7 l题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 2 D( D# V2 G) E( u. F1.程序分析:谭浩强的书中答案有问题。      ; j9 v' r' [# d/ j5 G/ | 2.程序源代码:, g: P5 W# `0 d main() - a0 k4 g+ L3 Q" t8 P{ t7 z, ?+ b* q. J/ ] int number[10];* a# ^- u+ l: Z input(number); ! P! U' O4 X& k3 a- c5 gmax_min(number); $ i( d* q. C9 q% j/ s% R2 r6 Qoutput(number); ; l( ?6 k, Y2 S$ O" m$ V: b# H( e} . N2 Y( h( N$ u/ }( jinput(number) " _: L) D; l9 l9 P4 M/ v( [int number[10]; & M( }7 P/ C+ C2 G# A+ M) {+ m7 M7 Y{int i; ' j, h' N8 h1 b4 ]for(i=0;i<9;i++). ? \8 f9 a, v3 R) ~& C/ K& Q  scanf("%d,",&number);; N" j! ~1 X2 K$ Y; u3 R  scanf("%d",&number[9]);3 O- E q$ S, J; @1 h) y0 H: N }! L9 _ S# p7 J t4 G2 ] max_min(array) ' c# m) ?. B- Bint array[10]; % i3 w7 h2 h( f9 c1 \0 X* o{int *max,*min,k,l; 3 f; F% {3 j3 S$ u0 g2 ?int *p,*arr_end;4 _4 ^3 L# G/ e5 Y3 o arr_end=array+10; & T' _6 b6 n% m0 dmax=min=array;! d. D; U5 _, {# G' w for(p=array+1;p<arr_end;p++)1 Q' t( z* r. Q; N3 i A% q  if(*p>*max) max=p;' P; u+ _0 Z9 W' e9 M' |+ e5 d  else if(*p<*min) min=p; & s3 e. F/ Y! Z7 ^8 C1 g+ t" a' W k=*max; 8 A0 b6 H) h( k$ F0 }8 H l=*min;9 B2 X: B$ x4 K% @1 R; r  *p=array[0];array[0]=l;l=*p; & f* G' V7 P; S, ^ *p=array[9];array[9]=k;k=*p; - @# x$ v8 L+ `) Q3 |0 \ return;6 A7 y- N5 N y/ Q7 Y } 8 R/ m3 _/ `" ^. d( q. S& g1 U6 aoutput(array) % G+ Q# L6 l, `' D3 Jint array[10]; 6 I% p5 E8 q; _{ int *p; . a0 y: t& m4 Y, E- t; A+ F- ]for(p=array;p<array+9;p++) - Q5 ]. L# }1 R printf("%d,",*p); ! L8 W# X2 C. R# L! \9 yprintf("%d\n",array[9]);# `8 p% w& |4 n5 p2 U }& c$ f- p2 l% w- Q u! W ==============================================================6 i7 Y1 M% _: f8 M7 S 【程序68】. O+ K! [, @! `. F" ?( K! ]/ v 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 4 y- b0 `+ D9 ?# I, d: L1.程序分析: 6 n# \" x# N/ e7 Z2 Y5 y; ~2.程序源代码: 6 G+ X% m: e$ s8 @2 cmain()7 T, K' u' M c$ J( X# L y7 x) Y* Z { $ k1 E3 ?/ U( j4 v8 ]0 C( l0 Nint number[20],n,m,i; ; A# ?! y) i6 J& Y9 J2 y# v% Jprintf("the total numbers is:"); 2 e# G% @& M" kscanf("%d",&n); 8 Q" H. G( K* o4 g1 m& f6 Yprintf("back m:");# f& V9 K) l- W scanf("%d",&m);0 ^: R h7 ] E7 k/ F for(i=0;i<n-1;i++) 3 B) |8 C! o$ N- g scanf("%d,",&number);7 C, q6 Q0 }% q( L( w# ?1 }# U scanf("%d",&number[n-1]);, z. [9 k) m' i move(number,n,m); & P/ L* Q8 B. q3 I0 Wfor(i=0;i<n-1;i++)* X$ y5 z, r$ E9 T! U& x( ^- {  printf("%d,",number); ) P& U/ B4 c- I8 }) rprintf("%d",number[n-1]); - H2 A1 g7 Y' l/ L3 r}) o: |2 B) n0 V& \/ j4 Y; y move(array,n,m) " S+ A7 u2 i2 ]( I1 I8 U0 ^, pint n,m,array[20];$ p& \0 y# s, M7 L- b- c* T4 R' ~8 O {- a5 p1 S8 w. n, Z# F6 d* I5 `$ c int *p,array_end; 9 q. s$ G `9 i0 G7 Zarray_end=*(array+n-1);, \ ?% n4 V7 w I; G6 H for(p=array+n-1;p>array;p--) 1 z0 x$ R5 |- {. ? *p=*(p-1); ( C5 r; Z) Y+ E, A *array=array_end; - d$ b4 O: @9 G/ ]3 |( r( W m--;, w' S: ^5 g5 d2 ]* F* Z  if(m>0) move(array,n,m);0 k. {1 z2 o7 w: y( A } ' X7 Q8 A: h- p% Q% V- p7 x' A============================================================== 6 \' {5 g! \& ?& M6 A9 {【程序69】 1 l0 U1 Y; [1 r2 n+ r5 h" [/ ~) _题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 % V: Y Q+ Y$ [! C   圈子,问最后留下的是原来第几号的那位。- T) F% P, x+ ]9 R 1. 程序分析: # s. s8 I: `2 k5 N" H7 Z {- {2.程序源代码: / {6 O, r/ l$ q+ I5 J% w#define nmax 50& C, W$ }3 r; X" S main() 0 z N4 F: j( Z( f9 b9 M{9 q0 l% ^, ?2 r$ [7 V& V y int i,k,m,n,num[nmax],*p;( X3 M1 I: r+ F printf("please input the total of numbers:");2 ~7 ]# T4 a/ a9 U scanf("%d",&n);$ e C) _7 f0 \4 |# a p=num;6 H/ X/ l4 n* Y for(i=0;i<n;i++) # l; h5 u1 |, v+ k *(p+i)=i+1; }6 R* a3 d* I& b) p" j  i=0; 7 W7 }4 e& q& @" p' u x. ^ k=0; 8 H$ L. D, Y! p m=0; . c, x5 s) a' }9 E# J8 H/ Q/ Y7 ^ while(m<n-1)1 Y3 Q" M$ Y' c+ @8 o3 ]; Y# ]  { ! V. F) L# x* C) c! p if(*(p+i)!=0) k++;5 W/ {7 B, F) Q! q/ P  if(k==3) 5 u9 L+ ?9 y" P: {0 F7 R { *(p+i)=0;/ O9 Q: M1 `+ z' Y2 m4 S3 z% w  k=0;, R2 r5 T! O* K* Y1 D3 P  m++;' J* b2 \8 `. j4 A& V  }0 g8 _% W0 j1 r2 u i++; $ q- P7 ?. d9 f0 B& c2 ~% \& E; qif(i==n) i=0; 8 \ T9 I, V3 n& e6 \}0 o& v' p6 D; R5 |! u& P while(*p==0) p++;3 v; I9 C5 i% k# S& l) ] printf("%d is left\n",*p); ' d: f$ q' Z4 O6 d( `4 s( S: R} - C8 o" l' [/ S. m K1 x% \============================================================== y- r# G/ n; |% B6 ?' R 【程序70】 ' N, U9 H' m* ^4 D' q' L$ ]) u题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。    3 s+ g: W7 h" c: t1 ?- R! Z! g1.程序分析: # K. U! O/ B5 @9 c8 g2.程序源代码:- `- G0 V0 U: ?5 @ L. O main()1 M$ Z! R- v. `9 Z8 G2 Z {6 y9 M$ Z: h1 K" ^ int len; & {* e+ N! ]1 |9 K! C1 F9 }char *str[20];: Z# z7 x, @+ I& i: k: Q5 Z printf("please input a string:\n"); ; p$ d2 C$ o& }( x5 u, ^) [0 [scanf("%s",str);: J" o, i F9 \" ^/ X4 F$ H len=length(str);' K& U w8 ^# E3 K" L printf("the string has %d characters.",len);, z5 t* M: ~% x) H2 Y! k( I/ D } ! O6 ^ s, R0 i* V# Slength(p) 5 v G) R+ E) U; E+ h, X. O% `char *p; ( |' |. ?# D1 h: ~4 s{ & }. i' U& D1 S) `int n; - _( R2 I4 W" v) Qn=0;: H$ j& p8 O( b) V4 Y while(*p!='\0')& Q; |4 N, i, Z0 F4 h! B {3 ]0 E( p$ F% U. h$ \0 O5 v0 V: |2 d  n++;- N9 M2 d+ G, K% l, r  p++;# Z2 z3 p5 ?7 `8 f) O0 b }1 e/ Q9 y% ^8 x9 m* F return n;- |/ o9 j% k! w# |9 W3 j5 ? }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序51】 # d- X3 \! m- f( g题目:学习使用按位与 & 。    i7 x5 d/ X3 n4 d4 n+ \1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 9 T$ U, Y7 J/ v- ?4 c2.程序源代码:. q3 G0 d0 m& f1 A' y" P5 ~ #include "stdio.h": f5 T: j9 \/ A main()1 n% q! q3 A& Z) J* G( `6 s { . E; K$ o l" C; r/ s4 {int a,b;' `5 E! L# F1 E8 O0 u a=077; ) I5 t' Z0 l P& }( L1 cb=a&3; ; V* A7 f0 c; X" a4 a1 R/ [9 B+ lprintf("\40: The a & b(decimal) is %d \n",b);9 x" y! l) B8 v3 h b&=7; : q6 j8 a+ W3 N) Lprintf("\40: The a & b(decimal) is %d \n",b); + T* h- d4 C- L}: D _; ?. q I2 a D5 p ]1 y6 N! O ==============================================================; D$ f: @ \! y0 z: T. R 【程序52】 % L% N8 w1 I: B4 { U# ^( V* [题目:学习使用按位或 | 。 k, i& _$ L' x* m; ? 1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1             : m' `! R) [' a2.程序源代码: : z( ]$ P1 ^2 c0 G) R#include "stdio.h"* K5 N* a1 s o* m% U main() : }8 K9 U4 v4 y$ r{0 B( _+ \4 t$ V+ a* k int a,b; * a3 |& S' h3 Na=077; " {! u( \% H2 `, i& eb=a|3;, u* R b/ a7 z* D' r printf("\40: The a & b(decimal) is %d \n",b); 6 y3 w: N1 q& k4 c4 A8 Vb|=7;2 `, Z% s# s7 N1 K; v printf("\40: The a & b(decimal) is %d \n",b);# L2 w ?! [# |: i4 e* d: P. m } . Y! _. G1 x5 x* ], l& P============================================================== G& r5 X6 W; x4 |. K& l9 |【程序53】, {. \$ H$ D2 n+ e z 题目:学习使用按位异或 ^ 。    7 b. `& u2 i8 k* E0 w1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 9 W/ T' c3 N* x, G( ~( k& d2.程序源代码: . V5 I$ a/ `/ A5 W* g, f+ n#include "stdio.h" ( S& C$ |0 p% P5 X' G. e7 Omain()0 ]5 T- W7 ` `( K% q& _0 z {- I: h' M8 k2 E int a,b;# b' x6 N' N" ~. ]0 ^ a=077; ! {, b4 k% X, M; I8 \5 i) |3 wb=a^3; ( O4 }. n7 Y0 l6 h- A/ bprintf("\40: The a & b(decimal) is %d \n",b);+ n/ H8 V: \' Y5 T b^=7;! P: S/ z7 a4 e b% A* d printf("\40: The a & b(decimal) is %d \n",b);( n& p# S( m' `0 D! o } " E7 N% P3 i w2 r============================================================== ^* L( @- w. [; P$ b o) Z 【程序54】/ K( f$ k: n" E 题目:取一个整数a从右端开始的4~7位。 $ b9 r& p$ m+ F0 {) E! C" X程序分析:可以这样考虑: 1 F* n* v! O8 S- x# F& V(1)先使a右移4位。 / n7 W6 K. ?/ z(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) 6 s0 Q7 A h9 \ \% x0 Y( }(3)将上面二者进行&运算。 . o) x% a' |( m$ [1 d2.程序源代码: ; q0 ?4 p' P4 Z, Bmain() % ] `% |% y- @$ J( y# J8 u{. P' g' t3 T8 B( x; X4 x unsigned a,b,c,d; " M1 \# h d0 ?scanf("%o",&a);# o* y u7 u$ v b=a>>4; " w6 F) e9 F1 C% f+ B Ac=~(~0<<4);" G# }. J( r7 a0 _0 I& m d=b&c;* B" @. K" U2 R, M& Q6 H printf("%o\n%o\n",a,d); 0 Z4 O" L3 |, E/ G6 l6 i! Y} . \- _" f- u& i" P( d5 g==============================================================& H# |: t+ G2 J# P 【程序55】. r j5 E0 O& w4 G 题目:学习使用按位取反~。    : w& b8 [. _, m1.程序分析:~0=1; ~1=0; , Y0 I- z" j A9 S8 t2.程序源代码:% |# R' z' B7 h7 x3 _) Y, F #include "stdio.h"* ~' ~ M! c$ _* M main() 3 L# M( \$ F, h9 ~& Z. k# E{ $ U# Y1 l% M0 V! M) ~0 G- H G% z5 Mint a,b;7 ]# | z7 \0 s( f9 E9 }/ Q a=234;# Y2 q4 h) I2 w6 ^2 y: F b=~a; 8 S+ q% x8 G% Tprintf("\40: The a's 1 complement(decimal) is %d \n",b); 7 W5 O+ g8 v! }* T3 `" }! j/ I# ua=~a; 4 i' d" B2 X) N4 `printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);/ L" [9 |% q$ x& }$ ?$ i0 w } J3 `0 p2 z! i* a ], C' T============================================================== 0 y6 a3 s& u( x2 u2 V- A0 r O【程序56】 8 v3 _ X& [8 c题目:画图,学用circle画圆形。    & E2 |: k8 _8 N1.程序分析:/ p+ [1 L. }6 {5 F, b8 X 2.程序源代码: 1 b; l0 f& Z$ `* ~& C/*circle*/ N+ @& r% u1 ~/ y A #include "graphics.h" Q+ s" L4 q! Y+ a' Q2 q4 j4 R$ B main()$ V, _8 ^1 x6 {4 m7 c W {int driver,mode,i; / j0 q r% h0 r8 B; p/ Pfloat j=1,k=1; ) w* P8 `* N- _. I. u& }driver=VGA;mode=VGAHI;* [: z" q4 \( y, r7 h initgraph(&driver,&mode,""); : p" o* J+ o; |9 v2 S8 gsetbkcolor(YELLOW); $ M! r" d0 ?8 g8 dfor(i=0;i<=25;i++) 7 S7 r" ^+ n+ K4 p- e) g* L* {{ / M& h) }6 m3 z2 Asetcolor(8); % D D( l, D/ B) u' k$ V$ ncircle(310,250,k); + K/ M. g6 M* z2 hk=k+j;# H2 Z1 N# a3 l# w/ h9 K3 p j=j+0.3;+ K' t/ G% m; S2 ]' H( |( Q }9 Y/ T" R: k ~5 ?; V+ f } ! u8 E) r Z" o/ `" B f- Q- f ==============================================================" c* T' K4 Q3 A# _5 S5 ~ 【程序57】- l; k4 G, ]( f# S6 d 题目:画图,学用line画直线。 . @+ Y9 m9 u& }9 j1.程序分析:            7 U- g1 T8 ?9 a* Q2.程序源代码:3 y# b# k% [- v5 q0 K x: p* c #include "graphics.h" 1 R( f# |' S$ s9 Smain()7 j9 x7 t' \9 X$ ? {int driver,mode,i; " C1 o" V/ K! w$ Y# \float x0,y0,y1,x1; % k! ~2 t- z0 v0 \7 ^float j=12,k; , O; e' O0 @3 y6 R# S3 b% W1 Wdriver=VGA;mode=VGAHI; : {8 Y& y& d; H8 Q4 V: J* y+ zinitgraph(&driver,&mode,""); 7 r9 g7 F' W9 D5 Y( T5 I7 hsetbkcolor(GREEN); * T! I& I+ ?4 ^: Qx0=263;y0=263;y1=275;x1=275;- u7 |+ ?( a, T3 Z' Q7 v% s4 P for(i=0;i<=18;i++)1 a; ?# [% y- [5 H {% c' e. i3 v1 y setcolor(5);5 W3 p$ P% R$ c1 O- d/ s; d line(x0,y0,x0,y1);$ R/ W# `3 b' _& m* w! ^; V x0=x0-5;$ k' h% |+ R2 c2 C% h9 D$ L& V y0=y0-5; 4 O# F. N9 S$ n0 V6 w3 Q4 gx1=x1+5;" y8 S: [ f6 Y$ x! s y1=y1+5;' |) R% `8 l' P% j0 O3 i9 p2 |) b5 Z j=j+10; ; I, i9 d7 g' N4 z}9 S1 K# r$ l0 h% n! i x0=263;y1=275;y0=263;( H' n( U }5 D \ for(i=0;i<=20;i++) # h: a# T' ]* t% w9 y{5 v/ G7 O0 [% t" ?1 z) Y setcolor(5); . a# Q: ?: W; X6 sline(x0,y0,x0,y1);9 m! L8 M. S3 R R6 N0 ^1 W7 m7 l3 N x0=x0+5; 0 A7 j! H1 `' M' a A0 uy0=y0+5; G! M d# y8 `8 xy1=y1-5; ; S& k+ V$ O+ C3 z4 q5 k9 Z1 w x} . L+ C) K2 |5 }0 r A) l! M}9 [% b* g6 ~' y# y0 L) i/ a8 E ============================================================== ! a! M) e q$ _1 |【程序58】" u2 `1 X1 X: S3 |4 |$ H 题目:画图,学用rectangle画方形。    + L# A3 d. U7 |. r g/ p' i1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ( l0 |# ^2 L* W# ?' z2.程序源代码: 7 \, r! ~/ P2 h* N! M' z5 [4 j+ R#include "graphics.h" , s$ C E0 I6 X w' |9 _" t u# O! e$ Kmain(). d/ ]5 [( W0 W+ Z7 D G {int x0,y0,y1,x1,driver,mode,i; 2 [9 U* i7 D. ^$ ydriver=VGA;mode=VGAHI;( ], g3 M7 W; b4 _ initgraph(&driver,&mode,""); 9 P/ Z! F- H+ o! Y: M' esetbkcolor(YELLOW); " b+ Z. b2 g4 @! k, k$ ux0=263;y0=263;y1=275;x1=275;( k& f# H) N# e* w6 s for(i=0;i<=18;i++)+ H# g3 z. E2 ^# k* A" W& i {* m0 r' S9 z; k, C setcolor(1); . {0 Q3 s$ j. F* erectangle(x0,y0,x1,y1);& Y/ O# [) C5 x2 N! E+ B x0=x0-5;5 b9 Y! D3 W8 ^) I7 j+ b1 d1 ?# o y0=y0-5; ; ?+ Y$ V0 B( e+ y" ~. fx1=x1+5; ( ~, b( w+ Z7 C$ q7 ky1=y1+5; 6 l2 J! d5 f# B% K7 h+ [+ h} S! l9 b& A: z3 i* c settextstyle(DEFAULT_FONT,HORIZ_DIR,2); 1 Z; [# V( T- {2 @outtextxy(150,40,"How beautiful it is!");: |/ n9 j% h/ i line(130,60,480,60); & y7 E: h: o: Bsetcolor(2); 1 Y6 h+ _/ p1 A2 \9 ^$ tcircle(269,269,137); # N) X( o7 t6 m& u/ L5 S} , y- g1 }$ \8 ~% C& _3 x9 Z==============================================================; d6 Z* y+ {& U) O 【程序59】9 _+ f& `9 I* q D9 r 题目:画图,综合例子。$ m! ? a: x, M9 I0 B2 R i1 r' y 1.程序分析:1 T/ h, o. N5 U: [& Z 2.程序源代码: # T8 x. Z& i) Q* P# define PAI 3.1415926' b1 Q) o% S$ `" ?, M4 @# S, u% @ # define B 0.809! l) N3 a/ C. `; ?$ |3 K& j" I$ d # include "graphics.h" ; b! p/ X( q% j4 x#include "math.h"; I$ I. o, |/ K main() 5 Y- B0 `- M6 v. j( G; {' z! \{: W% s G; _# K int i,j,k,x0,y0,x,y,driver,mode;& q1 k' W# n4 W- |9 y9 O7 S: [ float a; $ r) N% Y0 Y' C5 C' d5 i5 Z' s/ mdriver=CGA;mode=CGAC0; - C! Y9 F7 H( B3 |4 ?initgraph(&driver,&mode,"");6 C4 ], Z! \5 O setcolor(3);1 L* p# c. p+ r) C* v& T setbkcolor(GREEN); $ L$ a0 S0 r+ e0 ]x0=150;y0=100;. j$ ~4 { L/ b u circle(x0,y0,10); ) A7 R. Q$ E# t: fcircle(x0,y0,20); 0 W5 u4 D! ^/ B8 n4 qcircle(x0,y0,50); a9 u: O: p6 z" w/ c( Q" @for(i=0;i<16;i++) 7 O# h1 n) m" O8 Q% B{ * U5 D- v0 z2 [: d6 w# X0 b6 T a=(2*PAI/16)*i;( `8 {, ?6 o5 G  x=ceil(x0+48*cos(a));1 q3 n" i5 G# a! U( D( R# `* s  y=ceil(y0+48*sin(a)*B);# S9 q' F2 O. O R% x$ v; |+ f9 l  setcolor(2); line(x0,y0,x,y);}6 `$ y% O/ y& i* b4 h5 g setcolor(3);circle(x0,y0,60);1 `- O' E+ z. } /* Make 0 time normal size letters */ J9 t- B6 b* g' s1 K5 \ settextstyle(DEFAULT_FONT,HORIZ_DIR,0);; H3 z$ @/ l# j: h$ O( Q outtextxy(10,170,"press a key"); : U8 A; T5 {1 ~6 Q1 Rgetch(); # W& k1 X% P5 gsetfillstyle(HATCH_FILL,YELLOW);/ l& c5 r# X7 l floodfill(202,100,WHITE); ' u$ A/ S# G. L0 K3 |getch();# N7 Y6 I4 M" Y: E3 L A for(k=0;k<=500;k++)9 V0 Z1 h5 F: E4 n4 i {2 V* [. ?1 L9 v9 D  setcolor(3); ! e9 y8 g9 H4 L: J for(i=0;i<=16;i++)& ` c" n$ f7 V6 F5 w  {: O9 c) [% f) o   a=(2*PAI/16)*i+(2*PAI/180)*k; - X/ {4 u# C/ K& g0 n! X, j8 T  x=ceil(x0+48*cos(a));9 I7 M8 M O. [! D9 |6 q   y=ceil(y0+48+sin(a)*B);4 i) s Z. u$ t+ v/ }9 Q0 r   setcolor(2); line(x0,y0,x,y); : L4 E" O V i5 v& X+ [8 _ } ) _+ u1 N# M6 P7 {' l- t8 U$ ] for(j=1;j<=50;j++) : H$ k6 Y, ]$ Z3 Q7 K* T( R { $ l- c6 A0 y3 g, u8 K  a=(2*PAI/16)*i+(2*PAI/180)*k-1;/ Q: t7 x8 {( a: J0 L- f" P) {. I! a   x=ceil(x0+48*cos(a));( B* G7 P# X' E   y=ceil(y0+48*sin(a)*B);+ p: P! _* t* z4 `/ m9 \6 N   line(x0,y0,x,y);) o: [( x5 c$ ?1 m6 K7 _9 ]  } F& B4 m) d1 D7 `} : A+ d) r0 {* S6 ?+ T; ]# A' \restorecrtmode(); 2 Y. e2 X6 j+ e& \. \2 ?} & q" E& g; d, x# e. C( X3 ?% q! Y============================================================== 5 N, N, c! D7 F$ w3 m+ x【程序60】 / R# h7 ^) D/ O% l: }题目:画图,综合例子。    $ i+ r8 I: i8 C7 ~. w1.程序分析:* p( c$ }# G8 k$ _) t" a) @ 2.程序源代码: 4 N. p( K; M& Q* g#include "graphics.h"7 ^) O5 t# l) C #define LEFT 03 G2 g5 F9 _3 c6 }9 {: x4 s+ e #define TOP 0 4 L9 P% [! i5 |2 _4 D; Y#define RIGHT 639 0 n; w- a. c# g2 C#define BOTTOM 4796 \8 c4 m; u; C7 g6 j #define LINES 400 9 I! W7 t3 y9 B+ K0 X: z#define MAXCOLOR 15 5 x5 @+ k- M0 M: i& d4 h8 W$ Mmain() 9 J4 P/ x! V& J/ N3 B{ ) O+ z! K( T, Q- F7 P% C6 c% `int driver,mode,error;3 W g0 ~8 N* l" V int x1,y1; % v& y& p8 U% b( j! b1 U( Kint x2,y2; 8 {$ B3 v+ m5 |* R5 Q8 b* f" oint dx1,dy1,dx2,dy2,i=1; 0 \: h/ N) l1 Tint count=0; 1 Q7 }6 a' E. B; Dint color=0; " P& R( s: p2 C3 S5 D- B5 Rdriver=VGA; ( W/ [5 ?. K" s% _mode=VGAHI;9 m: K# M8 [: |+ u6 @1 A8 C/ H initgraph(&driver,&mode,"");- j, K" @% Y: m" @ x1=x2=y1=y2=10;0 @4 @9 C- N3 M( k dx1=dy1=2;' m. i% M8 k5 {; z: M" r dx2=dy2=3;' e" u' q# R2 o, a while(!kbhit())( U8 D/ Y" B: T {* o) l/ |: M& ^4 L  line(x1,y1,x2,y2); % p J4 y2 v# q: i x1+=dx1;y1+=dy1;2 F) a1 b: |3 `+ e* [7 p+ z, v  x2+=dx2;y2+dy2;& D4 W' y! r, H5 C2 o  if(x1<=LEFT||x1>=RIGHT) 9 ?9 f. r% D; u3 _ dx1=-dx1; ~- F2 ?$ f% |2 N if(y1<=TOP||y1>=BOTTOM)# d* T5 {5 |8 {7 }5 b5 [   dy1=-dy1;' r! c: P! _4 f* X0 u  if(x2<=LEFT||x2>=RIGHT): b& u B' b% A W/ A% S+ z7 Y   dx2=-dx2;: g% C3 B9 \/ L1 [8 }  if(y2<=TOP||y2>=BOTTOM) & Q% G3 E2 J9 ?8 h( h2 Q  dy2=-dy2;7 ^6 }! ^- Y% i- C  if(++count>LINES) , Y& i$ F% x" L2 r$ p* @: I' A {4 g1 o+ `4 t4 U3 D. j   setcolor(color); ; s. t& s r8 U  color=(color>=MAXCOLOR)?0:++color; , _# g6 S& |6 [8 w* J } 9 q+ { e: v" E5 `; ^& }}% r! H8 g( U( N; I: X closegraph(); . K$ w( o" I" G( d5 w! ~" y5 L}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序1】: r% i9 J! R) _) L9 k' s 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? ' C( P2 `) o+ {7 `3 S& j: s1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 & h( [7 C% ?2 H& i      掉不满足条件的排列。 4 q: A% s3 |, M c6 H0 ?2.程序源代码: / |/ c4 ?1 }' v# c7 Z: q/ xmain() ( b" q% V& S N! e4 P7 y{ ; V" }9 Z+ n3 ~: B$ P) E* uint i,j,k;3 C2 g7 m% B' q+ B- V printf("\n"); ; Z( r' u/ J% C$ R1 _' Q5 Yfor(i=1;i<5;i++)    /*以下为三重循环*/5 g1 T6 y+ l W( n: b9 Y  for(j=1;j<5;j++) + {* q/ X# V9 u4 p. T+ B" I) s   for (k=1;k<5;k++)' N! L% L0 o. v# \! Z' V    { 3 z9 d- l6 F3 X7 W& j6 S/ D    if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/( G9 a; U/ R# j% l% l* ^     printf("%d,%d,%d\n",i,j,k); 7 K; v( G0 O5 b8 J1 H7 D( P. X   } - b- {3 {& B+ @% g$ U0 O' Q- u' e}8 W1 d7 b6 p3 o7 q. ^ ============================================================== , }4 L" K# k6 m3 {. a% A( D; o4 k【程序2】 ; @! j% t' j9 h% D8 @3 a: Y- T题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 , n& d" C% ?. M9 W# M- O   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 * n: h: `% ]; ?- _$ z) K7 S: S   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于1 P+ D( O# }! Q1 T% s    40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于( [) c! H" c( F6 Q2 k2 X    100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? ; _; }" d0 h: |8 u% I1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。       : u; A; L! z- f2.程序源代码:- G) x/ ?+ A+ d( G7 {8 H4 L main() ; |7 o' E# L/ v{ " R5 I2 I f5 Along int i;' e+ n% w: @6 h5 k/ u int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; ; x# l5 m% q7 `# sscanf("%ld",&i); ( x1 @; ]$ u; _# O# f, Ubonus1=100000*0.1;bonus2=bonus1+100000*0.75; 7 k+ S& Q. k' w0 I: dbonus4=bonus2+200000*0.5;$ e$ s3 |, L* Z* e$ g+ @ bonus6=bonus4+200000*0.3; & n% _7 U! g' ]bonus10=bonus6+400000*0.15;$ Y8 b6 O9 `% g# y  if(i<=100000) 9 d0 N2 j3 k _2 Q# S. K  bonus=i*0.1; * d1 y' \9 v" I else if(i<=200000) " b u1 O9 U" q1 P7 E% k* i     bonus=bonus1+(i-100000)*0.075; . }' I3 m; G. }& c7 [1 Z1 X/ N    else if(i<=400000) ( |( c6 ?5 q9 y# u5 [( G7 Y P        bonus=bonus2+(i-200000)*0.05; ! v( r# U* f% ^       else if(i<=600000)6 N4 e( m5 f" |$ I+ {1 K            bonus=bonus4+(i-400000)*0.03; ; j# \/ f8 J$ A+ `9 L7 {          else if(i<=1000000)3 j2 s8 _% I J# J) c3 j0 j               bonus=bonus6+(i-600000)*0.015; * b, \" I1 F7 m3 w             else/ Z: c8 f1 H" ^% L" `0 T* w               bonus=bonus10+(i-1000000)*0.01;% x) u6 J: z2 k. p5 X printf("bonus=%d",bonus);8 N/ M4 E+ C. C } # U' `* ~" S R* h0 `3 t* m9 \( b2 T3 o' m8 K ============================================================== b' m4 n4 G4 I; I9 C9 \5 J+ l 【程序3】* G% s5 U4 m- g2 d4 j% _ 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?- ~5 @/ ~8 M% z& A3 x. _ 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 - _2 ]4 p+ q+ d* X# ^# F4 Z      的结果满足如下条件,即是结果。请看具体分析:+ Y# P: P0 p4 [! C0 E* S* \4 D 2.程序源代码: ; q4 l( B' U: X( \. B, ]#include "math.h"& H$ _/ J, }1 f main() 5 O: ^. K' n/ }3 u, ^{! ]) _8 k& _" `6 R1 ?$ A long int i,x,y,z;! {) ]2 |$ X7 m8 n- h: |/ Q for (i=1;i<100000;i++)3 t& t+ ^5 A' w6 [& [  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ * n7 n A. ^1 H1 E! K  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ % v6 t- i& ?' i- i2 z7 l   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ : G g D( W7 Y) ~1 v. Q; W5 A    printf("\n%ld\n",i);$ l' D# {7 l1 q$ q8 ?  }+ _% _- U, v. p. Z* {+ e. ?: k } $ ?. Q2 H% l+ A5 l9 A==============================================================1 a5 o- u+ ?2 i* j6 M1 Y 【程序4】 - _3 a5 b+ U. L+ z: b题目:输入某年某月某日,判断这一天是这一年的第几天? ( Q, V5 m. D( k, l! j1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊) E1 v. w9 i3 V8 Z6 E6 p: v/ ?, c       情况,闰年且输入月份大于3时需考虑多加一天。# ~7 D1 A' Z6 v 2.程序源代码: ( p5 p9 L1 A" }0 o! omain() ; v' A8 w$ m/ t9 r{ % u& A8 d9 x$ uint day,month,year,sum,leap;3 _9 m3 M6 {. Z. [! ` printf("\nplease input year,month,day\n"); 9 N) `# X) n& X3 ?scanf("%d,%d,%d",&year,&month,&day);9 S; m# U; M6 y3 U switch(month)/*先计算某月以前月份的总天数*/ + `, R1 p# k/ \& |7 @% m( B{ 5 I( f$ F* [2 {2 d& R' r# U3 ]7 x, V2 A case 1:sum=0;break;( B0 @* _; D2 x* a% ?. H% c4 N  case 2:sum=31;break; ( r7 [3 m& e3 E3 f case 3:sum=59;break;3 Y* C7 u8 X ~6 q( q) }# D, y  case 4:sum=90;break; ; K: Q8 G+ B* k& \+ p case 5:sum=120;break;' M( q' s1 l+ u1 M) d; x8 ^  case 6:sum=151;break; " [/ J, D1 W, y! G2 w case 7:sum=181;break;! S; C7 S5 V1 P' i( l' `5 b0 T! l  case 8:sum=212;break; & a9 Y% x# c/ S3 x+ i case 9:sum=243;break; , ^# C2 H0 C4 _; o: U" D case 10:sum=273;break;7 G' c8 T4 g3 ^/ `- M- X! m  case 11:sum=304;break; # |3 ^. A1 v" \ case 12:sum=334;break;) v# _3 `0 y" w. ]  default:printf("data error");break;9 I( C1 k! c. o }& ?! v2 X; W* r9 x/ J' K3 T- r sum=sum+day;  /*再加上某天的天数*/8 G% [. U k; @+ @6 N5 O' W  if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ x3 _/ x: e) X, }5 s1 a8 B   leap=1; * V, j, a2 U! S; d8 c6 a else 1 E) l" L/ D7 @% t- V  leap=0;6 s% T5 y& H% X7 h if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/& K9 K: _' o! L9 N% ` sum++; # j3 l$ @8 K1 T7 ~printf("It is the %dth day.",sum);} , x# y, b/ I" [: N4 p- T============================================================== $ j E6 P4 B" v$ M- ^' X【程序5】 % U; q, S* z. n9 q题目:输入三个整数x,y,z,请把这三个数由小到大输出。 D: T. I" F& x! f0 Y 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,& V/ z$ G& ]5 ?) [! F2 H0 m( m       然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。2 W$ ? z4 _, P8 i8 ^ 2.程序源代码: ; G3 e7 J' J* S9 @main()2 |' @8 L1 q( W* M1 p {/ H4 m" ^- ~' h, i+ { int x,y,z,t; 6 V8 a7 e# Z7 c: b! ^scanf("%d%d%d",&x,&y,&z); 5 G5 H" }6 u9 Z* V: A4 d* lif (x>y) % L1 Y/ \7 d6 d9 \5 F) Y{t=x;x=y;y=t;} /*交换x,y的值*/" z7 [: L" w1 [+ s1 E, Z# a if(x>z) 8 r, T8 _4 L0 v" d& L& y{t=z;z=x;x=t;}/*交换x,z的值*/ 4 q( j0 J3 q- Q) Y* iif(y>z)0 n# [. L* {0 C+ k$ t$ w* `1 j {t=y;y=z;z=t;}/*交换z,y的值*/ + N& e) ]2 E. x! Hprintf("small to big: %d %d %d\n",x,y,z);7 t, i2 m. P6 N( | } , E+ i4 [! j- T$ C ^$ E% P) J==============================================================2 z, w7 [* B B3 u: L4 ]9 ^. H 【程序6】 % X4 x0 q, ?8 E/ g题目:用*号输出字母C的图案。 8 T3 r& W8 b9 c/ t1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。- o% s0 g C# Z$ E% z 2.程序源代码:& A$ Z) ]# R {. V7 o7 N #include "stdio.h"8 n8 u) Q- D5 J$ [5 U! B# A/ B" \ main() # U8 W A( m4 I7 |7 l# r{ % M% ?8 C! r: h4 y' X* gprintf("Hello C-world!\n");" x8 Q+ ^; M3 T. r V9 D1 w2 Q# \6 n printf(" ****\n");& \: w- y% {4 ~6 B# j printf(" *\n"); ) R1 T A3 L e2 w8 g( tprintf(" * \n");' b' S% i5 J, L+ K3 f printf(" ****\n");5 P- O: x4 t# N3 @& H6 z( x } ( n5 `! o: B }, v5 z4 J============================================================== 4 {1 W$ f" {. X0 b+ A【程序7】 6 l5 Q8 }& E9 x/ O: J题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! 4 ^5 j% y2 W: P$ `" g7 x1.程序分析:字符共有256个。不同字符,图形不一样。      % Q. z a* g$ r# l7 x 2.程序源代码:) e7 h; M# e; }: h! T. F #include "stdio.h" # i- x9 B1 h$ _main()% V H. \" }. ]4 i7 f; P+ }' W { * V7 R W3 M3 ?% n9 Ichar a=176,b=219; 9 L2 X3 i$ v- B7 Y2 x' g; K3 w) Eprintf("%c%c%c%c%c\n",b,a,a,a,b); , C. S/ u. x$ d9 x% Jprintf("%c%c%c%c%c\n",a,b,a,b,a);# R" q U. F% P printf("%c%c%c%c%c\n",a,a,b,a,a);- I( K( R; H. s% e7 t% L0 b printf("%c%c%c%c%c\n",a,b,a,b,a);% n$ w9 F- P6 K) i7 Z, N printf("%c%c%c%c%c\n",b,a,a,a,b);} 1 u# j/ j8 b8 V( Q, ~==============================================================" _4 U, L4 f9 K2 C 【程序8】+ P/ p6 [3 ]2 K; G" X7 K 题目:输出9*9口诀。 ! b4 f& q! y R: n1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。9 G9 p% O" Z/ p5 W 2.程序源代码:# _7 g( t. ]( S$ H6 {: s #include "stdio.h"2 m) n2 a- O) j8 w9 g% B9 e main()! ?; _! e- S o- H { / K X9 F3 z3 Q. y! f int i,j,result; $ d2 ]+ A7 \* W$ Y! A printf("\n");1 ?6 b" d, u! k5 |/ F* `  for (i=1;i<10;i++)5 w+ n g: e, j5 ]( R   { for(j=1;j<10;j++) [8 ^* u( Y4 V% O3 j    {7 Q1 e( S) E! O7 v h9 H      result=i*j; 3 a) I3 I @% w, [: t     printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ 6 G K8 d' u# {    }6 a5 j! O, A( c) Q; u& s, p" B. M    printf("\n");/*每一行后换行*/ . m+ G! Z- C5 F: F+ r. g7 ~  }( |/ C" M' @* c; o0 u& P/ I } + z" r. @1 S# w" C3 {1 S& a==============================================================8 [, Z7 }' I) U 【程序9】( E; Z. j1 c. O& k# D3 I; [ 题目:要求输出国际象棋棋盘。8 t% R- H9 v' L7 A9 {& f. C1 w 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 6 k0 H: [7 j4 {' g2.程序源代码: e2 |, t- u" j7 X4 D( U#include "stdio.h" 6 X. d% ^ ]1 M2 jmain() Q- m2 e9 e) r9 J {" l- I2 |) I: x6 E* v9 R int i,j;- `( f( }! g5 m/ J. I2 Z8 e6 f for(i=0;i<8;i++) % p2 L" W; F1 p/ y4 h T { * J2 Y2 P8 V( f0 r5 g; f7 [1 U  for(j=0;j<8;j++) 9 n- u4 {4 p0 C   if((i+j)%2==0) ; A5 N( E6 U1 g6 L" P L" f3 Y    printf("%c%c",219,219);; R/ {. x/ p' h$ Y' v    else' q- l% s3 j, e1 J     printf(" "); $ V# j# Z' k* j; X   printf("\n");7 ?7 P0 j# ?% o. d# j; p9 j% s- {  }7 B" Q y0 o- {# { }$ m. v1 D s$ `/ ? w. E ============================================================== 2 d; _9 D8 I9 \4 U 【程序10】8 A+ f0 S2 H& W+ b 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 9 \! P5 D: W0 B( u% X0 H1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 3 @2 Y9 Q! F8 R* g2.程序源代码: 6 b" r% {) q3 K- N! [#include "stdio.h" ' H/ Q* U6 y N1 @: c5 T2 xmain()# l1 Y& @) d, w! n3 E- \/ e1 o { + j# R& t8 z0 |1 v5 a$ s8 [int i,j;% H" \8 z# [" Z/ A' X printf("\1\1\n");/*输出两个笑脸*/2 j* X; v$ H' l y for(i=1;i<11;i++)# H2 Q; U3 z+ w/ F6 o! x  {' X9 v9 `2 o$ k' h( g, F/ j  for(j=1;j<=i;j++) 3 `$ U. V" n3 u" I, _   printf("%c%c",219,219);6 W, N& E; ^9 C* Z" x& s- N5 y( h  printf("\n");9 k! o, G& V8 E" F. X$ X  }+ t" U$ ~9 s- |0 W }1 B% q: Y1 I" N& G& |

+ b% y# y: u% |. H
[此贴子已经被作者于2004-10-4 2:10:53编辑过]
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-8-29 08:43 , Processed in 0.671838 second(s), 75 queries .

回顶部