QQ登录

只需要一步,快速开始

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

经典c程序100例

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

事先声明:

: ?3 ]2 S" S8 N$ b

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序81】# k/ O1 r3 Y/ W/ a 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 % H% S; o/ a* u O* ]( M ^1.程序分析: ' G6 P J* b6 ~2.程序源代码:+ t; [" F# ^1 W0 L0 m+ o- L output(long b,long i) s( D8 W4 H- E: ?{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);$ _' {& a9 L7 d: _: Y3 K& L } $ L @! E3 d' b& p! a; l- ^' x5 wmain() 0 V3 A. [1 N% f2 r% G{long int a,b,i; 5 k+ F. T1 a+ n @* z6 X7 Ba=809;- `5 E+ V4 A1 z for(i=10;i<100;i++) : ?/ Y4 @7 ~( q$ n{b=i*a+1;: t. v; J- x K6 u# \: k if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)/ `" q W& T% V. F. N) d0 u output(b,i); } + S7 G- [9 O' o: W. U" w, K+ I" Y2 u} 6 z7 t9 D# N/ d==============================================================3 D7 N) J6 D- @% H; X! B: k: _ 【程序82】3 _3 y7 K6 m | 题目:八进制转换为十进制# \! l" |" `! w( i% G" J/ ] 1.程序分析:            1 X: ~) F6 M& |2.程序源代码: @7 {1 G8 v. {) j' gmain()1 K# V* q& i! z, I( @; A7 c { char *p,s[6];int n; - R# y0 F6 x) }1 c5 W9 n9 `p=s; 7 K' F+ C% d2 |) d/ j/ i1 H3 n) xgets(p); ' C8 J( R* I, [# Y# ^n=0;- t, ?# t6 s8 o! L3 @ while(*(p)!='\0') ; E$ d9 ]! n- {{n=n*8+*p-'0';1 {" i' w* ?! z p++;}- u1 n* ^* u) I2 b3 y printf("%d",n);% V3 A( E* D' P } ! s9 a5 T6 T1 t- C' l( ?$ @==============================================================8 Z. {& \$ @5 j" Q. ?. T" T 【程序83】 5 S6 W( D' k" n% ]' J5 \; d题目:求0—7所能组成的奇数个数。 ( @. h- `! J, m7 \. t1.程序分析:( L& u# ^: @4 I/ z T5 o 2.程序源代码:- X' ]& Z( Y8 J main()/ D5 w' m' t* o) \1 B { , T" O2 E0 k- t7 J. g a6 jlong sum=4,s=4; ! k% [! g1 b4 M( d- ^# h' Sint j; 9 E* d. R: y$ j0 Vfor(j=2;j<=8;j++)/*j is place of number*/ 3 ` v. b) U+ G: a{ printf("\n%ld",sum);6 }7 w+ J& D7 h. a( R if(j<=2) # x L5 O0 d! T4 Y9 A. gs*=7;) H* v1 J% _0 x+ E else3 O5 E/ \4 @7 ?8 x4 O4 J! c s*=8; # Q5 i: a- Y. L7 Tsum+=s;} % e* L( n, ^0 z0 O1 \2 C# U2 H Vprintf("\nsum=%ld",sum); y! J# f1 b5 E} 1 N. c# @4 y7 h, p4 D==============================================================6 H* i7 n% m: y/ Y8 Z! ? 【程序84】: u# E/ Z5 ~5 ]2 Q+ k N. t 题目:一个偶数总能表示为两个素数之和。! G5 } z# P+ c- P2 z; {2 } 1.程序分析:% A2 s7 B7 w0 O 2.程序源代码: : N) w+ w1 u( E4 _8 N#include "stdio.h"1 j8 ~, ?. b" A( M! a: k #include "math.h". s/ j i9 E! B5 x9 S4 G4 } main() * k: r- Q5 M O. o* u# X0 ?5 ?% G{ int a,b,c,d; 1 a6 g, v% p) `' V* i2 j; oscanf("%d",&a); - ^3 L1 Z2 _4 ]& Jfor(b=3;b<=a/2;b+=2)$ @+ s/ _1 f0 }7 @3 Q: s6 c { for(c=2;c<=sqrt(b);c++) S0 M2 M6 P9 _1 y9 o5 Lif(b%c==0) break; - s* ~6 h- Y) a+ {if(c>sqrt(b))& M6 Y8 Y; [- S# V: q d=a-b; " u% _7 W! |; @$ B1 v+ l8 Nelse3 ~: y1 v' f8 a5 ^ break;$ {" v, a- a( z8 d$ I for(c=2;c<=sqrt(d);c++) . D/ ^5 i* {" `* `+ l- Vif(d%c==0) break;* ]5 h5 ?0 C8 y, i- Q if(c>sqrt(d)) % `2 v9 h1 O9 E& ]& C1 sprintf("%d=%d+%d\n",a,b,d);, j0 Q7 N; O% C% ] I }) X6 I+ L( D4 z" m- S8 k2 A0 j5 s: e1 f } ! o: e, Z/ z v7 m6 I! }# F2 u==============================================================* a6 u- n; L& } 【程序85】6 i# ^- A% T' w6 k 题目:判断一个素数能被几个9整除 ' X/ g, ?! }( [3 ~7 C1.程序分析: 5 J" h \' L" `2.程序源代码: $ _) {& d/ z( u- j8 i2 ]* A0 ]. rmain(). M, N9 j: h# S5 M% Y { long int m9=9,sum=9; : a$ E; C% c% a. A1 |8 w. x! gint zi,n1=1,c9=1;$ H: m; M! D1 O- I7 @) { scanf("%d",&zi);8 B- i' `5 [4 K2 H while(n1!=0)! Q; F; y, Z1 O# z8 ]# ~# V0 b { if(!(sum%zi))& E* N& g6 ~) {. }8 v( m. l; h' I1 q M n1=0; ) ?* y! T S& B m8 y$ z6 Pelse 9 D! ^6 h5 v. E% a1 Y{m9=m9*10; ' n3 S4 ?6 S; s: x5 u1 P; msum=sum+m9; * ]! n2 c0 Y' @! Y$ M, gc9++;8 i- q6 W N5 ]$ O. a" G" u } {5 l/ N+ ]5 b6 u6 U) J} 0 \% I- V- k* Q3 J; ]: r. Cprintf("%ld,can be divided by %d \"9\"",sum,c9);8 {8 g$ K/ [" B2 t3 q } " K3 V" I9 l2 H9 @============================================================== # O% L) G3 h, k8 A5 k2 E9 t【程序86】3 j% R9 V( J. ]/ L+ A4 K. f 题目:两个字符串连接程序 ' N% B" Z; R5 e$ w; p3 K0 \/ C4 X1.程序分析: 8 g& ?+ q0 |( z! B2.程序源代码: - L# W' ^; T( F# f" L5 V+ b/ I6 B9 o#include "stdio.h"& G; P0 p9 V& n2 ?* y main() * F1 d4 k& o9 ^: v9 `! c# Z{char a[]="acegikm"; 5 v" t# F' {! r$ L3 @) M% g: gchar b[]="bdfhjlnpq";3 }4 }$ s! J- V9 r/ Z0 ?! R char c[80],*p;: F# `7 B/ s7 U9 {- k4 ^( y7 Q& Q int i=0,j=0,k=0; L- q1 C0 _2 X5 D# ^ lwhile(a!='\0'&&b[j]!='\0') 9 J+ W4 y( ^) m{if (a- J/ ]" D9 ~! Z. q; M { c[k]=a;i++;} * P3 t; p e5 b0 j% R5 lelse , e2 d- I; c/ r0 v$ a, Vc[k]=b[j++];* D0 i" `3 Y% H2 Q9 Z/ W. e6 ~ k++;; n. k6 T) i' { }3 a) c1 ~* T* T4 l b: | c[k]='\0'; 4 {# E' G; i2 }. t0 j S cif(a=='\0') : y: w5 d! a1 o* ?' @" b' H/ h; a7 pp=b+j;1 ^1 O9 t/ I) w) T! z8 \ else4 |8 M9 N4 B! ]9 i! w p=a+i;$ L5 c1 r. g& j) L, f4 u0 [ strcat(c,p);0 E7 c6 O$ g8 k' ? puts(c);5 ?( G1 Z% i& n% Q" t } 0 Q- J$ u" l8 D3 z' }==============================================================% |$ g/ s& {& I' _' B; J* C 【程序87】+ s3 {6 w: i8 a 题目:回答结果(结构体变量传递)' s) K1 H, F/ x6 p! V8 E o 1.程序分析:      & y& a% B) n+ m: I$ x; m1 j2.程序源代码:9 h) N! Q( Z' E- H1 L #include "stdio.h" * o( z% P- m9 T8 ^1 w/ F& Jstruct student ' t# P* o/ T c* H. y, ~; L{ int x; {( d, W2 f1 q- {) g3 E char c; 2 g6 n5 ]" N3 Q$ ]+ p} a; # v1 b5 b; i' }* e1 Q# ?main()" I' Z2 x+ y9 E7 {8 W {a.x=3;! G# M) s' W {! c a.c='a';6 y: V9 q5 t- J f(a); ; w6 _4 `' O: s# }printf("%d,%c",a.x,a.c); 4 M o* h. g9 q" x! }& y}# j7 L4 y: M) p; k- Y f(struct student b)1 O- R9 z2 [4 E/ G {" T' K0 K) y+ u1 d b.x=20;% O7 ?6 j5 e L$ j Z8 A# @ b.c='y'; $ a0 P9 A( j( E1 e: g} 8 P m8 K' m8 B% Q3 c3 n% w==============================================================) w* \+ ^* L! y) z' a4 q" X5 |8 u/ A 【程序88】2 n8 l. _6 `& s9 t 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 , X+ H I) N: S. s c. [1.程序分析: & T/ p) L5 ?/ g3 e; S4 [ X6 q2.程序源代码:; Q3 s9 \# N* N" R4 r main() 5 x7 x+ U- D8 {* s; o' v9 y/ L; \- R{int i,a,n=1; . p* M) W! H$ h& |4 L$ h$ ]3 mwhile(n<=7) H$ Y# H! q" T( C4 ~/ y { do {) f+ u% |/ D" X8 K9 P    scanf("%d",&a);% i/ K" u$ D5 k; Q" E& ?    }while(a<1||a>50);' [2 u' s" ^: S" ` for(i=1;i<=a;i++)2 L( c! h1 l0 R3 [( M3 \, l! f  printf("*"); 3 T" _! R- X! U& a) Fprintf("\n");. Y* p# p) O" S2 j2 K n++;}& c' `& r+ S5 `0 u. v getch(); ; R) m: @0 x& c4 `. l) J4 ?}& S3 n: L+ }* [+ ^- o ============================================================== ' |7 |& p# Y& E【程序89】+ A' n+ [" x0 n( P# L 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 1 r4 E2 x4 R1 P, n* C, R+ K4 E   每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。% [0 B, q! r) F) N 1.程序分析: 1 F5 n8 I; ` O1 @2.程序源代码: ) E1 c( g1 T0 ~5 Lmain()6 ^+ i. e$ P3 |& x! o5 @* h! [ {int a,i,aa[4],t; - h6 P5 S/ A: j$ Y) Tscanf("%d",&a);8 ?/ ]3 B2 ]0 w* Q7 A- b( u5 a, a aa[0]=a%10;+ l2 l' t& B9 ] aa[1]=a%100/10;/ {) L6 u ^* p6 u, o' U aa[2]=a%1000/100;% l2 J4 t! b3 }) q3 ]' w aa[3]=a/1000; ' y+ X& [% @& ^# s: tfor(i=0;i<=3;i++) $ r5 u) ?2 F; S! t! ~ {aa+=5;2 O6 P3 s2 C) d  aa%=10;. A/ I1 z# p) B6 o) R) ]  } - F# D- _6 x2 x& ]1 jfor(i=0;i<=3/2;i++)+ g# }* R: u9 w. `  {t=aa; , |3 |" ~; N& V F9 ~; y aa=aa[3-i]; 7 t7 O. w/ J( f# N# s aa[3-i]=t;5 ~9 @& z+ ?$ H1 y. S5 a  } 0 s9 O6 u" ~& M; Yfor(i=3;i>=0;i--)# W( S3 x; l) |, b( \" x1 s- I printf("%d",aa); / i0 W2 K7 T! P}7 M! Y1 \- F- n* ~# r" o ============================================================== _9 o# H) J! ~: _. j" h 【程序90】" O. {: F3 r3 R/ \ F J5 ^ 题目:专升本一题,读结果。! K- g6 Q. E7 F+ G9 @ 1.程序分析: 7 L/ T' r% w' [6 ]2.程序源代码:& r7 R3 r6 `, _! d0 M( H. p #include "stdio.h" 0 ~7 ~$ a9 d: F. X: Z#define M 5 % T% v1 Z! o- A3 _main()% u* }7 _2 D$ g j, a$ H: g5 w' S/ [# g {int a[M]={1,2,3,4,5}; 7 z% W" k3 c3 yint i,j,t;6 a$ \9 u9 r% ~! y( v/ C. T i=0;j=M-1;% C: |- p7 Z1 e5 _/ @0 c" z while(i& b- T( N( i) p; W/ G0 i% Q2 _ Y {t=*(a+i); . s( k* g$ u2 A2 ^*(a+i)=*(a+j); : E, X: `5 ^7 T$ z0 w# A, }2 j*(a+j)=t; 0 A. C/ q$ N# m1 Ci++;j--; 0 K4 S1 @) P0 J" F+ A0 ]} ! H# z/ K# x2 P2 J# f/ I( Rfor(i=0;i$ b) R, l& Y9 D" V. X9 A printf("%d",*(a+i));0 q- ]6 ~0 l- L# Z- X }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序71】 6 H2 t+ P0 @& A* I$ @ V题目:编写input()和output()函数输入,输出5个学生的数据记录。5 E, A/ V% A1 C! Q5 @ 1.程序分析: {& m5 H0 A; \ 2.程序源代码:+ c3 D/ O9 O" _% U2 W #define N 5! O, e3 b$ ~2 T" x- ?% _2 z- g struct student$ V" C q% V3 G- [& ] { char num[6]; + i/ A6 G% u& X6 j0 _ char name[8];0 B6 L# `% A7 G8 g  int score[4]; 6 b9 Q; j9 y# G: Q- X7 d} stu[N];+ [; M! [# {& h# {# V* i; y& S6 } input(stu). b4 I* d$ ^$ h; F- E struct student stu[];6 H& W' o7 n( m. x7 H! E0 |' i { int i,j; 8 A7 q a- H' G$ Y/ _ for(i=0;i<N;i++)) o" V: E( K5 s$ _6 ~  { printf("\n please input %d of %d\n",i+1,N);5 ~$ N4 |% H3 \$ {, T/ `   printf("num: ");) w, ]! l/ h- V   scanf("%s",stu.num); 8 T, U, t/ ^5 n. d( `$ C9 m  printf("name: "); $ q/ \2 W3 A5 _4 ~1 u/ T5 m; [7 {$ B  scanf("%s",stu.name); - g$ ~, I) N" j `   for(j=0;j<3;j++)( o7 H+ Y+ v! U3 F, Y# m/ r: {    { printf("score %d.",j+1); G" V {* O) ~    scanf("%d",&stu.score[j]);% Z4 X1 f" x7 w( g    } 5 k) O# W% b8 E3 V4 s0 p! `  printf("\n");4 f: w/ P$ C8 \2 T' t0 e [  } 1 C& r+ _; J' A6 J} $ { W& @5 @% ?+ z1 xprint(stu) * z* ^3 |8 z. D* P! |% v. d( dstruct student stu[]; / i, |* ?6 r O$ B{ int i,j; . v2 I6 q9 i$ r& m* l' }) Tprintf("\nNo. Name Sco1 Sco2 Sco3\n"); , E1 _: L9 j$ E8 q- g4 w# }% Sfor(i=0;i<N;i++)3 y# O" Q" ?9 B& F { printf("%-6s%-10s",stu.num,stu.name); ) C! g& \0 z5 K6 B0 x0 c for(j=0;j<3;j++)" z/ [+ l; z0 i   printf("%-8d",stu.score[j]);0 j. P r1 A; O% }3 g' E  printf("\n"); 6 R- E& l* e( f- A. C}2 h: N8 G0 c# R% S0 y }0 C$ S+ b( S; B; e main() 4 v1 `! U& p0 `( S{ ~ K- d3 c/ N, } input(); & l) t- L4 p- k- f6 L print();& }/ N8 ?+ G/ }5 d+ ~4 g, j }, s# a" [+ {5 h! f4 X2 }2 y/ i" K ==============================================================" L2 S; E( F, o6 Z5 X 【程序72】* l1 |8 r; ` N' V- b4 C$ H 题目:创建一个链表。 9 u) h6 C5 `8 T1.程序分析:            # m0 j8 [. Y' A% z2.程序源代码: 4 o0 {- Q" z& i, ~8 v5 g/*creat a list*/ $ h$ U% _% ~! p* s#include "stdlib.h" 0 Z: T; c! N, }#include "stdio.h"$ s: p4 I, {$ A% o' D* E# _ struct list3 \+ y' ~9 s* {* n0 J2 s; s { int data;% x) n* `) [) F& Z# Z; Z struct list *next;; ?3 N8 O; M( Q( e. z6 O8 N, ^ }; * L) M& Y3 E9 T utypedef struct list node; # ~: z0 H$ |/ R% }* ltypedef node *link;4 E' ?4 X! ]& K% S: s void main() & ?( c3 n( X1 h" ~{ link ptr,head;4 A1 O9 V! _9 u int num,i;9 @" z3 n3 ^( q7 A; o! v ptr=(link)malloc(sizeof(node));& x. i: E% N6 t3 r' |( P# s ptr=head;1 K" Z: Q# M, G7 @. W+ W% M printf("please input 5 numbers==>\n");4 r1 H+ E! l# M! k$ y for(i=0;i<=4;i++)8 `% o# b- \" i7 N! h {# j7 w+ A1 l: K9 k# l) X  scanf("%d",&num); 8 u0 ?( f$ V) ?0 q$ K ptr->data=num;5 }7 Y7 o& t+ j* c# W  ptr->next=(link)malloc(sizeof(node)); : _4 x' R9 o, Q( @* B8 v if(i==4) ptr->next=NULL;4 f% j) p5 k- c$ e o  else ptr=ptr->next;& O' d6 _; a. C3 P" S. f4 L& {, { } % X3 u% d8 m4 Kptr=head; : u* o' y3 r3 W+ `while(ptr!=NULL) , [: u+ ^& q# _8 j{ printf("The value is ==>%d\n",ptr->data); R2 i2 S4 ^' Q2 i ptr=ptr->next;5 q$ G( \5 O% f }- `1 o9 ~ W" R- l7 |: N$ r! m6 _; O$ ? } # V" {. }9 P, M! y============================================================== ; {7 k7 U1 u; l0 u【程序73】 1 t: g- B) M [! A+ ^/ a! u题目:反向输出一个链表。    * h' e5 m& ~* D& b$ {% z$ }1.程序分析: : `1 C- h3 \) v B2.程序源代码: . ^% h/ J. I" a7 R3 |+ Q/*reverse output a list*/ ; K V# }! U. R- o#include "stdlib.h"& y9 y1 x$ W& A+ ? #include "stdio.h" ; I0 R$ h9 J% Z, i- gstruct list % f/ w1 s$ S3 y$ K0 P, X2 S: F{ int data;* J( A; M* {3 X  struct list *next;5 e" V; _; c4 N! R$ I; T0 B };4 r, q4 n( f+ q" Y& { typedef struct list node; 8 v1 M/ ^. `7 r+ R( {( Etypedef node *link; 2 f4 g. N t; F+ ~void main()7 U1 a _- r& P. X5 \$ X& X { link ptr,head,tail; 0 Y' y9 y. x4 {7 h, k  int num,i;$ O9 k, e0 V6 K, `- Y7 t& I  tail=(link)malloc(sizeof(node)); : l& @$ \- e% T tail->next=NULL;4 @5 m( E/ S6 }  ptr=tail; 0 v: N' ?+ i7 c0 [6 R! n, N! I printf("\nplease input 5 data==>\n");4 N+ C- H9 O. ?0 T( ]! s! r" C  for(i=0;i<=4;i++)& t# E9 {" Q& \1 G w! w2 b- y  {* Z- }$ \& d- K: g; K. S% o   scanf("%d",&num); ( M% k! M6 y3 m; B; r: U  ptr->data=num;6 @9 G6 A, d, `   head=(link)malloc(sizeof(node));+ q) z) K% d2 ^( N   head->next=ptr; , @6 K! h! M" a5 w; [6 x- Y  ptr=head;4 l. q8 ~' I; ?  }4 w6 n/ w0 l2 n' x ptr=ptr->next; $ o( T" A: T. D; r; awhile(ptr!=NULL), X7 e3 V+ O4 {0 P) D+ I { printf("The value is ==>%d\n",ptr->data);' Y4 h6 E1 T, m- {, j$ ? ^  ptr=ptr->next; 0 d4 \, A7 s+ |9 N5 V0 a( D}}/ ` G% y" O! n5 D& M. V ==============================================================* W) V5 r' J. B# e# r+ u2 i 【程序74】 v: S I0 t# A) t 题目:连接两个链表。 o0 N2 d# A0 _1.程序分析:& ?- g, ]9 Z& C8 h3 @ 2.程序源代码:- i9 e7 y5 t0 I #include "stdlib.h"+ Y! N; P! g1 z( t" z0 T, w #include "stdio.h" + s$ h; q: T* C, V' cstruct list 3 ?5 q' S4 C0 o5 }3 l7 \{ int data; 0 p& k4 C+ f3 Vstruct list *next;- A4 j# _$ `& {* T R! H };: `/ ?/ t8 `! _( A1 G typedef struct list node;4 [1 E( |1 a# O* i: @5 u typedef node *link;. k' I5 z: [2 D& J5 x# e: j0 ] link delete_node(link pointer,link tmp) ( H1 n2 A- J4 ^5 ?( m6 l{if (tmp==NULL) /*delete first node*/ " h( K) v/ f: s8 ~3 A+ m/ Y return pointer->next;) E) L- W9 J& R3 d& u else 1 i; q( `2 }& X{ if(tmp->next->next==NULL)/*delete last node*/" V/ T% G4 r3 l9 b# A   tmp->next=NULL; * e9 ~! _$ t. n3 F- X% f8 ~+ B' R else /*delete the other node*/ * d8 ]$ x& @6 @( ?8 Z  tmp->next=tmp->next->next;2 B2 R! P/ K5 T0 Z  return pointer; , S2 { r3 j+ G1 l1 B}; N: |0 L" g7 f) n6 q7 |$ M7 G }. \: ^! ?0 Q7 }: V: \ void selection_sort(link pointer,int num) 3 X O4 p5 B, L: E{ link tmp,btmp;/ _% T5 W$ A) c; U0 L  int i,min; 8 }6 a; v) g3 }- T4 s for(i=0;i<num;i++)2 [- O2 A" [, j  { 7 d7 j! X* V! Q8 w6 R0 t tmp=pointer; ' H7 T N) \) `; C* {1 d3 b min=tmp->data;" K; [) S5 K- O+ v. G9 X, `  btmp=NULL; , Y& s- c& R5 e9 C7 p; x$ P while(tmp->next) 6 U" `6 m) W4 K l [+ E( |0 V% {3 a { if(min>tmp->next->data). P; B% H# M4 u/ V  {min=tmp->next->data; 4 j* T3 x, g0 [' @( o, g  btmp=tmp;' h& s- y' {) A# }, g; m  }/ H; z* L) j" Q: }+ I  tmp=tmp->next;3 H2 |- X' K2 m) c u6 h/ l  }, S! j0 |$ [/ f printf("\40: %d\n",min); 9 z0 U( X( c+ P, x% cpointer=delete_node(pointer,btmp); ! p/ ^2 n3 Y6 u- y! G5 y: r}% P3 [! ?$ \! D4 D } 9 x. w" J7 {/ w9 ^2 `link create_list(int array[],int num)' u: U. I1 u) k { link tmp1,tmp2,pointer;9 v0 |# A: u* c4 n int i;0 h% C$ o/ V1 ~5 G pointer=(link)malloc(sizeof(node)); ' \2 ~" n. |3 s( r0 c- A- U9 p& Fpointer->data=array[0]; ) K' `0 ]7 o/ Ytmp1=pointer;( L" Z. R. ~# I$ \5 m, i for(i=1;i<num;i++), f6 Y5 h$ z2 g9 @( r { tmp2=(link)malloc(sizeof(node)); 4 J4 Z$ W& n/ t tmp2->next=NULL;/ q( L- V8 m" [1 a- F  tmp2->data=array;% q8 E3 i5 C0 A7 A& e: Z& M  tmp1->next=tmp2; " D: t9 W. p0 h5 {; ]& Y4 s tmp1=tmp1->next; , p( K N8 n8 `8 r# N}" e3 o# ?0 N/ a! I, K. Z( j b/ i return pointer; 0 N- F" m( o" E} / Z* q: ^+ r3 Y e! Hlink concatenate(link pointer1,link pointer2) 1 F( d; L! s- R, `; c{ link tmp;5 \ z! U- Z3 c; N# D9 k tmp=pointer1; : @& j# L) I! \while(tmp->next) * V+ e+ q3 d- r5 v4 O7 Z tmp=tmp->next; ( n0 @* P' ?, c, D$ I) l0 Ztmp->next=pointer2; $ p4 S3 R( `4 S6 y$ Greturn pointer1;# U! G8 o# M8 H) Y }% _( |2 F; ]5 V( {7 D0 x( P7 y void main(void) 1 }: O" {" T9 N3 U/ A7 C/ k{ int arr1[]={3,12,8,9,11};5 @7 k6 R3 E8 N) ~9 @4 E- v  link ptr;4 y& \1 c5 W! y' r; H, l8 `0 s  ptr=create_list(arr1,5); " |: F% I3 |4 B% S( K selection_sort(ptr,5); # Z( L4 L/ W ~}7 y/ j3 l$ i% f! U2 @- P: I" j ==============================================================3 \. [. w$ G; ~+ I4 y 【程序75】 c. U+ S( B% O) X题目:放松一下,算一道简单的题目。: F3 |$ c2 f& L& I3 V- g 1.程序分析:" R- P: s9 g6 e' m2 p/ ` 2.程序源代码: ) t! D+ s( m. H% ymain()% u* p J" r, A% F9 }, [* s { , l1 v3 v9 C* a2 n, }int i,n;- t! H, R# S( h. _ for(i=1;i<5;i++)+ ^- Q: q$ f. V2 Q( {. _ { n=0;1 Z- W; [* [, j8 G* }  if(i!=1) / v4 G6 `/ B- T2 O7 [; B+ n5 N1 D n=n+1; ; u4 B4 w& Z, g if(i==3) / z, k: F1 u5 P1 f* h n=n+1;6 D0 V; k8 R) K u% {0 @. U  if(i==4)7 j) m! ~5 G( B7 Y* }  n=n+1; + x+ }+ g% U, i Q" j if(i!=4) 6 d- L4 k6 y3 | h5 f3 X n=n+1;; [2 G1 {/ {+ O; k( I0 z% p  if(n==3) : p4 V! U0 J: @' T$ M# o# O+ P  printf("zhu hao shi de shi:%c",64+i); * J. v0 d, ^( i2 K0 q } 7 g% A) a3 ]& x8 i8 m" z} % W5 l4 C- X% d7 U% B==============================================================6 I! w& ~# g) n/ I7 D 【程序76】4 e/ V4 v+ ?/ t 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 , p: U( h9 D$ X9 k$ v   1/1+1/3+...+1/n(利用指针函数) 4 J5 S: S+ S- h- C/ }- _1.程序分析: % t; w5 b% C) Y* s2.程序源代码: & F# ~" E! `9 H6 Zmain()8 a1 b* Z2 _& \2 B. m( B' q; D #include "stdio.h"7 |( u7 m0 I/ W- G* ^) S main() ' o; a: T# U; g/ Y9 a{% z! h1 n9 H" A* Z! K% { float peven(),podd(),dcall();4 m# v* F( B4 T( [% H3 H float sum; |1 h. {3 Z6 E# O e5 w3 Uint n; $ }6 y+ p. J) Bwhile (1) 1 G% ?+ `& i0 {5 i/ {{ , i) W+ [) e! [ scanf("%d",&n); + X; q( Z" S) d0 r* z if(n>1) 1 M7 o$ h% ^9 N0 g2 X, D3 s  break;: G) ~3 T9 t: p' i" O5 |$ i. @ } m- w; o- R6 \2 {5 tif(n%2==0) 2 O: J: f* b' j% o k6 r$ j* Z2 c{$ _/ A* _4 {& l2 e  printf("Even="); - G& t/ d. _1 ]& t) ~( U; y sum=dcall(peven,n);, u/ X! ]. b( u6 [# U6 f) R }- S6 f4 i) Y5 @; x c# t) ? else; `% H! b! N1 }0 R! J! Q9 S6 S2 M { 6 X- M: |" u$ l9 J& R; H% H3 f- _ printf("Odd="); 4 w; W/ [7 r( ?1 ~9 c! @# `( \ sum=dcall(podd,n);& g5 v% z) O3 n$ a( R: m6 r o }" t. i. a, n$ J% V. g printf("%f",sum);9 g( T. j% h( }: }! C } ) Z" z6 R( H1 ?7 J/ bfloat peven(int n) " i. n8 c) f) v; o0 O{ 2 w% ~& ]: ?1 }/ j% `* Jfloat s;# O3 _9 F* T( E) C, ^" W& a int i;# h6 r& ]4 l# e% \/ g+ W8 O3 @ s=1; % d8 c1 ^: m, j# Rfor(i=2;i<=n;i+=2). T& s6 x* R$ `5 F3 m3 [/ b  s+=1/(float)i; , H8 a5 ?* n: e, N6 W+ o1 b/ D5 n1 Sreturn(s);6 ~+ Q; @ ^) F3 d! p } ' P5 Z$ H" a5 o0 b3 efloat podd(n)4 }2 o0 Z+ J# H/ H int n;; P# f' W4 t% r' p. N& W( F$ `: e { ! B, Z _* E, _ q. k9 D- wfloat s; 0 f [0 o. I$ I; o7 U# R" mint i;- P% U6 j$ B# ?# ? s=0; " S+ D2 _' l4 ^for(i=1;i<=n;i+=2)# V# ?, \8 C: V' i! b  s+=1/(float)i;2 q% a3 p, n1 X& q2 o( _ return(s); - }# w$ u. r- ~& u( i}9 Q4 M# a5 y8 c4 G/ m; S8 w; d/ G float dcall(fp,n) ; x$ y: G& H# Zfloat (*fp)(); . U3 v6 Y4 k* Fint n; h9 ~5 L, U9 P, F/ u9 ?) {! J{ 9 X% a. U0 F0 C: W- Dfloat s; * U8 V9 }' w L" F1 Js=(*fp)(n);$ \" p6 {0 U% _$ A v) J& U return(s);0 f/ g- J$ P, U4 A6 N& A1 t% i7 A } 0 U7 ~/ K' C. m" A; _============================================================== : t* L7 q0 \5 U% H【程序77】4 Q. }" a, ^6 t 题目:填空练习(指向指针的指针) 4 |6 c# M: K% |5 \" v7 g# H. d1.程序分析:     6 u F r9 y2 S. v: k9 h 2.程序源代码: 9 K: g) T% p, k! G: d* P* [main()+ Y, _! M ?* }6 c0 U { char *s[]={"man","woman","girl","boy","sister"};7 ] x/ {+ h5 E* x7 q1 y5 J char **q; % U' l9 B T1 @9 b+ G! C+ F* ~- B8 jint k; 8 \0 @: B, {. h+ lfor(k=0;k<5;k++) ' z9 h8 ?' t7 b, S{       ;/*这里填写什么语句*/ $ F2 x5 {+ w! x; b' ]5 `! Z0 ^. e printf("%s\n",*q); 5 h5 N" R6 G! D9 R3 |} 2 Y! }; @9 A- \4 o4 G# e' G1 `}. f6 k+ B; P4 t: k% N5 ^ ==============================================================0 s- O. x) E1 o$ y4 K/ L' Z 【程序78】 * N) W* G, v* O1 j$ S题目:找到年龄最大的人,并输出。请找出程序中有什么问题。 . r. a6 W* E# @+ s1.程序分析: " R L/ o" |$ E0 ~- T* t, m2.程序源代码: # ?. L" r; v' c. T/ a; |2 a" k#define N 4 # a7 ~* O! |1 t9 |#include "stdio.h" I4 A) W, h9 B% Y9 Dstatic struct man 8 o$ W9 D u3 ^$ i/ Y ~{ char name[20];, _6 B( \6 E: W9 ^+ f int age;, B! Q' m+ f3 `% r6 u3 S } person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; y" I/ B# S: J& k$ V. K) z( p3 o' } main() $ e5 a7 j4 e) T3 ^: G ^{struct man *q,*p;+ v3 M6 G. t4 \' b& y' X0 e int i,m=0;& {' n0 l3 E6 `# C( G l- b# q p=person; ! l! m: m$ h: I8 _% Efor (i=0;i<N;i++) ' L% B& |. B* i9 i5 X{if(m<p->age) + j* S4 R1 |& |1 Z8 a q=p++; 2 Q! v& H2 b1 i' G7 H m=q->age;}" F; b" q; e [9 Z; y" H- N printf("%s,%d",(*q).name,(*q).age); , L3 {# n6 x" p} 0 f& h4 Y. M0 H( c8 G. Y7 X============================================================== ' j/ u; {7 M/ I) L# d* G5 J( c【程序79】0 z+ [0 X: X5 j% Y h3 Z 题目:字符串排序。+ s2 x2 m0 _9 N! d6 r( I: C 1.程序分析:. x5 O2 [) I8 s! I% Q( H 2.程序源代码: e) K( V% V5 A" D/ m. g# s main() l; Y- H O. x* @7 V$ P, }" ] {6 n4 O" r+ C" x1 d& S% A char *str1[20],*str2[20],*str3[20];! w/ a/ ]; c* C char swap();+ }: r' n2 C1 M, U9 n% T printf("please input three strings\n");+ ~$ s( k0 r8 a/ a' Q0 j scanf("%s",str1); 9 H" Y1 k2 X0 s) Nscanf("%s",str2); 6 ^; f9 D' g3 Kscanf("%s",str3); 1 x- g/ R* A# \8 Y) d0 {. Hif(strcmp(str1,str2)>0) swap(str1,str2); ! T, S$ O n! {& k3 \if(strcmp(str1,str3)>0) swap(str1,str3);/ N+ w) N5 w2 \ if(strcmp(str2,str3)>0) swap(str2,str3); # R4 {1 a' I" `; ^; b3 \, [printf("after being sorted\n");& d% N9 y; A7 l) [; z9 d printf("%s\n%s\n%s\n",str1,str2,str3); 1 p( B+ e* e% h e% y: Q3 \} ) r+ e8 [2 X h5 `char swap(p1,p2) 5 F% J' Y1 A1 P. ]6 \2 gchar *p1,*p2;' \* L; y) C' L9 O {1 b+ T5 M* q6 d/ w7 f% v char *p[20]; 6 Q4 ~; ~- I4 S e) E8 w9 dstrcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); ! g8 V2 M& i: n+ v}! x) u6 \$ {, ?+ N7 ], Y ============================================================== 8 \5 B2 c6 o6 n. h, `( F7 e5 n【程序80】9 n V1 c; s- q' p6 v8 S0 F( u 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只9 K2 B" O0 y$ w2 p' }    猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了: w2 x& s2 U3 t9 {) o, g    一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,- T8 V2 J% |) d9 z: Y    问海滩上原来最少有多少个桃子?- G5 g" r% i/ v 1.程序分析: & b. S$ K. Z0 C9 h4 x: }2.程序源代码: + u- N+ E; z4 _) W# B" zmain() ( q8 t r' ~* t/ m5 A1 H( ?6 N" y* b{int i,m,j,k,count; ; Z6 T4 W% O2 N- ]7 [for(i=4;i<10000;i+=4) ; B+ @* v% }# W{ count=0; 7 p% j1 K6 J( Z$ E4 qm=i;5 Q" D: S$ j2 A5 \ for(k=0;k<5;k++) ( s; o6 m1 Z9 _7 C+ w1 y# a{ 6 y/ q5 i2 h; E. P/ b5 q7 M j=i/4*5+1;. T" ]* S r* j9 u' \  i=j;; K2 K1 x5 ~2 ]7 _! l9 ? g! Q1 n$ K) }  if(j%4==0) \ I' m' w, t$ q7 h   count++;& c3 `) Q3 H* d; {  else l0 M' \& G5 r! r, ^2 c Z  break; 5 I, l* r2 C2 P. ^8 S} . l; G* s+ N+ l7 V0 m$ D i=m; 6 k: r- p9 y* H' |; G if(count==4) 9 B0 m) ~8 p! Q% f {printf("%d\n",count); + p. A7 G$ l! K1 W1 W. Z  break;} : w+ A: P- K/ F8 u4 }8 h. i} : F/ I j% E! D& y+ ]/ |}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序61】# s# ~* G/ I1 c) U 题目:打印出杨辉三角形(要求打印出10行如下图)   8 w; V8 {! \1 _; `( J 1.程序分析: _4 ] a9 _" q7 w# K) H+ x        1% C8 }8 [; v0 Y       1  16 G+ U" K. {! \/ i4 _$ w       1  2  1 ; e' c F' o4 p. F$ S. }      1  3  3  1 ! F- I: B; E1 T9 o/ u# I      1  4  6  4  1 3 f8 N; ^0 l3 F/ h5 a# r) M      1  5  10 10 5  1  . k# [. D& a9 K2.程序源代码:2 A6 ^4 \1 a% C% b* b9 b main()% ^0 O/ n6 g8 o& l% o: m( h3 F5 W9 _ {int i,j;) M$ z2 ^/ f( n1 w9 T, b+ ?" s4 r; ` int a[10][10];- y1 }1 k+ V( ^. v0 g; a+ _ printf("\n");. |& e. R8 ?+ ]8 C' c: F for(i=0;i<10;i++)* d" i( B# ?5 K+ R- E9 o  {a[0]=1; ' d% B4 h& Q1 h1 H a=1;}, F* e5 w* i1 r) C for(i=2;i<10;i++) 5 A1 w8 \. w" N7 E for(j=1;j<i;j++) - A' K# r; z# R( E7 K6 J a[j]=a[i-1][j-1]+a[i-1][j];: [- O+ C& N% h+ H8 ~* f5 x for(i=0;i<10;i++) 6 f" C# q5 P# n# X& Q {for(j=0;j<=i;j++) / }$ N# y7 O7 L2 _% m printf("%5d",a[j]); ) Z1 f) k9 g# y) I# g printf("\n");6 J3 U' a0 P5 w9 H4 d7 w+ P  }3 f* a: t# ~+ R- u. N& W }! h/ e% b; f" \ ==============================================================3 F, q D7 `5 N+ \- i 【程序62】 9 x/ T1 X# U: j" j* l) }2 t }/ z题目:学习putpixel画点。; m. r9 M& m$ u: A 1.程序分析:             0 C5 Q; _8 V! I6 g# G- y! x2.程序源代码: 2 m* b p2 d- U$ b/ y) d#include "stdio.h"- d* T3 ~- P# [! i #include "graphics.h"( j3 n3 D$ w4 I Z" ?, y% ` main() - C" h1 o, r4 x# x{- C# Q0 }$ H9 B8 C% s1 K5 L. { int i,j,driver=VGA,mode=VGAHI;4 }1 X4 ]: b' G8 c ~, g( W" \; z5 r initgraph(&driver,&mode,"");& o0 k! s- j1 H setbkcolor(YELLOW);5 C* z4 _7 |3 B! d+ y for(i=50;i<=230;i+=20). s7 e6 V+ R" u) d2 {4 @9 p1 U  for(j=50;j<=230;j++)# }; K! n0 C% h9 N* u  putpixel(i,j,1);, j. R. n$ q: c6 _ for(j=50;j<=230;j+=20)2 B0 s" e$ y, x* X, U6 T# H' x" n  for(i=50;i<=230;i++) ' ? j5 C# R: C0 I putpixel(i,j,1);- |4 w K2 A ~" B$ O6 A } * C& `2 M% z* |% W* \8 C==============================================================+ I- Q( ^2 ~0 s+ C% Z5 s3 K$ v 【程序63】 . H# w6 g1 E$ A# R# _" g题目:画椭圆ellipse    . b/ d1 ]- S+ L* g/ |' A1.程序分析:4 ?4 l, Y9 M2 a4 O) L+ o; M8 U 2.程序源代码:6 O1 l8 o$ j4 B% U! G5 r, [8 t& g #include "stdio.h" ; h4 w+ F0 F4 d- f#include "graphics.h"" E* F% Q8 i) R #include "conio.h" 0 i: Q3 \# \8 w amain()' l, {9 z2 S Y* H {# x x6 z: c+ _% \ int x=360,y=160,driver=VGA,mode=VGAHI;2 x3 g$ W# S) r7 z2 X int num=20,i;6 f2 s* G) g- r, ^ int top,bottom; J- E5 C4 _2 v/ dinitgraph(&driver,&mode,""); % g- O ]; O8 ytop=y-30; & j+ a; u% M/ t, M4 ?bottom=y-30; ! J6 k4 ^ g5 y, r* [for(i=0;i<num;i++)/ x0 I: s& }' j {( I' d$ N6 }5 @! Z ellipse(250,250,0,360,top,bottom); ; |4 H7 k) d% y2 B6 Y0 etop-=5; $ T2 Y) V, x+ O- _8 n2 u, ubottom+=5;' h- J5 J. @" g; E }7 F2 j+ G( H! N: h' x- T% I9 P getch();& D/ T& M* v' W } 0 s' d! Z8 G8 K, d, _6 {============================================================== `' \8 v9 a* p. q 【程序64】0 i: T) t, P, |' v 题目:利用ellipse and rectangle 画图。9 C6 `' u$ M/ J8 P 1.程序分析:( {* k! c( \; p2 [2 G0 l6 j8 q% G 2.程序源代码: " i; f4 t, W* P' ^#include "stdio.h"; \' X5 Y4 Q. ^ #include "graphics.h"$ \" [" X* {3 s #include "conio.h"& U' R0 p" T. f" m$ I$ C$ G main() ~' z/ [8 r! J% [ { $ y+ b; L/ m1 s$ t& s! U5 b; F3 _int driver=VGA,mode=VGAHI; + \3 v* h: P9 {( z5 `int i,num=15,top=50; ) s" y. [* D0 |$ U6 [5 vint left=20,right=50; B! ~5 t: G# }initgraph(&driver,&mode,"");& _6 q1 o( n: v/ U0 U" K for(i=0;i<num;i++) [( G4 Y% f" A6 H# l{* j: |/ I0 i, t1 c+ m+ k; N ellipse(250,250,0,360,right,left);5 |; s7 K, y7 F, J ellipse(250,250,0,360,20,top);9 O# @. A9 E4 x$ q rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); ' n, D# A1 `! G6 [2 N& Sright+=5;% y- ^# e9 ~9 m left+=5;& d) ?9 E" P" K7 O& s top+=10; 8 W6 S" r l1 i' r( N/ p6 H}3 [# B* F( a, @; h: m/ O' M5 H getch();4 u1 S. U4 c# b$ v' S( h7 r: I }, k' x" s) D" C/ M6 c ============================================================== 4 Y$ \) o0 K) H L5 @【程序65】 8 v$ E" f- L' f题目:一个最优美的图案。   8 N. R' g/ i1 o) C# c; P 1.程序分析: R5 |2 J$ k, A& A: a8 B 2.程序源代码: $ T$ q }! U0 O# h& p; x. L: k#include "graphics.h" / n7 }/ ]! T3 G: n#include "math.h"2 M) _3 g6 i( | @( A6 X #include "dos.h" 2 B6 @6 y) J( ?, ~, O#include "conio.h"0 c E( u( }! k3 z$ B6 b #include "stdlib.h" # m G9 x5 {& Y4 q6 G+ i% I#include "stdio.h"" z, o" D( p& {4 o( J& B$ D #include "stdarg.h" 8 I5 R2 C% }3 D/ w2 T( J8 ]7 X$ H#define MAXPTS 15 8 k* O% A3 f1 m8 ?9 D#define PI 3.1415926, V8 J- z3 ?( R/ W7 C1 i struct PTS { , s% z- J/ Y# Aint x,y;3 c* Q" q! K" ^5 g };# T% ~/ F" ]6 t9 \ double AspectRatio=0.85; % |$ i0 G; C2 \; g# Z1 Wvoid LineToDemo(void)9 [. h5 s' Q/ h! h {) w1 X* b) w3 l& t; B struct viewporttype vp;# Z) W' E' b V: g1 B, f struct PTS points[MAXPTS]; # n7 `8 s# Q7 y: w% ]9 H' b' bint i, j, h, w, xcenter, ycenter; 6 I9 P) C( N* F' _$ }int radius, angle, step; 2 ~/ B( G) \% R3 M+ C" Cdouble rads;: ~0 l# B1 x' q4 N. Z printf(" MoveTo / LineTo Demonstration" ); ( X0 Q7 g7 }: p& m0 [% U2 V; Agetviewsettings( &vp ); ! k' }4 |/ x1 v% A0 w/ A5 X W. t* Wh = vp.bottom - vp.top;( C& N; M0 \9 t6 J+ F6 m w = vp.right - vp.left;: q# Y$ G0 Z G6 ^1 M# ^ xcenter = w / 2; /* Determine the center of circle */ 9 j7 [/ t5 b& B1 b1 Qycenter = h / 2;! Y, B7 `& U- Z8 b radius = (h - 30) / (AspectRatio * 2); 0 s' T$ U: {$ V6 \ w9 dstep = 360 / MAXPTS; /* Determine # of increments */ & h3 s+ f) F4 Yangle = 0; /* Begin at zero degrees */0 o' d2 j: i3 W$ R4 E3 X8 w for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */ 7 a: a5 ^; i0 g9 Zrads = (double)angle * PI / 180.0; /* Convert angle to radians */ - a% D5 `$ l9 Dpoints.x = xcenter + (int)( cos(rads) * radius );: Q" y# l$ m+ W* P L points.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); 5 X4 c9 D/ _7 aangle += step; /* Move to next increment */9 c4 n* e6 ?4 @/ Y$ b6 l }0 N& ]$ R3 R& W circle( xcenter, ycenter, radius ); /* Draw bounding circle */( ^; K, _3 |* w- L9 [. r for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */- c% e+ A6 Y0 [/ ^2 [1 R" q' u for( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */ v f6 Z6 N, K3 @moveto(points.x, points.y); /* Move to beginning of cord */8 U1 p( }$ A4 `) D lineto(points[j].x, points[j].y); /* Draw the cord */ " |$ \6 k' |- l5 k6 t# @0 E( D8 o} } } * `; ^8 S: V# smain()/ N/ g% M/ F+ n {int driver,mode; 2 S# L: _$ T1 cdriver=CGA;mode=CGAC0; . a9 K/ l: s: ?8 P7 ]initgraph(&driver,&mode,""); . O: C; u3 n- u1 ^6 l3 W" A4 @& Bsetcolor(3); 2 e* B5 V! \0 V/ K$ rsetbkcolor(GREEN); & V% \' b- g1 h: p( vLineToDemo();} $ X. q' T" i8 ? Q/ q3 y==============================================================( _. P: o$ o1 L( E 【程序66】 ' x' L J' q& }+ ]: g w% B题目:输入3个数a,b,c,按大小顺序输出。    , E! }2 o: C u4 G/ y1.程序分析:利用指针方法。1 L7 B# ]2 p0 B# ~ 2.程序源代码: # G l* c; y3 u* m" N3 m5 e/*pointer*/ 5 R( n* ?* U3 H7 T$ amain()" v- u& l3 e5 u! d1 S { $ z5 R+ n, r( I6 Iint n1,n2,n3;, x$ U) {0 t5 Y- _, ] int *pointer1,*pointer2,*pointer3;: V9 c, l( @+ Z7 o' z printf("please input 3 number:n1,n2,n3:");- @7 o- \, H5 t: X+ g scanf("%d,%d,%d",&n1,&n2,&n3);6 d, ~& M: e6 I+ i- O pointer1=&n1;8 _3 G2 h! r. }- d: w: b, P pointer2=&n2; + N& k$ K( [6 h4 o6 h( t, o6 {pointer3=&n3;" G2 U! n9 F8 Y: z9 k) t8 d+ I if(n1>n2) swap(pointer1,pointer2); $ y& Q- k' a2 \$ s* b6 Tif(n1>n3) swap(pointer1,pointer3); ( m+ S+ d0 ?1 Mif(n2>n3) swap(pointer2,pointer3); ' d# A* u2 b$ |$ p. ?' G* k bprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); 2 a) u! e/ I# r9 H9 B# Z) l}0 j0 C' f8 N% m4 R2 f0 T swap(p1,p2)5 E; z) ~- H6 S& X4 A) w, Q int *p1,*p2; 3 E7 a; Z8 \0 Q4 G{int p; ; L) T p2 Y1 {( q# }* op=*p1;*p1=*p2;*p2=p;9 C% j7 Z; a' ~) O. A! x$ E } , R# z9 t6 j$ u0 v: o==============================================================* b5 T( |8 k0 I8 j" R, _ 【程序67】8 s& s) c, M! e. \% o 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 9 N% v" A' a5 [: R1.程序分析:谭浩强的书中答案有问题。       5 Q" l$ E# E1 q9 U) Z! ~4 d0 {2.程序源代码:' ^9 x% a( b+ z) C$ ]9 o main()/ e$ {+ p. E1 ^0 t! M { # L2 F1 [8 D, \2 g" N% Q1 w6 Zint number[10]; & v, u k- i0 B8 e# w3 |input(number);4 r9 O% J8 H9 c/ [) s6 x6 i max_min(number); - z; c' Q t: @' }7 ?output(number);! T$ g4 T& ~2 D+ \7 D } * _- T4 `# O5 z# b2 sinput(number)( }) ^4 z9 O8 [ o; ]" F& Z int number[10];* \5 ]5 e' Q. _8 `6 ]- h {int i; n7 D9 {& [; k1 Xfor(i=0;i<9;i++) 6 w i: L6 O- h; Q6 {4 m5 W scanf("%d,",&number);# e% k. O7 K4 W {; l$ ~  scanf("%d",&number[9]); : d7 Z9 h/ _$ j I$ J" u* V( L* c/ A" B} 6 s/ G4 s! W# @, D$ I5 dmax_min(array) - Q3 M4 S& ]+ z0 o. p9 _' Zint array[10]; ) n% K- v0 e4 h) T! W{int *max,*min,k,l;* S! v7 @) D3 k int *p,*arr_end; % _$ v& l/ P- z, N9 ~$ i' Xarr_end=array+10;, v! D' u$ ]: R max=min=array; : X# m6 @; C3 X3 ]% l$ J/ ?for(p=array+1;p<arr_end;p++)6 D8 W' [+ H9 U9 x* _" y  if(*p>*max) max=p; * a2 L' t9 e, Y: ?3 w; f) j, e0 g else if(*p<*min) min=p; 7 E% j$ d: i; k2 F3 V" K% }! A5 G k=*max;3 u0 s/ p" r7 v% b! o# c  l=*min; 7 v, }# w# m& ?; C& e+ p# f4 v- v *p=array[0];array[0]=l;l=*p; 0 ?; Z" ^) y9 U9 y p *p=array[9];array[9]=k;k=*p; ( j4 s& ~! ~4 Z/ x; [ return;4 ]4 M% r! L" K9 |2 _ } ; y# n, @2 [1 d- x/ Joutput(array)9 n H( H2 n6 X: I. y int array[10];4 A9 _7 _. y& y/ x- ?$ x { int *p;, L+ W. w3 ?1 G: d% R9 D2 j for(p=array;p<array+9;p++)1 F, T7 T, a0 k% V o  printf("%d,",*p);6 h) h6 `+ |7 H/ p printf("%d\n",array[9]); & j4 y, {& h2 X! U4 _; K7 ^}9 T% j& ], G2 `& u ============================================================== ( S! k7 |7 j" m( K7 J【程序68】 1 `% m8 J- }; `: ~题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数3 {2 Z! w: J5 g0 j 1.程序分析:- e4 z3 E3 l, Q" f: F 2.程序源代码: % u1 N; I6 o, \% M. m) Amain()! a9 b% l; v6 ` {8 k1 a* F% A1 b5 r V int number[20],n,m,i; 5 ]# W1 w& }& e9 f' J/ lprintf("the total numbers is:");- j9 ~6 h, F4 E {" G$ m5 Z1 W scanf("%d",&n);/ r2 D) r. U' q y% b6 ?, A printf("back m:"); / G9 ~, h' o ?* P3 Jscanf("%d",&m); 5 M; |/ z# {* lfor(i=0;i<n-1;i++) 4 R0 s, P5 s7 O& Y) V scanf("%d,",&number);5 n6 T" x% H/ m, O, x2 z+ h" Z scanf("%d",&number[n-1]); 0 o; r3 }2 H% s: nmove(number,n,m); $ U. ? t9 S/ u7 xfor(i=0;i<n-1;i++)9 ?3 {0 L0 Z$ l6 x }; A  printf("%d,",number); 6 \! x6 Z$ [0 E6 Q: r) H0 eprintf("%d",number[n-1]); ' i7 W. N+ M, n/ s" w}6 k8 j5 a @" w4 ] move(array,n,m) ! M5 W6 ~) c1 H9 b: c7 Aint n,m,array[20];- s" ~0 y+ W1 I# M& y7 A$ } { # m7 R* N9 y8 e ~int *p,array_end;2 {2 V9 Z8 k2 l7 x array_end=*(array+n-1); . f. G2 v z, {& rfor(p=array+n-1;p>array;p--) 3 { J$ i, K% z1 Q% K! Y *p=*(p-1); ) `; p3 i. [8 P; A8 L+ h0 ^7 H *array=array_end; ' F3 z( ?9 O0 R; Q m--; . P. n: D$ `; c' x. D if(m>0) move(array,n,m);1 d) L- V9 l8 b/ y4 o, r7 r } 0 [$ G/ n4 ]! H5 _8 q1 Z============================================================== + r# g( R$ g% M) E/ c【程序69】, E$ M+ @ P4 j0 N) ]9 H1 T% d0 r 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 + v9 ?) k& ?/ B6 F$ m- v9 H4 l( a   圈子,问最后留下的是原来第几号的那位。, V' {, t( a! D; O0 A& q 1. 程序分析:/ j- j) y0 O5 `, a- w 2.程序源代码:+ I. K: m7 ]" S8 m! y& k+ A #define nmax 50* ^" _$ Z/ {3 p. M main()- E4 \( M$ H: N) _9 c { 4 z! S6 s# D n5 \2 u; Kint i,k,m,n,num[nmax],*p; ! Q+ V: E' q% pprintf("please input the total of numbers:"); " @0 Q! U: Y' P, _scanf("%d",&n);! _# @" j- n# V* y+ Y( O p=num; . X: F- k# G0 M8 A% ]for(i=0;i<n;i++) ' d* F+ V, y9 K( P *(p+i)=i+1; & @9 O) R# c/ `7 D: o* | i=0;% h# w. V1 v- i8 O# x) n9 z' r1 k  k=0;, m/ t, E ^( h* v- a  m=0; : T# X) d! ]: y: M7 R0 x c0 v while(m<n-1) / F. E* L- q* [9 d( u9 a; X2 p. ]" n { # j2 L, U. N0 M* B4 E; P1 X9 z3 W. ? if(*(p+i)!=0) k++;5 h; @0 t: z4 [$ e6 z  if(k==3) 3 r# h; @: L! S: ^9 o+ { { *(p+i)=0; / \* s# S" V* ~7 b3 f" X k=0; 1 P" |7 D! W: n" |7 P- t m++;. S+ X2 R4 q6 {" H1 C  } 8 }, ~" S3 k' x* d- Y" C) Ri++; * _1 b2 Y E+ P; k iif(i==n) i=0;, j4 b# O! f7 q3 y, N1 l }# [/ [/ B, e3 m6 o! F/ {1 C9 } while(*p==0) p++; ' h% e5 Y, D6 Tprintf("%d is left\n",*p); / P3 Y. H- O. M% T+ o) L3 M5 t8 V J} 4 l* H1 b/ `4 [4 X6 Y==============================================================- X" T& T' _ I 【程序70】$ W `7 _+ Z. [8 d |& u 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。    9 N& x9 ]) F& h6 s( ^1.程序分析: & z E9 [( c. P2 _5 G: C) ^2.程序源代码:6 _; I$ j, s5 q& V& U9 h1 _6 a! o main()) J/ |8 _3 Q2 X4 z4 I }. i' y { ; i, F5 a7 A {6 _8 f3 ^ e9 c0 V) ^1 C% Dint len; + `) k. I/ Q) k0 Z) F' r, M4 x4 dchar *str[20];5 j4 B5 {! L7 `: A- x+ P printf("please input a string:\n"); 5 F M6 f3 l4 F' U$ t& fscanf("%s",str); % _( W6 d+ I r. Plen=length(str);& P* g: y9 p9 `" H8 c- Z% V2 `9 A printf("the string has %d characters.",len); ' A; J& }) [# f2 P7 t+ ?; @}6 @ S4 s& x3 S* a0 Z/ v1 }+ r length(p) 7 i* ~1 A0 X" j# t+ A J! j9 G" Dchar *p;" f5 N/ Z8 L$ [2 ^ Q3 k. p" L {- l4 S1 k. T( V1 _ int n;7 P4 Z& u. [" v/ a# v# ~ n=0;7 ~, s( j* I/ e G while(*p!='\0') 3 ]4 v# H* C0 A O( I# y{" m) w- q+ {0 O4 `* R  n++;, P) \# O+ u# p1 \! _2 P  p++; ! U9 S5 j* O+ k9 P}0 c' D1 x7 v2 I- V$ E return n; 5 }9 L# `8 `+ G* m* D}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序51】$ h$ W6 L) [2 | 题目:学习使用按位与 & 。   - ~! z' t: F- Y% S/ v. H9 V 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 ' b ^# R$ j3 T2.程序源代码:. I! P' u: R; [: y( W" z" A #include "stdio.h" ! Z3 [( j- H5 r! Jmain()3 R( p! J2 B' H1 ~( t1 o3 k {. h; {% J. i; m y int a,b;4 x% ?$ U/ w. r6 Q6 N$ x" `6 s/ t a=077; q+ b/ e) }" q. { N4 nb=a&3; 7 @& i2 M" m9 ]0 Q: j& Tprintf("\40: The a & b(decimal) is %d \n",b); 5 Q1 w( m/ [) b2 c4 y/ |2 jb&=7;& ?2 `, M: `3 |5 A+ T: O/ l0 f1 _ printf("\40: The a & b(decimal) is %d \n",b); 9 M; Z8 j2 q) b. M# I} . a3 k! t+ Z2 H$ ~3 b7 S============================================================== ! o% y" m: X% u" q$ Y【程序52】 ( Y& z" K4 k# B+ V" M题目:学习使用按位或 | 。 # P1 N* U4 E( @1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1             ! c: a9 U/ O5 E# S- C2.程序源代码:+ n/ C" w* w; O5 y #include "stdio.h" , y* x; \& ~7 ^2 G" Tmain() & i8 S7 u+ j0 k$ S0 [5 e1 |' i3 x{+ v; U" x0 l' I% w- x% n int a,b;, V1 h- e# K* ?+ w9 n3 B a=077; ' W% z- \( w' J! L1 A% p* eb=a|3;6 w+ \* P$ q1 @ printf("\40: The a & b(decimal) is %d \n",b);6 h# M. _2 {2 A4 s( i b|=7;- [) b- f; y% S6 o7 c printf("\40: The a & b(decimal) is %d \n",b); 0 ~0 q1 p# T( g} + W- u ~- c, X( J" ]2 A- i! r+ j============================================================== " l1 k# u f, V; y0 \. ]/ V【程序53】 0 z0 p# ]+ g3 m. M5 d; `题目:学习使用按位异或 ^ 。    . P: x- C% f1 O: d1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0& U2 |* v) s5 R2 j 2.程序源代码:: `% g, f& t- y& Y6 N( l2 q #include "stdio.h" ' d1 m4 [/ Z+ Dmain()9 I B& c } i. W {, u: }6 N7 U7 H! S1 K int a,b; + N. n% m8 V# L4 Ca=077;9 N: U h3 j4 e( o3 ]- n b=a^3;6 G( v8 A( S }; g printf("\40: The a & b(decimal) is %d \n",b); 2 D" ]; v* b+ q$ I) ?b^=7;: x; D7 D, _0 t' f; g3 o3 c2 F printf("\40: The a & b(decimal) is %d \n",b); & X1 h6 ^' V. w, e* _$ ]7 z} 2 o5 o% T2 m( w# P& c============================================================== 9 l' d' W% @3 J0 d【程序54】8 ?8 W- W- D" V7 z, X 题目:取一个整数a从右端开始的4~7位。 % b6 O; R' m7 L& o程序分析:可以这样考虑: 8 C) e" T2 R4 m5 i9 E8 G+ \( L(1)先使a右移4位。 ! g/ r+ I T& z' g. K! n(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)5 v* _( d& T! D+ e6 g (3)将上面二者进行&运算。 & {% T2 U9 D/ h+ L g2.程序源代码:& R1 m# M3 ^' D8 v main() / e0 i: t5 V! x1 r4 P5 V ^) S{ / r5 j# [2 w* s J( Bunsigned a,b,c,d;- a/ T) R5 s- t7 J scanf("%o",&a);$ r# N" D$ u1 I* ~" \/ j6 ` b=a>>4;& h8 u! z8 ]7 M2 k: _ c=~(~0<<4);, [) o2 e5 F3 i4 ^1 {" t4 d d=b&c;, t: r( t# V: J) r+ S- \ printf("%o\n%o\n",a,d); % d9 P( G; t$ p: V$ q& f9 q" K}7 p0 I( }& |6 [: P, Z( r ==============================================================* e, Q" z/ d7 u$ R, z7 K 【程序55】 7 }( n4 }* Z, L. o) Y. o题目:学习使用按位取反~。   - r6 x6 {- R& H% G: m2 X0 ] 1.程序分析:~0=1; ~1=0;5 s: B g! G d% q0 c4 u 2.程序源代码: 0 f7 T; [; F3 K6 x2 D2 J. B#include "stdio.h" * e5 u) S/ C7 Y7 O! W+ jmain(), G+ h) s+ Y( o* b# ` { . W6 _6 O$ y( }4 ]+ p7 _int a,b; % ?5 L# B8 y# C/ A W/ h$ D3 I! M# sa=234;# W. P& o" `& F! k$ [) I; ? b=~a; - V e: y) g3 ~ L: m6 b0 m3 mprintf("\40: The a's 1 complement(decimal) is %d \n",b); ) q; c- O* m ^( `( U% p Aa=~a;. m6 b/ \; ?; A6 L( N( n9 ]8 ~' { printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);2 ~7 ^* s/ V4 l- [ `& L; i9 v } + F" P0 B9 o! M0 q# c============================================================== ) _! j4 f: V8 F# r【程序56】 . @2 k A4 |4 H' i8 G" }/ u题目:画图,学用circle画圆形。   1 W6 \; B% h" @. i$ U 1.程序分析: " A( K9 K! q4 x7 ?- I- t8 U2.程序源代码: B1 d( c8 R7 u# W# e/*circle*/; L5 v9 Z# f+ ^3 r8 N #include "graphics.h" ( t4 p% N% O& F: }8 s8 J; b# Ymain()& U! P9 Q6 m5 P: C# q+ o {int driver,mode,i; / q! m1 c' q8 q. \float j=1,k=1;% }# S! B" L. ` driver=VGA;mode=VGAHI; % V4 R$ n' p7 ^0 x( b, _' g7 I8 finitgraph(&driver,&mode,""); 6 b1 H& H, j: I/ a. esetbkcolor(YELLOW); - C" z5 h$ t1 J# z7 m4 Wfor(i=0;i<=25;i++): l7 {* i- u. { {" r' u0 @/ c9 a1 Y setcolor(8); . ~; L$ t8 }$ B) x5 s& ?circle(310,250,k);4 ?( M: T, @( W" e& v8 o% n k=k+j;% T% V8 v# j3 h0 f) j# ` j=j+0.3; 6 e4 y4 _( k5 ^}' s- m4 B3 ^2 G+ g9 X% i1 r) P } 1 ^6 _2 K# D G D" g, `* A( l5 @ ============================================================== $ P; d3 w/ _3 H1 Z- m, Y【程序57】 0 t) z r5 Z& a" R; U2 a- B题目:画图,学用line画直线。 1 y( q; O1 ?6 C/ Y6 Y# ?1.程序分析:            3 S) u" S8 P1 o) s% V9 a" X9 P# Z2.程序源代码:' v, J- W) w$ o: u; `; h/ k$ l #include "graphics.h" 2 V2 j6 {; b$ ~ Y, e" A( {1 [main()6 O' I- p$ a7 ]) \ V" i0 ^0 K {int driver,mode,i;$ [/ _! @2 h& Y! G float x0,y0,y1,x1; ! E3 {' u9 y5 i. g$ Efloat j=12,k;$ t0 X! p+ G1 Q. m) } driver=VGA;mode=VGAHI; : O% a+ f8 I# s" Einitgraph(&driver,&mode,"");7 n( r/ V( m, C: P3 f! S setbkcolor(GREEN); 4 l% N) l+ I6 Y- B2 Ix0=263;y0=263;y1=275;x1=275;7 A3 g o) a8 _ for(i=0;i<=18;i++)$ v, _+ V; W: x& N5 Z2 F* g {* L/ j4 c! @: a* ^$ r9 h; c setcolor(5);' x: R7 A: V2 ?' _ line(x0,y0,x0,y1);6 g' y" a8 y' _3 h. S x0=x0-5; & `( _% z: @8 {+ Oy0=y0-5; 8 m0 w" o+ g' ?! @x1=x1+5;9 O$ E8 T, P- I* g$ U$ Z3 } y1=y1+5; ' W! O. X" x5 V% j" Yj=j+10; 4 ?, r" s4 `3 p" A5 G/ I- f0 r} : l5 R8 r$ Y' M- q+ z. p) qx0=263;y1=275;y0=263; 9 K1 B$ |' o/ V* I8 L; H# gfor(i=0;i<=20;i++)0 b; `* T: e2 [: B6 ?$ R& s$ p! z# T {& ~4 b( f7 Z# Q+ W- s setcolor(5); 0 e' \9 {' d, G; v8 f' c2 ?' uline(x0,y0,x0,y1);/ t; b, I R5 L+ [+ [% E9 M/ K& Y7 [ b x0=x0+5; 1 B- D2 p' c2 @& b, I) Z1 ry0=y0+5; 6 W; Y$ D' F+ ]5 Sy1=y1-5;1 s' y( @/ e$ I' P7 z3 j M" C }- h8 e% }2 W' \! N0 c* ] }5 ^5 F `) I2 P& b4 g ==============================================================8 k' ^8 e/ g0 K+ ~3 u/ I$ \ 【程序58】 2 G9 d; j' m7 r M2 B2 Y题目:画图,学用rectangle画方形。   * |! X' g9 H1 N+ n4 ]* p 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ( I, {- Z0 i% E0 y7 o$ k7 T& G5 q% L2.程序源代码: 2 F# z+ i1 N* _; e#include "graphics.h" ) h4 z4 i. R, k( K& n/ lmain() # p3 a- |/ B1 u! j{int x0,y0,y1,x1,driver,mode,i;1 Y! S) D2 r( b; E0 i! S driver=VGA;mode=VGAHI;3 u+ \, J# ^. {1 `5 j) B! a! e initgraph(&driver,&mode,"");1 E+ U- g# D+ p2 @5 J+ _ setbkcolor(YELLOW);3 p$ A7 n. W" m; E+ r5 E/ w: s P x0=263;y0=263;y1=275;x1=275; ' r! w D* o! p Lfor(i=0;i<=18;i++) ) R' z* q6 g* z( |4 Q e, C, ?' p{- r2 F: r! ]; X I* A# F0 A# t setcolor(1);' v5 Q8 E8 E* c6 a3 s- m+ i& g2 M rectangle(x0,y0,x1,y1);; T& k$ ?9 F; `) L! m7 D% V x0=x0-5; 7 X$ i e' D2 sy0=y0-5;" Y7 X0 D0 w7 P* A* K2 d x1=x1+5;# H- l0 ~2 Y3 R3 w) Y8 ]$ j- p* h5 u y1=y1+5;8 a: c+ y7 B4 r; }% V9 l& L# L }' q8 T$ C$ l3 L: |6 n3 r settextstyle(DEFAULT_FONT,HORIZ_DIR,2); $ a* @1 `) k: E, c9 z! P9 mouttextxy(150,40,"How beautiful it is!");% N+ t! Y! e- v8 h% j line(130,60,480,60);- z8 C( V( O; ?' Y$ S2 w1 ^ setcolor(2); ( M: z3 k; `2 T: U8 L% Rcircle(269,269,137);3 ^* H% K( o8 I. @) ?/ B } w" C3 V p0 N) A============================================================== q& P1 o( Z# `) z9 x 【程序59】7 R4 s' g* f- e2 _* C4 v 题目:画图,综合例子。! t. |0 I2 w/ z8 | 1.程序分析: ( D- `! }0 S$ B7 y: R+ g2.程序源代码: / Z1 A* {! _6 b+ p3 Q# define PAI 3.1415926 ! I7 y% T9 K8 X, T# define B 0.809 - O2 G* [+ H( I b* o9 S; W5 a8 `6 H# include "graphics.h"/ ^" X4 ?# f6 ^& L #include "math.h" % V5 P0 E5 c. Y) Omain() ! k" d( k2 f6 G' S( I{, q# B) X+ J4 F& m1 \, o) u int i,j,k,x0,y0,x,y,driver,mode; 4 t0 x- ?+ m' J" ?float a;1 ?* ~) X' Z5 M/ Q3 d1 C5 H% O driver=CGA;mode=CGAC0;/ c/ |* [% Q9 a' R: r. e! K initgraph(&driver,&mode,"");, {( Q q2 R6 j/ s8 g3 I( F+ y setcolor(3);2 W* `( r( g; y/ z* | O0 @; M. I setbkcolor(GREEN); & y* R: ]: L" P: y$ `9 Rx0=150;y0=100; + |4 Q7 ~1 Z+ W! Q/ z& B/ ecircle(x0,y0,10); * o2 |2 n; v4 R' Z# kcircle(x0,y0,20); 5 R: v, M8 v& a$ lcircle(x0,y0,50);' @4 T+ h) n) `3 ?" `6 `5 t for(i=0;i<16;i++) 4 X# j, `2 I: ], Y{ / V/ M. K: o4 u | ^ a=(2*PAI/16)*i; $ Z. s* c, c/ q2 B9 j) Q x=ceil(x0+48*cos(a)); & a k+ _( E, _& |3 i/ h& A y=ceil(y0+48*sin(a)*B); 1 h% U, ?+ [; g( j' c8 W) H' J setcolor(2); line(x0,y0,x,y);}6 Y) Z9 X+ `! k8 m( j0 {4 b9 n) s setcolor(3);circle(x0,y0,60);8 f1 e# j5 {. a /* Make 0 time normal size letters */# k; U$ @$ ~ ]6 R settextstyle(DEFAULT_FONT,HORIZ_DIR,0);3 `9 _3 @2 q3 \$ d. k outtextxy(10,170,"press a key");8 M9 p0 b2 H. H* ~7 j j+ m& t getch();0 W0 C+ I) J: \' c' O& x9 W. ] setfillstyle(HATCH_FILL,YELLOW);# N" ]; I9 h5 D* W/ M( ?0 y floodfill(202,100,WHITE); 6 k& G8 ~, l, Sgetch();+ i; a5 t# h- k; R) ` for(k=0;k<=500;k++)+ L4 D! w/ F4 g { 4 T8 `! A% {( i6 q3 S8 v setcolor(3);3 t: C% z- P/ r5 w  for(i=0;i<=16;i++). a8 N2 S. o( c1 U$ V  {" I/ y* F% g2 D   a=(2*PAI/16)*i+(2*PAI/180)*k; U: M& J" A' h/ R6 Y Y   x=ceil(x0+48*cos(a));$ N6 L. f9 k$ x, e w   y=ceil(y0+48+sin(a)*B);) Y4 A2 v8 T9 t; {   setcolor(2); line(x0,y0,x,y);+ D1 y) S: F9 ]1 d  }: g+ ]* v. ~; x. \  for(j=1;j<=50;j++) 0 p% r: ?: W- m) @3 F* G9 J- U4 ? { $ s, D: G# v! Z& j e* `5 q1 i# ?3 x  a=(2*PAI/16)*i+(2*PAI/180)*k-1; & z" D8 A5 i8 u3 R  x=ceil(x0+48*cos(a)); ! }- L V; [5 @* y+ l% }/ c  y=ceil(y0+48*sin(a)*B); / E/ i" Q$ q, f' L6 y1 q  line(x0,y0,x,y); : N. j, u: |1 v) U6 O" F } * A- R. S y# L: C4 j} - K: i; M j, u# lrestorecrtmode();4 `9 n& K M; } } / \4 [3 X# P0 U1 N/ a! t==============================================================4 g* M( _$ b+ |9 x7 X! f# L, L 【程序60】2 |7 i6 d3 Q3 p* v7 A% \ 题目:画图,综合例子。   2 b" p! l# @% N 1.程序分析:* n! h% I- L/ d6 S0 T: b% r 2.程序源代码:" {$ q* n) i) f; d #include "graphics.h"* D6 E2 r( h/ w7 _7 _/ j9 _ #define LEFT 0/ _3 X2 E3 D$ ^, G #define TOP 0; b8 ]; g1 E& O5 [0 U1 Z5 O6 W #define RIGHT 639/ ^2 k( r7 ^) ^0 J) U: l& C #define BOTTOM 4795 x2 V* Z( Y6 Z9 R0 u ]+ _ #define LINES 400& \# \( }5 E& G9 F #define MAXCOLOR 15 7 |2 x; v" h" x% c9 N, _main()7 H/ w+ D" x9 t y. S* U {, h5 q, l7 q {8 p1 d int driver,mode,error;' S+ V9 w( G' F' _6 g4 p int x1,y1; # h) B$ m& Q7 o. `int x2,y2;0 O" {3 u5 n# k% K int dx1,dy1,dx2,dy2,i=1; 0 V, [* N. ?7 c+ {6 Sint count=0; 8 `/ a, y. [& s& }) Cint color=0;5 ~9 l( k3 g% b& n) _* j, C/ Y5 I driver=VGA; , ~9 e X9 v* i; _mode=VGAHI;9 o) w) u# ?* q- b9 m K& b initgraph(&driver,&mode,"");: s/ s; Q' w* u. } x1=x2=y1=y2=10;! E) x) B/ R' T7 x# b dx1=dy1=2; % _- O" l) ]2 ?1 R$ J S3 u: Tdx2=dy2=3; 7 ]2 `" U7 B9 e: { Z. G$ T+ Swhile(!kbhit()) . O( m& S4 O" Y; j: t" \{5 a8 Y, Z7 }+ [$ X) ?, M  line(x1,y1,x2,y2); : Z4 T( z: c0 V* @ x1+=dx1;y1+=dy1; ! u6 M# a1 D, v0 V! {" _$ ^ x2+=dx2;y2+dy2;, A; ]" |( s& @' \5 L* s5 X  if(x1<=LEFT||x1>=RIGHT) 1 q# ?* ]% Z. ?* m+ g, T1 c! c7 b5 b dx1=-dx1; , C; m: O- s3 j( \2 Q' s* { if(y1<=TOP||y1>=BOTTOM), W# C9 q& T9 W" \* y0 V   dy1=-dy1;- L4 y, u: d6 d7 p3 O |2 J  if(x2<=LEFT||x2>=RIGHT)9 H: p: h, A5 e0 w3 }   dx2=-dx2; / U, k( Y( d. D5 N if(y2<=TOP||y2>=BOTTOM)* ]2 c: M( E! B5 ?   dy2=-dy2;2 } v: N) {! i. s2 b  if(++count>LINES) R% {5 ^2 @$ N3 f5 i4 t {0 q! H! r1 o! N0 K: v- D" E' F, e; F   setcolor(color); {0 ]0 I; o+ H1 ]  color=(color>=MAXCOLOR)?0:++color; * u# }+ V1 o+ k) v }! k- t& z) x3 D$ L } 5 Q: c6 g: V! b% Hclosegraph();( W# X/ B6 T! q5 C& [# P7 t+ K, W }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序1】1 J" h9 ]! }: Y, M; @ 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?/ P, ^; y9 ]% T0 ]- C0 e 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 + L1 f1 ~% f) \) ?0 U      掉不满足条件的排列。 - W# y. S, [9 i+ ~. m M2.程序源代码: 5 N) {- K( D: @main() 6 c( K* |. A2 ?' J$ @9 y% z{6 u0 [; E) \% j5 p int i,j,k; 9 j5 ~7 |& G! n! ]7 O2 b5 A+ @3 Xprintf("\n");4 a/ X7 a, }8 C* p8 L- a for(i=1;i<5;i++)    /*以下为三重循环*/& z$ a' j. {1 Y  for(j=1;j<5;j++) - P, R; y! G* V4 D% \9 i   for (k=1;k<5;k++)4 Z4 ?# h: P: S8 X# x    {9 z/ y+ {) a" z, v; o7 x     if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/ & h! R! H( M! X: C0 o    printf("%d,%d,%d\n",i,j,k); 0 N9 X6 a$ g' W1 r, n; F1 d- e   }6 h2 |* l5 |- u8 O }7 @8 o4 @. x& L) _ ==============================================================: J. Z( m; |- R+ w 【程序2】% K, |" O6 _8 u. Q# g 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高/ _" r4 L; h6 ^0 ~8 i    于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提% M5 ~7 U% Q: Q. M+ L    成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 6 M: b, w: C1 w- a; P! ?: g8 R6 g+ n   40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于) y5 j% a) S5 c9 t0 y    100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?# @* o% O5 y4 v1 b+ C$ |9 I 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。       . ^7 B# Y7 ~& J% U2.程序源代码: / E) F0 c6 @& f2 e: b$ lmain()+ j; C _! \& K: ` { V3 ~! B4 j8 J3 j, n* V long int i;# U, W; C1 G- d1 J/ d int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;% {- U4 M% {( x% L& W2 k/ {7 d' D scanf("%ld",&i);1 i& p" ` R9 H bonus1=100000*0.1;bonus2=bonus1+100000*0.75; $ _% H7 Z- e6 U [- D3 x. D: Kbonus4=bonus2+200000*0.5;0 [+ h! Z U' r/ s3 H0 `, U bonus6=bonus4+200000*0.3; ; `: h! S0 e) f' o2 Nbonus10=bonus6+400000*0.15;; o ]( B+ Z/ ]; y$ v. S  if(i<=100000) % [4 J1 G4 |( T) X- d  bonus=i*0.1; + W* B0 h2 x1 U) c# T7 n1 j( r( c4 |- H else if(i<=200000) % N0 q6 O* b% v3 D     bonus=bonus1+(i-100000)*0.075; , B8 M! w" ^3 J J4 e+ J% M    else if(i<=400000) / W7 E' d/ P: E% o2 k        bonus=bonus2+(i-200000)*0.05; ! v* H/ M) \ }' A+ ^       else if(i<=600000) 9 p! z3 C4 }% E- I5 H           bonus=bonus4+(i-400000)*0.03; : j/ a$ \6 G$ F' V4 d% ]+ {5 m          else if(i<=1000000)7 l9 S' X3 b+ `; e& V, O \6 E1 u               bonus=bonus6+(i-600000)*0.015;5 a9 d3 h: X' y/ h- |2 k9 h) `% G1 S. B              else 2 X- V+ L: J. y! Y% u              bonus=bonus10+(i-1000000)*0.01;9 ~6 r5 X& m" V* [ printf("bonus=%d",bonus);2 z, @2 C( u2 O. m9 L6 o0 f& f: ~4 ~ } - P6 A; P6 [$ e5 P. o4 U * }( n( J# c7 r9 F============================================================== : _$ _, u- c. A% Y' B9 y【程序3】5 A: V7 ^9 |. u H! T 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?; D9 j0 G6 y, f' U. I$ q) S 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 $ L& ~) x' ?9 `& V1 n      的结果满足如下条件,即是结果。请看具体分析: + l( O! `, m# o- X" _. W' R" Z2.程序源代码: : X2 e* ^8 {5 T! V5 M#include "math.h"+ ? d! t: G, L5 k# k. S6 J1 a main() / g$ O/ g5 `) X# w' a{$ j! I: `$ L2 g' v$ V T* r long int i,x,y,z; 9 J- e/ P7 q0 v/ A) yfor (i=1;i<100000;i++) & [% s* ?7 v+ ]4 [! D/ Z { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ " F9 J/ F! F1 F# z, t- S, V9 S& n  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ ( F/ r, y* w2 z, _' T" w   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ 7 e1 [4 G( ]1 {& M    printf("\n%ld\n",i);! `6 I% o, s+ C T, L4 Z  }3 Q6 H1 B1 H) o6 u }8 [4 }3 l& D1 O2 b0 v' ~5 x ==============================================================) f. b$ `1 B7 O2 r: y/ g" Q. H# @ 【程序4】 8 K) [( B% g2 P& c" [题目:输入某年某月某日,判断这一天是这一年的第几天?3 H6 C0 b- a9 @3 r2 D, F8 o 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 ( ]) s: B, e" K! l4 o      情况,闰年且输入月份大于3时需考虑多加一天。0 @! G$ E! D; ~2 E: E: q 2.程序源代码: a: c0 t# y0 ]; \7 hmain(). u* l9 c' v) z5 `$ i1 Y% o { 9 j6 I" s! |2 Eint day,month,year,sum,leap; . B. U B6 l+ V# G# ~printf("\nplease input year,month,day\n");) @3 E* o- c0 m$ O! }( c scanf("%d,%d,%d",&year,&month,&day);- U i8 a+ w$ P* D. c* k switch(month)/*先计算某月以前月份的总天数*/$ D$ f& i" M- p0 h- A { 1 B$ j7 w- Z. }/ c$ G' H6 k5 s case 1:sum=0;break;; j) {- A8 c. d  case 2:sum=31;break; ! V; [1 A4 ^2 L7 c6 h0 K; g; D case 3:sum=59;break; , p9 V% z" _- b s0 ? case 4:sum=90;break;, k9 N# F3 v1 u ^1 q1 O  case 5:sum=120;break;) Q$ r" I W, l! R  case 6:sum=151;break; , Q, ]( }: [/ k" s case 7:sum=181;break; 6 J; w7 f$ n8 E: t: J: u! [ case 8:sum=212;break; 1 d) Q# n4 @* X8 J$ i case 9:sum=243;break; 1 j s' A7 z8 J6 ~! E1 K2 s6 V case 10:sum=273;break;7 y5 F7 S$ t5 ?3 I3 _  case 11:sum=304;break;1 ], B- |- i+ l g  case 12:sum=334;break; 6 B9 `4 f( B$ C% K6 ~+ E9 r0 q# W default:printf("data error");break; + Y7 o: A- @! Z}$ Q. b+ {( m0 \ sum=sum+day;  /*再加上某天的天数*/# Y4 `6 s: D0 I, ?# X  if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/$ n+ h n# n$ a+ v: \2 V. x" s   leap=1; ~1 Y/ r) K8 e/ {* H% ` else0 t; \1 A7 z+ d. W& p   leap=0;, q2 S8 ]; ?2 S4 y* U if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ , s5 o: l$ X1 B* z1 U! Bsum++;# H& C7 r; `: G; m0 m printf("It is the %dth day.",sum);}" M1 q3 m" }) ~5 `( b( x* V+ z& }! Q ==============================================================, q/ I6 k, k6 @" b# v" A3 J4 e/ n/ o+ s 【程序5】 " E# _! e& t! Z9 Q题目:输入三个整数x,y,z,请把这三个数由小到大输出。. W% U- e# E( ^- q n# J 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,5 H$ q- g7 d2 H5 V" b/ y       然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 ! P$ g U6 q9 c, A1 N# V. ?3 ^/ A. P2.程序源代码:0 C$ z/ z0 I' H main() 8 `& ]# |4 t6 d% O {4 t( L7 c{ : u# M# s. z9 ~& E$ a' e0 {/ `( m* |int x,y,z,t;$ |6 G% W6 p& }! M) `; K scanf("%d%d%d",&x,&y,&z); % [9 d. y( {4 X( p- v" Mif (x>y) ' ?; V( |( \# q{t=x;x=y;y=t;} /*交换x,y的值*// D) s C G) t- W if(x>z)9 s7 g0 \0 L9 U5 L1 c) ? {t=z;z=x;x=t;}/*交换x,z的值*/3 a+ F; X) t+ t% i+ L0 s- K7 ] if(y>z); W+ R& a& L3 b$ H; R( p {t=y;y=z;z=t;}/*交换z,y的值*/ $ v8 V0 k! n# Y, bprintf("small to big: %d %d %d\n",x,y,z);/ v2 h1 Y) e1 Y$ V2 ~* T }9 p2 w' X: V" ?. n8 @ ============================================================== 2 m' B8 } n' l; e5 w【程序6】" N. ?$ ?5 H s6 G1 k( ? 题目:用*号输出字母C的图案。+ r" @9 D0 C6 H) Z9 K/ f 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。+ k C, F6 g2 c8 v0 B6 ^ 2.程序源代码: 4 ^- o( r8 l1 l#include "stdio.h" - a e- u. I+ zmain() # q( z {( A1 Q0 z& U) o0 o{2 |8 n r. [# Z printf("Hello C-world!\n"); & S, g1 H* z1 i7 [% q0 Y2 S4 Mprintf(" ****\n");: ~1 o: h+ z( b/ y9 m# x printf(" *\n");' G( g' z( F+ R+ w6 }. w4 G printf(" * \n");- K9 X4 |; O+ v$ S, \6 Q6 C/ {8 J printf(" ****\n");. [- s' d" q0 O: C/ j1 l } 0 i& ~1 ? ^9 H/ \7 ^$ @0 H==============================================================! j& j" b6 {) F! \8 d, j7 y5 b 【程序7】 7 ?8 ]$ e, x, U. w5 Q题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!0 `& f# ]- ~5 x: a) w0 t+ e 1.程序分析:字符共有256个。不同字符,图形不一样。      3 n7 R# v' T' L2 `8 A" g 2.程序源代码:0 T/ f0 Q3 c/ ^+ v6 B' i #include "stdio.h" - U' R& Q* D3 V }* ^2 pmain() # c: s2 B+ V' _( T. l8 g{1 l5 t3 |) j( k char a=176,b=219; * e; J) D: q/ e/ F+ G$ U2 d6 z: ?1 Oprintf("%c%c%c%c%c\n",b,a,a,a,b);' _7 g# [- u$ t2 N! F" a0 @- _7 D" {# N printf("%c%c%c%c%c\n",a,b,a,b,a);" z& _0 C) K; w4 a printf("%c%c%c%c%c\n",a,a,b,a,a); ' L! I3 j! Y" ~8 e# W# q+ w2 {- Aprintf("%c%c%c%c%c\n",a,b,a,b,a);+ @6 N8 T$ Q& i" L R& q6 ^2 l printf("%c%c%c%c%c\n",b,a,a,a,b);} # { j5 C5 ^) G8 I6 Y==============================================================4 W1 F0 f/ o9 F- e0 I! C3 h 【程序8】) H0 c- k5 g9 u! i 题目:输出9*9口诀。 ( ~( y) e3 c- J y1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。5 F9 U- ]& p: v! _ 2.程序源代码:8 K8 p0 I. D: U8 F; N3 P #include "stdio.h"+ e$ c4 z" a, n main() - e1 z! ? l- n2 ]{# d( V: m, W' z: U9 c) D: v  int i,j,result; + G; ~7 G: y4 D6 N printf("\n"); [; i) s: [# R% e5 A; A for (i=1;i<10;i++) # U1 H" F$ `( [' r1 p1 ^( H& O  { for(j=1;j<10;j++) 4 W: D! {( n* _" C( R+ f    { 4 D+ E& d# @# C. [     result=i*j;# w: }! p, a9 `      printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/6 Z2 `: H; C4 t     } ; m9 H" u7 J7 A9 B0 `0 r# ^) R   printf("\n");/*每一行后换行*/ 0 C1 c' r6 N- s. w) t  }2 t. B, B" p: } } : S8 l2 W p! X0 Q" p A$ o1 A==============================================================% K, B" v. M' }# O4 H' K v) r% } 【程序9】4 F1 t0 `' C4 \ 题目:要求输出国际象棋棋盘。 : J" P2 @* L" `+ M5 q1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 * ]6 X, ~, l6 c' ]( R& l5 r2.程序源代码: " D. ` a0 H" X+ x" \ R' a#include "stdio.h" : S: ]4 Y: \1 j: ?9 a* x9 ?. M7 Nmain() " x# ~1 I8 s+ t& A. Y3 _& ]) p: f9 Q{# X# t- f; [; P/ e int i,j;; R# q7 d4 X. B0 C( ~# r for(i=0;i<8;i++) . Y9 x: ~/ e0 ? {" g" i+ a3 Q% W3 Q$ o! S/ _* ?" u   for(j=0;j<8;j++)1 y( D* O7 [* ^+ l- ?    if((i+j)%2==0) ' s" E, Q1 t, X3 {! B    printf("%c%c",219,219);9 E6 L, P$ e: i# d4 j    else 2 }) v2 `8 t# ]( ?    printf(" ");' F: P9 d+ N. i! w    printf("\n"); : n; C. B( C0 _. ^ } 4 C! y6 v/ ~) Z, k4 |8 j+ A/ j} 7 U7 f1 e8 t; P* Z============================================================== 0 o1 m' J( ^( h/ j# h& r: u【程序10】 ! O) G" S* W# A' F3 ~# Z题目:打印楼梯,同时在楼梯上方打印两个笑脸。 # k8 x, l5 V3 N! r4 |1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。# c' m _; c! G5 e+ r/ i 2.程序源代码:# N8 A, G Z. w5 w' | #include "stdio.h" $ s% X( j: t$ |main() ' Z: ^. z/ L: M$ p& k( X{ & N8 Q4 S& ]8 K/ dint i,j;, E) ^7 ]1 a* r1 z6 W7 g+ K9 d printf("\1\1\n");/*输出两个笑脸*/ * q0 b1 s" ?1 |for(i=1;i<11;i++)4 P+ F" N3 ^+ R/ j5 }# T( H  { y! U: d/ ^8 i. s5 c for(j=1;j<=i;j++)8 F- h3 f7 N' U( S8 z" Z5 E% m    printf("%c%c",219,219);8 T, u: }! f$ Z# l5 x4 ~, N+ R8 |6 u  printf("\n");7 x+ O- N) ?1 m, ? B  }. D: Y: Y0 A6 ^ } 5 P3 i) g/ ?# W, n# }, H# m. g o

' Y/ _' P, J7 ^
[此贴子已经被作者于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 07:49 , Processed in 0.465231 second(s), 75 queries .

回顶部