QQ登录

只需要一步,快速开始

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

经典c程序100例

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

事先声明:

. ^9 {" Q4 j6 X. Q/ g Q( H1 O& U

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序81】/ v" N( m& A" Q/ I4 ` 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 - z! [9 n% H0 V8 @* j5 |1.程序分析:/ E6 ^3 Q4 V) n c' J- w 2.程序源代码: 3 q" G! S1 I5 d' Youtput(long b,long i) 7 d2 j! {9 p0 ?7 \6 y4 N{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); m! p/ Z; H- n# J4 ^ } ' ^% U# s. }3 _8 Fmain()0 Q7 M7 C" d% K' v5 R. `; n {long int a,b,i; 4 z5 T% u" y0 f) ha=809; % i' i" h/ W; H/ u4 R, Y" sfor(i=10;i<100;i++)8 m# T$ h1 R; ^; j1 V5 z7 e5 l& b {b=i*a+1; 8 R+ H6 g* R5 }* J/ t( ?- zif(b>=1000&&b<=10000&&8*i<100&&9*i>=100) : f# P2 T" B" }4 koutput(b,i); } % G% T) d5 ?4 m3 n- g} , S: g) Z5 r& }' M; z============================================================== $ ^5 ]7 M2 h/ h* y【程序82】, g. h8 `. |/ u3 H9 U" `4 P% j4 P 题目:八进制转换为十进制 5 s" d3 E x, ^' h4 U F' F1.程序分析:            5 B( ?1 x( W7 }! `! X# S2.程序源代码: H0 i* w* T% d8 j* w1 [main() 9 Q; i1 }, m2 J2 p{ char *p,s[6];int n;6 ~1 p: Q- s7 v/ J: x; F p=s; * z5 N! \/ x7 @# b8 Ggets(p); 6 h1 L) |, p# h% }3 yn=0;' b' A$ A5 o* J. ]' I while(*(p)!='\0') / c) ], H1 O6 k8 P+ r" t" C{n=n*8+*p-'0';2 }+ D5 z1 C' u' h1 w8 r/ {2 @ p++;}# k" b7 I! w' _ n8 { printf("%d",n);/ F+ k. G2 a/ Z p2 n3 C0 f8 w }" `0 C, x) D z7 m- _3 Q ============================================================== - P9 [( g3 R B# D4 K" t2 i【程序83】 ; r2 M% x/ P0 j K题目:求0—7所能组成的奇数个数。& [& X! j$ P% i) ^& f9 n/ w0 g6 v 1.程序分析:' ^/ L$ i" c% ?* N0 V* C 2.程序源代码: / q, q1 X; b* Gmain() * U* K5 H/ J) Q* U1 ^/ N" R, h{7 B4 p* k) x: R) ^# `" U long sum=4,s=4;$ [ ~/ i0 [4 M# ^+ X+ @' `) ^ int j;& T; Y# o0 }4 W! D- ]: P6 Y) |( c for(j=2;j<=8;j++)/*j is place of number*/ 9 A" @8 ^, m7 t{ printf("\n%ld",sum); 8 M7 n1 K0 y) }4 W' g3 kif(j<=2)5 a. ]/ k2 m8 g2 x" L s*=7;: K9 {. o9 z8 j; ^2 K9 f6 K% O else# S6 a: K7 Y# n8 s0 s s*=8;* B( `4 X+ T: E) I, i sum+=s;} ' ~ v6 k! c) R& Iprintf("\nsum=%ld",sum); * D4 K" l" J4 Y+ e} 5 O4 m: X% D; Q1 v( n- w==============================================================& B1 l! f, k( b/ A% e; h7 I 【程序84】 # i5 B g) \0 w7 J+ }. G题目:一个偶数总能表示为两个素数之和。& V; l6 S; j2 I* K: D 1.程序分析:5 m5 a# n! Q7 B 2.程序源代码: . w; a, f1 x; @/ L5 Q#include "stdio.h" ! f/ F* H$ o5 S5 Q#include "math.h"7 ^# z, C" P6 w( A main() , M' Q# }1 r% T: p$ J; p3 X8 V{ int a,b,c,d; 3 {) O5 Q' T4 S: F/ b6 h' fscanf("%d",&a);) A, U8 B. W( n' T) X1 V for(b=3;b<=a/2;b+=2)% R7 Q. t* `% A( N% L/ D { for(c=2;c<=sqrt(b);c++)6 A3 V7 H" J- F if(b%c==0) break;$ b+ T2 e( h) g: ?6 {" W if(c>sqrt(b)); S; j B/ K) \- w8 K d=a-b;% Q: ^4 L9 o z else p, d0 {7 g1 R4 \. x0 k break;; O G# B7 t9 u+ U! t! A' l5 t for(c=2;c<=sqrt(d);c++) . Z K8 x) Y4 uif(d%c==0) break; & a. g! n. B; z F$ q% `2 [if(c>sqrt(d))+ U* n! H) R$ Q2 s1 U printf("%d=%d+%d\n",a,b,d); , v% z/ Q$ z, s( P& L" ? I2 Y}2 _1 g& h: y8 p } 8 M: Q" u1 E! |" q; J# s0 ~==============================================================4 p8 |6 [) Z+ U e' |$ c* {4 h0 a 【程序85】 : B& _" G, U* Y+ g+ D2 Q题目:判断一个素数能被几个9整除: d# j! Y1 k4 S- y0 R' Y; B 1.程序分析:. \7 U% b. L! ?4 u 2.程序源代码:( K5 T; q4 J) v. a+ { main()8 U- r- F0 W( f G { long int m9=9,sum=9;5 S7 i. w' L, j; H; W# D# d int zi,n1=1,c9=1;+ J3 @$ k# l$ J# N scanf("%d",&zi);- u$ |5 x1 R1 p" D3 E while(n1!=0) V; R+ z3 J$ }. ^* p- J# L% c: A& O+ [ { if(!(sum%zi))" g) o6 P/ X; @; ^% a; [% r n1=0;3 W0 w( k9 w4 t) J else+ ~% ^: k* r& ~ q. Z' t B3 R3 r0 b {m9=m9*10; ) x- ]2 e8 ^; T9 ?) J! [( n% Y/ ~sum=sum+m9;$ u8 t( `; w, ~+ I- F; i c9++; 5 ~! D/ j; A; F& d; @2 L} $ M1 p; `0 E- _4 y}! q7 {. k0 j1 D/ z& @ printf("%ld,can be divided by %d \"9\"",sum,c9);& f6 a6 J) O$ G: U7 i- _' ^0 ` }/ z0 k7 J0 @1 Q- q7 F2 N ==============================================================" Z( q" p/ [- ^. ]2 ]/ j 【程序86】+ y& b5 n1 o7 v2 C7 D; G: d% Y 题目:两个字符串连接程序) t S; V, h2 e) X0 S 1.程序分析:! i' ]% r% _! T4 \2 C 2.程序源代码: 9 j* a$ Q8 t5 O" D6 ~. y#include "stdio.h" " N* N. f9 t" k6 c3 t& hmain()" u( ?3 l# c+ z4 Z0 |8 V6 a& [ {char a[]="acegikm"; ( x/ j% U& w1 g7 t3 b2 P( _. Schar b[]="bdfhjlnpq"; 0 R' c8 b( d- ]: j4 Mchar c[80],*p;6 H6 B5 T# _2 i; z; U int i=0,j=0,k=0;8 A" r: m/ t e$ O& E# p while(a!='\0'&&b[j]!='\0') 8 z, ] B* D; a8 T{if (a. C; G6 C" V7 h2 j" D2 {9 q { c[k]=a;i++;}: ?0 C* K X+ r( J else, u. O! Y: W0 }8 o& K% j! U c[k]=b[j++]; 1 J8 \' `' n1 D" pk++; * \. Y4 N* F8 r; E0 q}5 a2 V9 Y7 R! B$ Q5 {9 X8 ^ J& Z c[k]='\0';8 H2 i5 h4 u4 R if(a=='\0')! W1 @: e" j: Z% W; i) Z5 U/ V p=b+j; * x: q! R* I+ w9 g/ Oelse & J6 M" a6 F) w) Q) F7 ]8 ], Qp=a+i; " [- o* R* b1 N; @9 Lstrcat(c,p); ~/ q0 {1 n( e/ L! p7 ~2 j& ?puts(c); 8 }& S4 o1 [) k}+ o' R5 b; K2 f ==============================================================; H h8 I! C7 H. q1 X# Q7 d 【程序87】( N4 n }! t) P8 D0 }5 E& h 题目:回答结果(结构体变量传递)9 K: B3 M l! l' r8 g5 w2 P/ q8 @ 1.程序分析:     5 \3 Y: m ?" T/ C, V: D 2.程序源代码:& x2 H, C* z; C% I% y3 E5 Y #include "stdio.h"3 b7 q# K' ^& J! Z5 \, ~3 m struct student ; y6 z# R" b9 Y7 ~; X6 y" v; x9 \{ int x;) c* m+ ^; d: O7 k char c; 8 w, n* Z- ^5 t& a, E} a; : {% {# l4 J5 Imain()8 Q9 @9 I$ r: C$ W1 \' x {a.x=3; 3 c3 d- }' x* b0 Va.c='a'; 5 t5 [4 q2 K* H/ @9 j, ef(a);, e! Y/ _+ H* o printf("%d,%c",a.x,a.c); : o* Z" g" x+ H3 u7 g% a4 F}6 S1 A- l* r9 ~- t7 s f(struct student b) 0 j1 a* t6 ?# Z/ [8 ]+ O- k4 Z{ 2 @( r6 ]& s% N8 Wb.x=20; ' I. s9 r' Q: k9 `! ^; Db.c='y'; . j7 J; Y4 _* h: g# ]/ u3 v1 N}; ^1 a; w* j: d9 c& E0 e! k ==============================================================; j. O" k8 ~) }) _7 {4 X 【程序88】 5 T$ H9 G5 R0 M I1 P8 ^6 R# A题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。. {: H+ o N# E8 _6 n# L- [ 1.程序分析:# M1 t# @$ I; Z5 O# N; O. p 2.程序源代码:+ A% r( v0 Q& X# R5 l1 n main(): j& o/ l2 f8 _4 m/ g {int i,a,n=1;$ S% O. r* ~* _ u( T while(n<=7)' K5 }6 g0 ~9 I9 c { do {4 q% x( O( C9 K) Y; \    scanf("%d",&a); : C' r0 B4 ?- u, X! X5 ]7 m   }while(a<1||a>50);3 a- Y. T; C6 ]6 D, p3 _$ m2 i for(i=1;i<=a;i++) " G9 H* j7 U+ b" t7 E; M2 B printf("*");3 x9 T( S& [7 v1 Q' L) _ printf("\n"); : d9 n3 R1 e; T, M" u$ Kn++;}$ C. ^6 N S( j, L' d getch();9 ]( [0 D# x7 e1 n; j/ x* A8 Z' ? }1 c' j0 m! P: x ============================================================== + y" I+ e7 Z5 w, ^6 b$ Q" Z9 ]: Z5 I A【程序89】4 i- h' l+ Q( x1 Y* I7 k. }7 Z0 s 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: ! G$ r2 h' ?9 R! V n4 \& |5 M   每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 & N/ n+ q# [' b1.程序分析: - Y, i" c- Y. Y" H; Y# x2.程序源代码:+ j, Z) z: I5 b8 ^& u. X, O" }% m main() 0 w% X6 S/ |4 e' z{int a,i,aa[4],t;" ?3 f8 M0 y' a, M& n0 L scanf("%d",&a); 2 p) ^: o# b$ S7 k* {7 f. Haa[0]=a%10;( z+ i0 ~ i3 T1 s" Z( h aa[1]=a%100/10; . V8 E* }1 g8 T2 J+ baa[2]=a%1000/100;* a0 n; k M/ }- S" E aa[3]=a/1000;0 f6 ^: y9 X+ Q. @4 e- D, H for(i=0;i<=3;i++). C0 c# H$ ?! k+ ~6 H7 U  {aa+=5;( o, C$ Y8 g0 }. ?9 z/ F  aa%=10; $ |( J* j1 p' b9 f } % I/ M/ ^' [1 ?5 \1 N t' xfor(i=0;i<=3/2;i++)3 H5 h% F+ r! Z* F+ O9 d7 Z T6 \7 C  {t=aa;5 Y) j2 q# A. E, A9 P  aa=aa[3-i];0 O2 c. w9 y" Q4 N6 B( Z8 q  aa[3-i]=t;" D7 I* k |0 {1 @0 R0 x  }. G+ z& ^$ G$ P& S4 C& J for(i=3;i>=0;i--)! ]% l! y# a% ?+ F- _. p8 x printf("%d",aa); * G* Z4 z/ G3 O. \} 4 G3 Z, O4 D' i3 P1 C# J4 \$ ]============================================================== ( S# i- K: q$ ]4 C【程序90】# V2 N1 l+ r/ `+ f) \ 题目:专升本一题,读结果。 2 K% Z8 o! k& B1.程序分析: 3 g7 k2 Q# F& k- Q6 q5 h2.程序源代码:% r7 U' o0 d# U' z( l #include "stdio.h"/ g% \( s4 S) e0 l$ W #define M 5+ t# `3 q9 i$ L( i" O) | ` main() 0 h/ R7 n5 f9 j' w% F7 }{int a[M]={1,2,3,4,5}; . z/ w# U4 ?0 `1 nint i,j,t;: x$ S8 n/ _! f i=0;j=M-1; " c, X& f0 C ]+ ]* p) [while(i6 Z+ _/ ?7 \6 ]4 k; Z! X9 i {t=*(a+i);5 L8 G& o2 F7 q; e *(a+i)=*(a+j);/ ]7 p3 h. d( ^$ Y/ t3 T4 d" F *(a+j)=t; 4 c) ]( e5 H& g" w: W2 Li++;j--;8 o7 {+ }* n5 G }8 S8 @4 F9 O9 ]' O" B3 }7 H for(i=0;i r1 r6 n9 k, ]2 m printf("%d",*(a+i));: Y' M# T; w! s5 o# [/ Q }

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序71】5 p J+ ]1 E9 M2 m" m 题目:编写input()和output()函数输入,输出5个学生的数据记录。 . z1 J9 l9 G. z2 G2 \9 ~# ~3 j- T) L1.程序分析: 4 J6 g5 I( U4 b& n$ Y: m2.程序源代码: # C, g* r; @7 D- J#define N 5 i, H( u- f9 w" A0 ^( | struct student& h0 v! v1 R3 u) m { char num[6]; ) u4 d, U5 t9 @! d4 a( M char name[8];6 s3 d* }0 g( b7 W( O5 T# c G  int score[4];3 m4 ]; V8 g I; e5 K& X } stu[N]; 0 N' B! ~" S( M$ j" ?input(stu)4 `! u; V: A/ Y struct student stu[]; ! l: I( c& _/ N" N{ int i,j; ; P! J$ o# K) d4 i for(i=0;i<N;i++) ! S1 [; W, V& y& e6 J1 @- q8 g { printf("\n please input %d of %d\n",i+1,N); # J0 |% e1 O8 _& p1 J  printf("num: "); $ j4 z [0 |8 m  scanf("%s",stu.num);: ?0 Z3 }7 a- q, K. _   printf("name: ");. s9 n+ G) {3 I' ^   scanf("%s",stu.name); X0 I( d/ @# E, b3 @3 M    for(j=0;j<3;j++) * b0 ^1 r. y) A0 q   { printf("score %d.",j+1); 3 ^$ Q& q" [; {$ G( b    scanf("%d",&stu.score[j]);# }" l; e7 e4 E7 z    }0 L& H- I2 R6 i y   printf("\n");! p- A* a+ Z4 C$ |8 L- U& x4 R0 S  } 4 D7 C! P% D9 C6 Y* Q" k0 r} , O- s% l* L: k9 z$ c7 G) Cprint(stu)0 d( P+ Y0 R+ z- E, L7 s% W' h& j struct student stu[]; " Z2 n: U a; S$ T2 X{ int i,j; 4 q) ^3 \ S' \% v4 @' w5 Rprintf("\nNo. Name Sco1 Sco2 Sco3\n");# e9 Y5 b1 ~# M. J( q/ R for(i=0;i<N;i++) ! N' ~3 P8 l% l1 ~{ printf("%-6s%-10s",stu.num,stu.name); , r8 d+ }$ X* P- v$ w for(j=0;j<3;j++) ( Y0 y* _7 X7 p5 `  printf("%-8d",stu.score[j]); + a) ]/ w* {4 V! N1 Y% n+ a printf("\n"); ( G, x8 a9 u' |9 A, P" ]3 C+ t}+ j0 E& h# Y& u8 |: H8 O }0 P. m( J9 U$ w( v- q main()5 _& C6 \, x* n: W {7 q8 k p8 l/ m7 L, C! ^  input();' f8 k5 q/ n) O$ `# R- R  print(); " k, J; Z# y+ v0 W4 {$ }6 ~} R- W: @& Y A9 C+ @5 K' S4 D==============================================================' F; ]* s! B/ ]6 r& e 【程序72】 # B% i6 J$ N* C$ E题目:创建一个链表。+ Q9 w5 [* r& m. V" i 1.程序分析:           ; C" j6 ]# e4 y1 ]$ ~3 l 2.程序源代码:6 j+ Q- n7 t8 v- g% d /*creat a list*/& |+ ~1 E8 t/ g, N }( a2 l/ P #include "stdlib.h" 1 W& B5 P D8 X$ N#include "stdio.h" ) {2 k8 P8 }5 d9 R- Estruct list ) |, |9 j7 T. B2 u9 [' p" v- C, D{ int data; T; a$ A) F, C% R& Cstruct list *next; 7 P# y- W& J$ U) i& L- m4 C: r O+ u};! y( t* e1 g( w8 |: @3 m2 I typedef struct list node; 4 \- h4 E* h. g" Y8 rtypedef node *link; . |, z7 p) A x) w/ gvoid main() 4 ]* B& N; }% U H+ P% f6 R{ link ptr,head;9 D. W. q% `) M& h; T% g7 a int num,i; 8 o6 D; K9 d& d7 {/ ^" u9 E( }* kptr=(link)malloc(sizeof(node));3 A: l9 b9 j" H& C) s$ C ptr=head; " y! K0 p! z- e# {8 }printf("please input 5 numbers==>\n"); # _- b: u$ v- j0 Nfor(i=0;i<=4;i++) ; G2 G7 t6 T& `: ^2 G) R! n{$ v9 k) l( A' l0 P1 w: P  scanf("%d",&num); 2 ?. e0 N0 `2 J( | ptr->data=num; 9 g- R: o6 p1 s ptr->next=(link)malloc(sizeof(node));6 a, \/ g6 I5 w# V3 @; d8 f: o, _  if(i==4) ptr->next=NULL;5 a* s7 j- I$ F$ B2 e& [  else ptr=ptr->next; 9 {4 ] k, r& T( y} 5 H; H; w0 L7 q2 t# Q3 ]3 n' M8 x0 {ptr=head; " ^5 i/ w$ V5 D6 s; pwhile(ptr!=NULL)( y; C8 g2 A- s8 U. ^% X1 t { printf("The value is ==>%d\n",ptr->data); ( Z' A% D1 I7 k+ \& o% \% f ptr=ptr->next; 4 W% |6 e3 G; Y6 a) ]) w}0 Q+ S; t6 }2 i5 j3 W/ [5 U2 n2 g }3 ~7 b# N4 S/ q, j ==============================================================5 l% R% j+ f: b 【程序73】7 }& H6 f% P6 l+ z 题目:反向输出一个链表。   ) w7 f! G- T, } 1.程序分析:3 B) @/ y5 y/ k' ~, j1 Q, ~5 ] 2.程序源代码: 1 A2 `3 [4 j/ F% `/*reverse output a list*/ 0 O7 o/ b8 O# M% r* s#include "stdlib.h"6 n3 z+ f; k1 A! j5 {: w6 o2 a #include "stdio.h" r7 U2 A. Z* ^2 {9 b9 `& Ustruct list 0 u8 y! A1 T8 R! |{ int data;$ u3 ?% z$ \( ]  struct list *next;, K! W, G( R7 y: C. @ }; + x9 }2 L8 f* i) dtypedef struct list node; 5 E2 R5 F6 h7 s1 v7 T, itypedef node *link; & t5 |5 p- |5 R6 r6 |7 @& ^7 tvoid main()0 A( s B2 @* X$ [4 n+ e _ { link ptr,head,tail;  ( a; Y4 j& O/ y9 T( `0 b" p3 n ` int num,i;6 M+ E) l- F0 O* e4 J  tail=(link)malloc(sizeof(node));( s7 ~: y* H& U  tail->next=NULL; 4 [5 c7 Y9 a- i n- K+ t ptr=tail;2 I) y. e" z" h( A$ f  printf("\nplease input 5 data==>\n");/ R7 }% c F- N5 u9 T" c3 \/ D  for(i=0;i<=4;i++)+ K! U5 x# n$ d0 ?" n, m( p! @  {/ @9 ~; @: {# u! `* Z   scanf("%d",&num); 6 L/ B; k- c9 x  ptr->data=num;- |% m6 U( k9 M s- T+ A8 X3 o   head=(link)malloc(sizeof(node)); 6 f. B7 d" z' V. o  head->next=ptr; 1 G+ I- }2 x3 L+ r  ptr=head; 6 g( S+ x, @4 R% ~# B } ! o9 O* y4 X0 F2 m# \* Eptr=ptr->next; : a; L3 H+ w$ h1 g9 Y, Cwhile(ptr!=NULL)& H9 Y7 {0 J7 @# S- Q { printf("The value is ==>%d\n",ptr->data); # H: r1 B: M" ` ptr=ptr->next;8 [, x8 @ ^3 l4 e: ?: I1 {8 \# H }} $ B0 w% u# t# K: ^============================================================== + w" H8 r! Z8 \1 I0 U, c8 r【程序74】 9 O1 {+ z' G: V! ~9 J; g2 A1 r题目:连接两个链表。- P9 [) ~( @. J9 R: [; b2 s T 1.程序分析: " P2 c+ n6 G1 t: H2 B& O2.程序源代码: d- r" b1 [- x#include "stdlib.h"0 i7 ]% ?( J5 ~2 `# y& [4 [ #include "stdio.h"# u* o# w) z$ H5 k struct list 3 j3 u! e) U" r! N E7 E{ int data;5 r* P% Q, r* Y3 ]$ N% k6 W$ v struct list *next;3 G( F, @5 l4 |% v" b( }+ } }; R* T- P0 k8 W. K( M! H4 ntypedef struct list node;4 \1 ~6 ]1 W1 d3 m typedef node *link;2 d: V' _5 e/ a. @5 b/ B- k link delete_node(link pointer,link tmp)1 s/ J5 e8 M$ } {if (tmp==NULL) /*delete first node*/ 4 [. X5 S& U$ {0 f) @ return pointer->next; 3 H8 o, E7 ^# B! ?( K$ ? Y( gelse3 l. V: V+ k+ a5 \; O) _ { if(tmp->next->next==NULL)/*delete last node*/ 6 y/ r- }6 J: a! ^! v& h4 b+ W  tmp->next=NULL;8 m3 O8 h. b$ H) P6 k  else /*delete the other node*/% `- e6 z" w9 q( A5 |! N   tmp->next=tmp->next->next;+ t( A7 \4 }& T5 O- w" s e, n6 ]3 Q  return pointer; ' \, ?: _2 E, F1 h, f" q6 O} {) W5 j5 I _) y9 _}9 p; a% X( F1 w# T* K2 S void selection_sort(link pointer,int num): _# v, F, R) T- u& X$ }- T { link tmp,btmp; . Z. |1 F9 H3 h2 }) m1 N int i,min; # l6 \1 s. C0 _" x for(i=0;i<num;i++) ! c! ?( j+ v% d) t9 x; D; E, K* x { . _! G3 H& v& C0 ]: O p* o tmp=pointer; * r' ?7 s* b; w' E8 N4 L min=tmp->data; ! z' t J" g/ g$ l6 k2 ?1 V btmp=NULL; l, B$ y4 O5 V& @: \$ `" y while(tmp->next) ) G5 w( @. `6 j6 T$ Y4 Q { if(min>tmp->next->data)7 J7 ]0 k }; P5 ~4 C- ~* G  {min=tmp->next->data;) S9 a. N: B V3 W0 K8 A   btmp=tmp;6 N# q5 R: q& s- [  }5 [) t; H/ |4 n" _  tmp=tmp->next; 8 \& j. C2 k4 M) A# w+ m' N4 d } $ Y9 j9 @' ~6 {. y/ j2 `5 @+ Dprintf("\40: %d\n",min);9 T3 q+ R% z. U; X3 E pointer=delete_node(pointer,btmp); ) z& W7 z9 J3 K6 r}$ n1 j* k- i+ K! ]' v' @ }: a/ c9 e8 K$ u0 a8 i link create_list(int array[],int num)- X- y+ H( W& d* F7 Q* l { link tmp1,tmp2,pointer;: z. P$ a8 \7 b- } int i;9 v$ m# ]) d/ ?# p+ Q pointer=(link)malloc(sizeof(node)); ' X! R0 [- N- D/ [pointer->data=array[0]; / K( O$ P& r l/ T, Z* Etmp1=pointer;' W8 V- w0 W# ] for(i=1;i<num;i++)# A: k4 t- r5 C8 B* R { tmp2=(link)malloc(sizeof(node));7 o7 o: o7 G, ^' _6 @7 y4 O+ Z1 H  tmp2->next=NULL; " k+ u' U# J6 i y# G0 T# u tmp2->data=array; 4 Q9 K8 d" }9 g, u tmp1->next=tmp2; + {6 D0 J' z7 z# E. M* {5 w( o7 t @) \ tmp1=tmp1->next; 5 m; m( ]7 q( n} 0 f5 [- F' z9 ]& K( ?7 F8 _return pointer; ) o+ ^/ ^6 ~$ s/ \}. B1 g/ ?5 h7 q1 L( z link concatenate(link pointer1,link pointer2) ) v8 H. ~2 `- i \* H% E; N2 L{ link tmp; - R+ n- H t: Y _, q0 c2 Ktmp=pointer1;; L9 y# @8 C1 a c while(tmp->next) 7 M% Y% o. V0 B( i4 @3 C tmp=tmp->next;- S" @8 G N* ^1 w0 s tmp->next=pointer2; ( h( l0 h5 ^0 q* ?9 Greturn pointer1; 2 S; ?$ I+ u' y! ?* L! d. h3 t; ^* `}1 A! U, C) x; C5 V( } void main(void)7 k# c, f# f5 H! B& {9 \ { int arr1[]={3,12,8,9,11};, ?/ i" L9 [# o, ?, p. y  link ptr; 8 _ `! X' \ s" N: ~ ptr=create_list(arr1,5);% u8 l/ i% X# r$ t, N4 ?3 C$ K  selection_sort(ptr,5); 6 V6 R: o/ c- n}- S: R8 }8 T- D+ \ v9 @ v ==============================================================. R) o" H7 ~; {9 q/ s 【程序75】 1 q+ k \" C% S, h; r2 j) `: n9 e) y3 W题目:放松一下,算一道简单的题目。3 G2 \" D3 ?# j* m& c; g8 D* W: k4 y o 1.程序分析: # u7 ~! Y4 ~0 e3 _! |# x2.程序源代码: & m c- O9 v. c/ jmain(). |; a8 ~& O6 Q N9 |& P: X! g { ! r2 Q$ [: h) Q. V8 Y% ~( ]) xint i,n;; O3 @& e& P, j* A5 v; M for(i=1;i<5;i++) / Q/ e4 V9 v! b8 T% ^/ x, {{ n=0; 3 ?" J; C. ~1 k! p O6 [0 L" ?& j$ F if(i!=1) + a+ P- @; L# e n=n+1;( b1 x! X7 u n; z  if(i==3) , v$ A! Z: F6 `/ H1 q+ u. w, \ n=n+1;; [1 [+ h5 S7 ^! G" s; R l  if(i==4) ; q Q0 R$ g- q$ e; t- S+ q0 t1 z n=n+1; n; C8 F4 s1 ^/ s2 {! c& o6 L if(i!=4). o7 q! i) c6 R& @5 L' d" U  n=n+1;. f3 g M6 c5 N2 E5 S, H  if(n==3)/ E1 V, L& c3 Y* H) r$ t3 `   printf("zhu hao shi de shi:%c",64+i); * R, a0 n# q! M+ i% T" @9 d g } 1 c- N3 x d ?9 J) q2 r4 d M; g}% g! Z4 A1 s1 X8 p# I! G ==============================================================/ d! D; G& |* r5 y6 {8 v 【程序76】 ) j" N# c* s" q6 n题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 ; {6 K! Z: Q: y* Y: m$ C. A   1/1+1/3+...+1/n(利用指针函数)" c) }5 \: v" `7 a; C/ _8 M" P5 T 1.程序分析: 5 k c f! f+ b3 m4 l3 ?' B2.程序源代码:; x# X) T5 @- g& p( Z# h5 o# d: F1 s main() * i2 F& L6 W @5 X, O#include "stdio.h"4 M# A D0 f# S# i main() 2 j6 g+ A( h8 P7 } o) W{! X# \9 m6 i/ y! l float peven(),podd(),dcall();4 Q K. j5 A# F ^; H4 _ float sum; 4 w' O2 y4 A* j5 q# [: V Kint n; 1 F6 r; ]: b, Qwhile (1) " f& _8 a; [1 h) { J5 I' Y{ : q# f2 r& a% J6 \+ e, P& t; z scanf("%d",&n);% \4 b/ J) w. H; Q/ h* f  if(n>1) 8 G% B3 ` V9 J1 G5 P% N  break;! e6 e# h" g* u. S2 P1 g+ S }0 q, B- N) W& K4 T! K# I if(n%2==0) # |( Q9 }3 k$ w3 v' ]$ J- V{, X3 O* _+ ~# M. z! x. \$ v  printf("Even=");: p4 h* L2 B+ }" ~+ b4 [2 [  sum=dcall(peven,n); 4 v! d" V+ }4 O6 N8 ]' j}8 @/ h" g8 u, R+ }; g& { else' G, d) A) J' N2 w7 u: k+ Z: p' \6 m {' n* d/ ^' T- `- ?  printf("Odd=");1 Y5 f& P! S7 ^0 H9 Z1 k  sum=dcall(podd,n); 3 L. r8 N& M% ^! \' Y} 8 B1 n0 \& I: o, Vprintf("%f",sum);9 w3 S w9 R* K, Q' ?/ v- r } 8 c4 h8 X9 p- S# I7 B, P8 x7 rfloat peven(int n)/ m2 P3 |- {% v {9 G$ Z. j8 w5 ~2 c! r; I+ o$ F float s; 1 k+ K. \: F. t- i h* P4 @int i; ( A, ]1 J- B8 H* X w/ gs=1; ( `* a& z& v7 z* b, Afor(i=2;i<=n;i+=2)" P0 t) P: T' ?8 v  s+=1/(float)i; ; N% u) o, @! J7 g4 D1 @. preturn(s);' Z S, w% b D" X( V } . I% X: B. p( Q/ A5 B8 Jfloat podd(n), J8 i( }( Z9 @ int n;" {5 U. M T1 f/ M/ a9 Z { ! V/ o" d; z( i' \ Y$ mfloat s;% L/ _4 ?3 H: T. P; i; L1 m int i; ( v& P& r$ v+ h9 js=0; 0 P+ ], y& X+ ?' o) ffor(i=1;i<=n;i+=2)5 t, n* v9 e1 H  s+=1/(float)i; , D2 o1 |0 j0 |7 q4 Ereturn(s);9 q0 X, C$ P" d } # [! K' _% ^: H& l# |: hfloat dcall(fp,n) 1 J5 U. F2 z. {float (*fp)(); Y8 q+ j/ H/ G7 H0 F1 C, _ int n;7 M# e/ H9 O2 }6 I: W( a; ` { ) t$ s1 }8 ~( n3 pfloat s;" b! I e+ o5 y ?. Y$ @( @$ G s=(*fp)(n);8 M& X7 N! V8 Q) }/ W5 e. z- f return(s); r9 S: {: I! r } * b7 y( Y" E# `4 N3 K: I( C; w============================================================== : i7 ~9 F) W% u【程序77】 # o( x2 p$ ~: i7 h9 Y q0 k) j题目:填空练习(指向指针的指针) ( o( Z/ b7 h& q1.程序分析:     8 |4 L( U) a. j( \, k4 X 2.程序源代码:/ t8 I( q$ k3 v+ [" e main() ( c+ b6 B5 F( d0 R5 S3 ^{ char *s[]={"man","woman","girl","boy","sister"}; 1 D! G f, u q8 u5 H" R+ H4 `9 \char **q; " W/ F: {9 y B; W9 m8 k! ?int k;3 R. ]0 f/ q) G for(k=0;k<5;k++) & E! C7 i! u# _ l& {{       ;/*这里填写什么语句*/ % q% g4 ?3 Z- r6 f) l' z! L- i a printf("%s\n",*q);' l. T/ q! L- J! g. w0 l) E } : A- v( B5 @1 M/ h} . A1 |, `5 E+ p$ s$ A+ W9 ^3 r- X" G============================================================== # K) _1 F* g$ i【程序78】3 s' s7 Y1 x3 y+ M. `' P 题目:找到年龄最大的人,并输出。请找出程序中有什么问题。 , Q/ H. W9 S* g; B6 K1.程序分析: n8 z6 o! W; Q* y0 g+ G" r8 u 2.程序源代码:! q( M8 Y* ?, R0 f% d, x% q #define N 41 o- R- {7 X6 w2 l8 c- P3 l #include "stdio.h"" a- H& ?- c* h9 u1 h static struct man. y6 I/ x* P) z | { char name[20]; 7 G/ N6 B! X8 lint age;) @! Z# [) a: j7 h } person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; 7 H$ ]( T9 |3 `& umain() 4 \$ C- p; e/ N. I% O/ y{struct man *q,*p; 0 X0 v7 x) B: R7 Oint i,m=0; 3 X& D' t8 t3 K: Y3 K7 B' q, M' h: yp=person;( u- z" f4 r- J, d1 r for (i=0;i<N;i++); X3 C, Z# j' |, u2 b {if(m<p->age) @( G! T R, q4 \  q=p++; & f0 I; s) a3 j, P2 U3 A m=q->age;}! X' V( A7 |4 L" B1 a9 e4 `) { printf("%s,%d",(*q).name,(*q).age);8 \/ x* O7 {5 [ } + ]1 Y* O6 A/ M( |==============================================================. D' Z' g7 x% G5 w 【程序79】 4 g9 H" T- P+ j1 Z题目:字符串排序。 + F5 J, b% L9 V; o) `! Z2 } n* J- A1.程序分析: * |; r" F. n5 }! W4 e; b% A2.程序源代码:3 K) [4 B- K- t0 y9 Q0 `: |/ K main()$ S3 T* I' P; _2 @ { % @# D* s. c; ?/ lchar *str1[20],*str2[20],*str3[20]; . H" i l, B5 k& _2 Lchar swap(); " }) S$ k7 o! V: }4 {printf("please input three strings\n"); 4 b8 o' g8 g! xscanf("%s",str1);9 F& K+ @- N+ t scanf("%s",str2); # o. q& E# I: |. o/ T' O# w+ ]) Zscanf("%s",str3); + t( K# g# B! e) Q( zif(strcmp(str1,str2)>0) swap(str1,str2);6 N. O" t- ^, g$ Y0 ~ if(strcmp(str1,str3)>0) swap(str1,str3);) S$ h7 f1 |3 I( `2 k5 V if(strcmp(str2,str3)>0) swap(str2,str3); - s J$ O. A- F1 k! @0 n* Q5 Iprintf("after being sorted\n");5 H7 C2 `4 {3 q- W0 S printf("%s\n%s\n%s\n",str1,str2,str3);$ e$ N# b" }' l } $ `2 y, \# h' N2 ichar swap(p1,p2)' X7 n6 u' S' l6 H. V* r9 P% q char *p1,*p2; : `# ?5 C6 Y- c, x8 D- w6 G5 L{ 0 n0 h' f8 T2 Q8 d( U. Cchar *p[20]; / L4 x' K. B) c. ?* k7 M) y# [% bstrcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);4 ?: ]! ]0 r! T$ a+ o6 c4 r$ E' C }) ^3 T$ E, Y# [- a) C* @# |2 n ============================================================== 4 u+ O5 e% F; i【程序80】 2 v( G5 X7 @" h! d# W题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只1 W8 c. \- }' m4 s6 z    猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了; b; B5 C: |; C$ }8 Q    一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, % w: j* A4 ~. t& S0 t! p" {. Z   问海滩上原来最少有多少个桃子? - }, F1 x5 H' C9 |6 n: U5 {* q; o1.程序分析: 6 a% `, y1 w0 b; C( O2.程序源代码:( E$ m4 `% h$ @; T! r4 D main()$ g' L8 z2 R# C* I4 q. |/ O/ N/ k {int i,m,j,k,count; / v( j7 t! n! x9 p d* b1 x/ bfor(i=4;i<10000;i+=4) 6 P5 \. b: q1 \# p{ count=0;8 K" d R4 \- L: I m=i; 9 k( D- L6 G: E& ^for(k=0;k<5;k++) 8 D( n* D2 m& L) S4 z9 o0 ?{ 4 F+ D. [: `* W9 J( K0 _2 g" H+ c j=i/4*5+1; `; R- S& ^/ S i=j;8 \- T; | {( r, o$ U  if(j%4==0) : Q+ k% R4 ^7 Z1 q  count++; ~, x; l+ O/ s3 } else3 P; T8 H- ^1 ]! F- |9 R3 t8 d# a   break; ) m. {# |: Z+ s- G8 x}5 I% g6 o/ A# b% e* n  i=m; 8 p& t; [! u$ O# E. P if(count==4) : f* Y/ w2 l1 S" i7 l- T; @ {printf("%d\n",count);+ z7 t# K3 x2 R- J3 ~   break;} ( k- y" y7 y( B! ]7 l3 h) ?} 9 O T, F5 P V# M7 m* R. D3 K7 u}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序61】' O. k6 S% P3 a/ Y' G 题目:打印出杨辉三角形(要求打印出10行如下图)    % b: c# [: b8 t, D1 N1.程序分析: ' V3 R" s2 T: Z% ~' r       1 , ^8 m6 q2 |( |+ _% D H( p. D      1  1 , @$ }& V" P0 _4 ?, t C% m      1  2  11 M3 C- @( {. H p       1  3  3  18 w$ W7 m% F! C" r A       1  4  6  4  1 ! ~+ Y& p5 m* u& x! l: {( [1 a      1  5  10 10 5  1  H3 z# K5 d K. P2.程序源代码: 3 p$ ~4 w% v6 _' L; f, [main() 4 P0 i7 A m9 Y e{int i,j; & ^$ [# f4 b4 p( Oint a[10][10];' l" S- }: ]$ q8 ] printf("\n");/ j* S& E8 L$ G$ X/ M( j. t for(i=0;i<10;i++)6 k J' J; j- w: c$ s  {a[0]=1;: }0 ]- t; w% _ \9 C" V  a=1;}/ a$ S5 W: S$ Y1 r' G for(i=2;i<10;i++)" f6 ~9 A# A; }" E  for(j=1;j<i;j++) 0 J( d9 v1 F9 w( y2 | a[j]=a[i-1][j-1]+a[i-1][j];- g# J. H) B+ E$ @- v for(i=0;i<10;i++) 5 B: P6 b1 S# x& N1 G$ } {for(j=0;j<=i;j++); x* ] c* J4 w M: B$ o  printf("%5d",a[j]);( z/ w0 k% e$ f. w, k  printf("\n"); , |$ |( e6 F8 b' N! Y } / n8 [0 }/ v; ^0 ~: q N' Y6 e; ^" j2 H} . B1 }% v2 v' k============================================================== & {% J- C/ _. i" P* ?【程序62】 ) D$ E0 E' M# `( B) p w- G题目:学习putpixel画点。 ( Y C, Q. I- `. g% F2 w8 v1.程序分析:             0 Z" ]1 b0 A! H" j M/ m+ X2 I! N2.程序源代码:+ ~. C# c$ _( |4 _' o- j% b #include "stdio.h"0 [ g- C8 P; Z3 \ #include "graphics.h" 1 D4 c8 v- c: lmain() . I. Z- ]% A a8 I4 C# D{1 l: v X5 m$ u8 @; t0 s2 G" T2 Q int i,j,driver=VGA,mode=VGAHI; : g5 ~( O5 N3 T7 V' b1 `initgraph(&driver,&mode,""); 5 \( n& [" x) v7 v6 t% msetbkcolor(YELLOW); # d. f/ T5 h( E4 Gfor(i=50;i<=230;i+=20)9 e- g# W, R* P( \) z; H1 B+ g  for(j=50;j<=230;j++) * N6 @3 c$ @; V9 v* N putpixel(i,j,1); . `) `$ g6 S6 p# l( @ T4 n, xfor(j=50;j<=230;j+=20)" i$ n" i* D6 d) v% ^1 m7 g  for(i=50;i<=230;i++)- o: X8 T' n% M- D  putpixel(i,j,1); * I' i" W4 d$ a3 p} 1 \! Y$ W: i6 c8 d1 R" B7 r============================================================== ( F$ ^" q) U5 ^2 {% r z" f9 P7 D【程序63】 ; u) ?* p4 q" s! U& e题目:画椭圆ellipse   5 e- C9 T7 X' \- L3 S, b 1.程序分析:0 n8 N4 V. Q7 i: O% a+ B/ o2 L8 F. W" o0 J 2.程序源代码:0 b+ }) A" N; M3 p: y% d% a #include "stdio.h" @4 y- [) K* G0 P#include "graphics.h" 4 \* H9 c6 O# s" l( N# p#include "conio.h"* \# O6 y$ D7 j) B; W6 c main()8 K* J/ d1 O# m% H; S; _ { - F- \- I: B" l# jint x=360,y=160,driver=VGA,mode=VGAHI; & L$ e/ P. g7 h$ p, s# e Rint num=20,i;* S; p _% r$ Q% J/ p int top,bottom;6 t+ W; M+ {$ q6 J initgraph(&driver,&mode,""); 9 p: {3 ^+ y$ S7 P8 Ltop=y-30; 6 \% n( V! W4 g$ W0 `2 ubottom=y-30;6 J# q( x2 ~6 M X, u for(i=0;i<num;i++)/ t1 ?% @, f2 V' J$ `" w! a {' M c1 O; B+ Q4 L: Y" j* R) M ellipse(250,250,0,360,top,bottom); W5 q8 ? @- m4 @0 } ktop-=5;' E/ `$ p4 m) z. O bottom+=5;. d @! K/ _$ V. q% X }1 ]. M/ { S- a. M& ?6 O8 Z getch(); 5 t( u. s- y6 D' a1 T% L, F% J}7 S ^' B; a3 `! d* T9 a; R! ?+ r ==============================================================& g: N3 L7 ~4 \( C2 u 【程序64】 : W% {" M5 x' L8 h. G题目:利用ellipse and rectangle 画图。& V1 B3 J4 j$ ?( D 1.程序分析:) ]/ \4 S; _# O, b" R- K0 a 2.程序源代码:+ y6 d+ D" W6 r8 N #include "stdio.h" + |& [ i; v+ Q+ N#include "graphics.h"- p- K0 r$ G, u #include "conio.h" ; i; {0 o# k: r) ]- o0 r3 ~main()# q0 z) C, t* a( o { ' ]7 w& D9 r5 W) `- ~$ g. X) {int driver=VGA,mode=VGAHI;) c7 S8 Z$ [" |$ V5 i; @ int i,num=15,top=50;. s% u- _' I& Q- _7 k int left=20,right=50;4 ^: c8 V4 ?$ K' z initgraph(&driver,&mode,"");/ r& E& b. k% k$ A$ B for(i=0;i<num;i++), U( k5 X% I: Y6 I: W# W { * Q g9 ^' P& Kellipse(250,250,0,360,right,left); & m0 w3 n6 o- n3 W2 p& Fellipse(250,250,0,360,20,top);, ?% `* l- l1 D/ ^. {0 d rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); * u, I4 m4 C$ Eright+=5;2 N$ N, u3 d. c# [8 w left+=5;/ s7 E& n' A. S& S: n top+=10;( M$ b( x4 |1 {/ \, t% t7 u! a }: I* s; ]' X1 p getch(); 1 ~. o( Q' x1 P} 7 ]5 P0 J. I# g9 M' N) I============================================================== # `" |0 E x* `2 `【程序65】 / h* M1 K0 D( e: r/ k题目:一个最优美的图案。    3 c8 W2 C" j8 E [! P1.程序分析:9 L+ z r6 n4 I: A 2.程序源代码:& ?: h9 H7 K& `* E- [9 }' l #include "graphics.h"' W' _0 T$ w' K+ z& Y* S #include "math.h"- J; \- I4 u$ j* E- N9 H+ C( f2 u #include "dos.h" , X' Z7 @ Y- C% v) }# @+ S( G#include "conio.h" + [/ K7 Z0 E; ^1 R0 S3 a2 K#include "stdlib.h"/ Y- x' J4 q( e! q8 @# [# j1 W #include "stdio.h" ^$ f3 Q2 e' |- x4 C+ o #include "stdarg.h"& k/ a, i) S+ V9 H& q7 l L3 G #define MAXPTS 150 B c, b S1 D) p #define PI 3.1415926/ J" r# S6 i+ \1 g struct PTS { 1 x' g( r) |; o9 `. l7 Jint x,y;2 H& U5 s" t' O4 U! v" t! ?, m };" Q8 e1 B! z; U* r3 v6 r8 ?- f double AspectRatio=0.85; P7 @$ a- S8 H; y c$ t Y+ U5 Uvoid LineToDemo(void)" S$ ~: o5 V0 u/ ~7 [8 b/ Z { y: e5 ]+ x1 K, v9 B: Kstruct viewporttype vp; : r8 s6 ?. O7 estruct PTS points[MAXPTS];& D1 N: k0 U& W# E3 H1 W3 u' e1 l int i, j, h, w, xcenter, ycenter; ( Q7 h) Z- [" j; t1 Lint radius, angle, step;* W0 i4 {3 ~' C) J6 P/ V double rads;7 ?# Q/ g* B( {! p printf(" MoveTo / LineTo Demonstration" );/ T+ O2 z8 {1 g getviewsettings( &vp );& w s5 K$ ]0 m+ S+ K8 h6 D h = vp.bottom - vp.top; 0 z6 d+ `; Q n1 \7 _/ A! b& Nw = vp.right - vp.left; 3 Z5 v, q) G0 S( E, oxcenter = w / 2; /* Determine the center of circle */' T( y' e" Y2 f1 t" X4 D ycenter = h / 2;& ?& n F7 \+ I$ @ radius = (h - 30) / (AspectRatio * 2);2 ~. T# _# C& X% ] step = 360 / MAXPTS; /* Determine # of increments */ 1 W7 v/ G( i- N$ f/ m3 uangle = 0; /* Begin at zero degrees */3 w: N8 r; x6 U% I; ~1 V for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */; g6 E" o( B2 q4 r5 c1 Z" m) x$ \/ O rads = (double)angle * PI / 180.0; /* Convert angle to radians */6 E) H, V6 h- X y6 O+ d$ y points.x = xcenter + (int)( cos(rads) * radius ); 0 ]- ?9 q& V. X* T/ r; gpoints.y = ycenter - (int)( sin(rads) * radius * AspectRatio );9 A# ?, M- z' r1 ~7 j0 _: [ angle += step; /* Move to next increment */ 9 q" b2 \, [. l" {7 `! H$ \} 0 O9 t& K* j7 ^+ A, ]! lcircle( xcenter, ycenter, radius ); /* Draw bounding circle */* e# S' X3 |, h4 X for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */ 6 B2 N: x4 `# E" T/ O+ W: ffor( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */: a$ ]* S! {" @* Q) _* e8 ]% ^ moveto(points.x, points.y); /* Move to beginning of cord */7 J0 m$ P: O9 k8 f. | lineto(points[j].x, points[j].y); /* Draw the cord */ . n" M2 Z% [6 z* b} } } $ p8 H) {+ X6 P5 t9 r) X( y7 }main()* o+ C% ?5 i! | {int driver,mode;; ^. ] p2 A* B! k$ v% [4 @ driver=CGA;mode=CGAC0; ; P9 e$ s& {& p3 l2 Linitgraph(&driver,&mode,""); & I" P+ j( f$ E2 n* B% Hsetcolor(3);0 |8 ]1 S( q+ P ]% {9 f; b setbkcolor(GREEN);' J) m! j8 b& K J LineToDemo();}6 W$ p V2 i. M, f0 v6 X ==============================================================( V' o% L+ i v$ `) h' K/ O 【程序66】 # k7 H0 [1 S) N题目:输入3个数a,b,c,按大小顺序输出。   4 o* w* j! d. r3 ? 1.程序分析:利用指针方法。5 I+ ^) [* h- e" ]$ T% w9 c& G 2.程序源代码: , e5 _& }. m. ]: K, E, y# G) a/*pointer*/ " D" E9 h _7 m1 V& `main()4 H, s4 e: z* F/ B; \: A* l6 C; m8 y {' f( z3 D( L* Z" a2 O int n1,n2,n3;) ?/ u4 V; q! _! x int *pointer1,*pointer2,*pointer3;* m$ \6 Y6 b8 d1 U& B/ F& k h printf("please input 3 number:n1,n2,n3:"); * Z! j! M: t5 R" Sscanf("%d,%d,%d",&n1,&n2,&n3);. u( Q/ s* \$ O pointer1=&n1;1 A1 ~/ e6 T; e* f9 _9 ` pointer2=&n2; . y: ?3 z2 i$ _9 v/ fpointer3=&n3; ; B8 O% T' f+ Z* p6 u9 ^0 v+ kif(n1>n2) swap(pointer1,pointer2); 5 }3 {7 G; k( N" N1 kif(n1>n3) swap(pointer1,pointer3); 2 V* }3 @) |8 @" `if(n2>n3) swap(pointer2,pointer3); 5 E+ u& ]& R6 \+ c( h# w% bprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);5 ] z& A0 r( i } 2 F; M. z. U) _9 N; Sswap(p1,p2) [" Q/ i4 V! L- m int *p1,*p2; 2 z! n$ l; L6 ~* d! O5 q{int p;9 h! O' `8 _) k/ D p=*p1;*p1=*p2;*p2=p;- z' O1 R" w* }0 h }, Q# R# v1 B3 @' @' ^ ============================================================== 7 X9 g/ F. X$ G" {8 m: ]【程序67】 + }. q. m/ g0 O6 L4 K# I题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 8 r3 T7 o8 D2 Z# D) C3 A8 C0 R9 A1.程序分析:谭浩强的书中答案有问题。      " q1 j+ S/ P; h 2.程序源代码: $ e, z$ x9 ?$ Imain() # _8 b+ k. e; _- P5 {4 @8 C6 \ A# `{. j8 f7 O# j4 c' j. b* \ int number[10]; : b7 _5 [( V: ]% D. P4 oinput(number);& i8 [7 [' D: w1 g" m0 R" B6 V max_min(number); 1 F( L8 B7 Z; M% toutput(number);( B0 c$ Q# Q! A6 q } + x- K& M+ |3 c2 i$ Z0 cinput(number)- ~8 I! o. _/ w) J5 i( O int number[10];0 a. S/ ~6 z4 G! e" F {int i;$ e8 K, N+ C2 H9 \ for(i=0;i<9;i++): M* o# s6 I1 h1 V3 R  scanf("%d,",&number); 1 |. `) ~$ v4 m0 O& n1 S4 d scanf("%d",&number[9]); $ p# @+ _" R, ~$ R, D( Z9 U c}; O) n0 d. ], M max_min(array) B* p( d/ N5 h i+ c l7 O int array[10]; / T" Q# s" t7 O" k: z+ x{int *max,*min,k,l; 3 ~9 b; V" h4 Oint *p,*arr_end;5 u! ?1 G' l8 f! F# Z G4 d1 @ arr_end=array+10; + J8 U/ @" y& V9 E! @* A9 Xmax=min=array; , b6 o$ a E9 i# Z8 zfor(p=array+1;p<arr_end;p++)3 R4 @) K2 {1 s2 N! v4 L  if(*p>*max) max=p; / W% ?) U1 ^ ]- j4 a else if(*p<*min) min=p;7 ~6 O9 {- j7 o( d& g  k=*max; 4 v8 r0 o' ]2 J6 [! k8 \+ v l=*min; ) g6 c; w8 ?% M2 j *p=array[0];array[0]=l;l=*p; / w; N1 ?; d" x' V( F1 K *p=array[9];array[9]=k;k=*p;8 {; i" m2 P+ W9 }& d. E  return;/ t5 s+ ]8 m& i# ?* t } , ~) b A# @ u( {- w$ O) foutput(array)3 |' j% t- i+ s- C6 S int array[10]; * _' \* F, o' k: o4 a7 r V{ int *p;- ^: T' A- `, J, W' F& _ for(p=array;p<array+9;p++) % x# w! T- L2 t- D6 d( {1 U6 J f printf("%d,",*p);) W$ O e( r" ~9 l printf("%d\n",array[9]); & W! ^! a3 @; o" d} # f+ I9 A% ?% u) }3 W==============================================================! k5 H! e+ u+ P! k N 【程序68】 2 T, N! U; A b题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 9 g/ {& W4 b+ @, {1.程序分析: : C3 Y1 W& u$ p2.程序源代码:1 I9 k# \( ]0 A: I main()8 q0 s& E* n6 }& ^4 o {, m! r2 J" U5 t; l7 d. L6 E) D int number[20],n,m,i; ! ~& M4 q+ @* l6 W4 k( Vprintf("the total numbers is:"); 1 V H0 Y7 [% P) p1 \scanf("%d",&n); # |- z3 w: T$ E/ x! R' rprintf("back m:"); % N( g" h: x) b6 Qscanf("%d",&m); 9 Q2 z- T N7 `$ a! xfor(i=0;i<n-1;i++) 6 T: `- h& O+ h: \# w" `6 Q# A scanf("%d,",&number);% X* s U3 B& T scanf("%d",&number[n-1]);. h ]* C/ B$ e1 N1 \$ u move(number,n,m); & T& ?8 R- \& p& h% I% ^# b, Qfor(i=0;i<n-1;i++) / n4 ^( t* b5 {7 A printf("%d,",number);$ d* H0 O4 x g1 d0 ]9 X printf("%d",number[n-1]); , ^: ], W% `, |/ H7 y3 O0 b0 j} 1 g" x+ m1 i ~7 fmove(array,n,m) 9 ?$ E$ O! O# e/ q2 T2 wint n,m,array[20];& S! O6 M" s# G- p f: f4 y {* j" f" y, j/ j% s& I int *p,array_end; 9 z" u9 ]! k! a7 barray_end=*(array+n-1);7 i: N/ o2 c1 s# F: x& o for(p=array+n-1;p>array;p--) 7 F! ?; E& r. @9 h* S/ d0 z *p=*(p-1);0 D: D: p1 [# O5 e* u  *array=array_end; - S. P5 W* _5 D+ t+ Y m--; " |, p. i9 i5 u$ Z if(m>0) move(array,n,m); # H f) W* j6 i M0 U- @6 U}, S6 a" o" M o' s; i6 l ============================================================== % X( M" h% F/ a/ S【程序69】" i& {" ^. o; J6 G0 e( P3 j; J- \ 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出# K+ g: R! d/ K1 ]- \    圈子,问最后留下的是原来第几号的那位。' t5 C& q5 ^2 g/ X 1. 程序分析:3 X$ q' [5 D/ \0 m 2.程序源代码:: g4 h) N7 z+ S$ W9 [1 G' Q #define nmax 502 n3 {; k! O% F9 [ v main() 2 Z% o- [' p5 `; C5 p X" C O9 y{ , N5 A/ W; z6 n" Z# y( w5 oint i,k,m,n,num[nmax],*p;4 e o: ]" |; Y printf("please input the total of numbers:");: f* F% s* B7 v" Y9 u" ]6 D9 I scanf("%d",&n); h& z5 N( c. v! f# M+ G$ {- v- t p=num; / W* B. D! e4 P$ U1 cfor(i=0;i<n;i++) # k7 ?8 y# l9 L8 V2 e( d+ s *(p+i)=i+1;4 i5 z2 Y0 y) F' D# e. C3 O1 `  i=0;* X0 C9 f3 Y4 m3 q2 f  k=0;/ I2 |# [1 m1 v k% p4 i  m=0; 7 [, S+ E. k8 d1 I8 ^ while(m<n-1)/ _$ i" F1 \' [ M) o+ N, q  { ' F. H/ ^. d& a8 N1 U if(*(p+i)!=0) k++;1 H8 y" I; z7 O9 n  if(k==3) ! {2 N( T( `. g: D y1 | { *(p+i)=0;, ~% e: ~- r9 t. V  k=0;# ^* H+ x; V- @% y, u  m++;3 s( B) W' s& B+ C  }5 |- E7 r/ p3 x g) O3 a i++; 3 @) m0 `6 P5 G" vif(i==n) i=0;' O3 |+ ~/ H0 ^7 h6 B8 @ } . O$ {5 }( t$ G2 I, {9 e; xwhile(*p==0) p++;$ M! z7 A8 A$ C1 z printf("%d is left\n",*p); + @+ b4 [; V1 J* a} * k6 O9 P, r+ _==============================================================1 x- I6 p: s9 i% d 【程序70】3 a; q `* u: F9 a& d 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。    7 ~* l$ h0 x! e. O- g- q' @! \1.程序分析: 7 s. e5 E- m" C! O& o5 y2.程序源代码:5 U% v/ c4 | P5 L2 O9 S main()0 |( h4 a+ l$ J* k6 c. v- Y) C% v+ K- s# ? { 0 A1 b( h- q3 x' k7 l3 a1 z2 sint len;5 q. _* @# @2 e3 f char *str[20]; . \( x; R e; }( }5 O5 xprintf("please input a string:\n"); 6 q# ?5 P) J" t+ T6 G7 oscanf("%s",str); 9 g/ {4 q9 H0 @! B& Glen=length(str);+ ^$ f* x5 I3 q printf("the string has %d characters.",len); 6 x, d( r0 B3 g' ^/ ^' G} 0 S: h5 Q: e) u* elength(p)' [5 z1 h8 ~& s- `; Z7 t char *p; / b) j$ A& _9 k3 Q: j{ % ?: C6 T3 W% ^" Z) y' |int n; 0 T8 N0 ~- S/ u# Z; d- Un=0; 0 Z' D6 x* ^6 E, b" Hwhile(*p!='\0') 6 D: P I5 O3 Q* O9 C! A0 g+ d. B{ % p; a9 h& A/ e5 x; D; }* _ n++;% l) K" m, F* y. g4 Y& k  p++;. M5 A$ n4 _% E6 s& O: r } 7 ]4 F" q' n0 C, o: b* Lreturn n; $ a6 i$ z9 X( M, u& N! ^/ ]6 m' l}

回复

使用道具 举报

韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序51】 7 m ^, q9 u7 i Z$ ]7 E/ ~题目:学习使用按位与 & 。    9 L' [8 @) Z6 K. `1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 . _/ ?& j3 @5 w1 N. d2.程序源代码:+ R' Q# D9 Z" j! e #include "stdio.h" ! d( s" h l5 {2 `2 S3 x0 bmain() ( t1 C6 Y+ J. k4 y# \$ z3 I0 d{ ' x$ ~1 c3 N( C$ E6 nint a,b; # `# E# U. T. k3 }a=077;3 m* H# ]1 k8 C% x b=a&3; + d6 c! N! Y& v j& v7 M/ Wprintf("\40: The a & b(decimal) is %d \n",b);) X" q9 F+ i% y b&=7; . W0 ^% s2 Z. }1 k) b! f4 g$ dprintf("\40: The a & b(decimal) is %d \n",b); 7 \5 Z% `( x) k3 W0 x+ i} T4 ?2 N/ h7 V5 b- ]0 o& Q2 z============================================================== 3 d( x! e d! X" c8 P! G【程序52】 u' b" s; m/ n+ t* i: X" `* k+ N! \ 题目:学习使用按位或 | 。3 n; g' J+ n' Q, N, m* t 1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1             0 b/ W. d: N$ g/ S+ Y2.程序源代码: 7 i; Z3 I9 e% d. N#include "stdio.h" + s9 `2 p7 W: K% ]main() . s: x$ C% z8 {* j n{ 8 y8 ?' u o0 m6 e3 k" Fint a,b; ; L9 s: m% R' r9 t2 E$ w, k* _' R1 ya=077;0 b p4 J9 o0 c$ u b=a|3;( ?# X9 \% t; K, m printf("\40: The a & b(decimal) is %d \n",b); 8 M# z8 U8 h' x2 d. ub|=7; ' {* k+ t& I- |6 h) Mprintf("\40: The a & b(decimal) is %d \n",b);# O1 T: Z9 ^# j" V0 j8 R! x! ?- a }( k3 ?. d6 ?# q ==============================================================) Z) c; ~1 E* c" c1 k# P, [" A 【程序53】. a0 u# l& |5 }% \% f% r7 d 题目:学习使用按位异或 ^ 。    9 M: m% J4 G9 T' k5 c5 j* @1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 & b' o5 _) X* L, `! ]2.程序源代码:, ]% \4 Y3 A, t6 x0 C. Q- X #include "stdio.h" 2 \/ u% Q( o3 S2 Z1 Gmain(). [& ]8 N- k9 s( I {" K8 n1 i# ]: s9 c( b$ e: c int a,b;9 ?+ P4 p/ A5 f6 q/ l: @6 b a=077; + H3 H$ F( N7 cb=a^3;% D2 M) t- ~! j0 S; d7 a8 j: L printf("\40: The a & b(decimal) is %d \n",b); / P3 h5 Z- H ~: Pb^=7; y! x1 T( w3 Q# x+ q( ?! ~ printf("\40: The a & b(decimal) is %d \n",b); - i! q* R8 c7 a: G3 B4 L! N} $ [! z+ ]0 i/ u& T2 P============================================================== ! Z2 \) h% A% A+ A, t: ^" \【程序54】4 d5 w( E$ S: A/ @, Q 题目:取一个整数a从右端开始的4~7位。 : d: O8 x/ g' Y4 j& k程序分析:可以这样考虑: 3 X7 m; x- n$ h7 Q(1)先使a右移4位。, e# O! ]% x& }- o (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4). ~/ Z; B2 y/ h (3)将上面二者进行&运算。7 i9 C4 c: P3 r8 c; ?; h 2.程序源代码: 5 g4 n6 T Q: ~; l, {/ Gmain() 6 d$ U! `7 `! z0 z1 t9 l$ m7 j$ g2 _{ 1 _: B& f8 ]4 g4 p( xunsigned a,b,c,d;; v1 p. ~- \' @3 g- o scanf("%o",&a);) J7 O" x! W: E3 }9 A8 k b=a>>4;/ @0 e* t& V1 @$ a, y- }0 C0 f c=~(~0<<4); ( [6 L' q, i5 }* _# Rd=b&c;9 |0 b8 a% W3 h% B printf("%o\n%o\n",a,d); 9 e2 j2 u { n4 k# T% V}' u6 [( b4 k/ p$ Q4 C ============================================================== ! V6 B& U" |/ A* g3 ]【程序55】 9 v7 ~: X, g& X题目:学习使用按位取反~。   1 D6 G9 `8 ~: K% k9 F) s 1.程序分析:~0=1; ~1=0;9 ~0 W5 e) G2 q+ }. n 2.程序源代码: g- x( z" a! U% U T#include "stdio.h" 3 i! z4 B* W, n# k1 e t# Z/ Q+ }: Qmain()4 O3 ^" [; B b5 @. ]5 ?- }/ P {: ?8 n; D% ^' ?+ w% T0 a int a,b; F6 O) I* k) A- p& U- Ya=234;4 B; b2 \' W) B: L i b=~a;2 Y. ]9 t. t$ e; K3 Z printf("\40: The a's 1 complement(decimal) is %d \n",b); h6 s( A4 {. K4 E a=~a; 1 T( {# ?) n7 rprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a);2 e9 R- B7 {* f {3 g! k } 2 _( |: Y) |4 P" U1 A==============================================================( R! p# A8 w6 o& G3 Y' S 【程序56】 1 O: q$ @& t& N2 T5 x/ x2 k4 V题目:画图,学用circle画圆形。    % v4 c0 X: h) ]1 h4 ]1.程序分析: 3 i/ H) v+ H& P% _5 Q* X" v2.程序源代码: # a g, x) j8 s0 r/*circle*/0 D, f5 f* v$ g( Q" O0 L& F ~9 C. ^1 V/ M #include "graphics.h"( Y! J/ k$ {7 D3 s) g+ @5 h4 @, N main()1 |0 P; O2 a5 U {int driver,mode,i; # D+ e; V! L& Z! b" Z7 L0 {float j=1,k=1;& Z6 l9 v% t% J; O, U: ` driver=VGA;mode=VGAHI;" N1 P: b$ z5 p* Q" x initgraph(&driver,&mode,"");3 i8 _ F4 o+ h- H1 }8 [1 L$ E setbkcolor(YELLOW); , o/ b, g7 i8 F0 _for(i=0;i<=25;i++) e9 q% n$ M. x1 ^. Q9 G{ & z/ k2 `2 G- ^1 y \setcolor(8);& o, r8 d. P& \: U& T) ]1 U! _ circle(310,250,k); ! {: y# ]! A# G) {- w& Lk=k+j; 9 I x# }5 e; | t1 N; Tj=j+0.3; - a5 Q4 W( q0 b}/ {0 ]. D( Z6 O. B% j } - y8 |, m2 N* L' b6 e============================================================== ) g1 I2 a2 G6 R6 L8 H% F: e+ |% p【程序57】9 \+ J: I+ |. h1 D4 E u 题目:画图,学用line画直线。% s; [# S7 m5 ?4 J. M 1.程序分析:           - y1 N, G9 L8 @& I 2.程序源代码:) w) I% Z/ @" E0 j; \ #include "graphics.h"( N$ d$ t, K. M `/ D/ C. }7 n main() 1 v1 ^1 q9 K0 r( s7 V{int driver,mode,i; & ^) s/ i ?6 F% ffloat x0,y0,y1,x1;, ^4 W* [0 y: ~5 i, ?& Z; ?# [ ^ float j=12,k;1 V: i, X1 K% I1 o- t' T1 p driver=VGA;mode=VGAHI; " H4 \ Z; q; P, W# d4 [/ Hinitgraph(&driver,&mode,""); , v7 u& @$ Z8 [4 J) D7 V6 e# Rsetbkcolor(GREEN); # t! g2 P! _' J. i& ^x0=263;y0=263;y1=275;x1=275; 4 d* }6 Q7 S, m' g8 m* w* ufor(i=0;i<=18;i++)( `* Y! Y! y" u7 H# V { 1 S" B0 @& F6 q; f% w( ]$ |setcolor(5); 6 o2 ~# M I3 t( w; Z5 P1 X& _line(x0,y0,x0,y1); 2 h( a x) l3 L$ U$ d& I( Mx0=x0-5; ( j1 H" L& |- w3 z2 x2 ?* `y0=y0-5;6 H T% |$ h2 n; l4 y1 l, _ x1=x1+5;- Y) q! N: K1 S y1=y1+5; 7 Q- {. N0 y% w2 f. O$ e# A# }j=j+10; 8 d+ i0 |# N, }1 S1 J& B} : [! S( c* j* X( Y [/ xx0=263;y1=275;y0=263; ) S5 d* X1 A( Ffor(i=0;i<=20;i++)) K- a" p" u( V$ m$ X! N {. V. ^4 |; o4 [+ U4 o# @ setcolor(5); 6 B& j! \8 x" v# Q6 ^& Mline(x0,y0,x0,y1); $ a1 N6 c7 q7 b, A3 R/ qx0=x0+5;+ y/ e3 [: z5 C y0=y0+5; 4 [9 [# r1 f5 r! _y1=y1-5; # q' q% ^! k* y} / _9 K+ ?' K% f$ O8 P} 8 p! X+ ~: D, n2 i==============================================================4 ~" e+ c' M* k8 p @% Z% n 【程序58】# a3 i2 `/ [. q1 j3 s; g 题目:画图,学用rectangle画方形。   ! @) _: o/ l/ k: M 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。! x5 i2 w9 r$ ]9 G) n 2.程序源代码: , B$ n, m( M T1 ^3 x8 J#include "graphics.h"5 V% s' q" m9 ?/ ]4 v) V main() , P; S5 w) m' n2 `* Q{int x0,y0,y1,x1,driver,mode,i;* {% q2 r: k& Z% F9 I driver=VGA;mode=VGAHI;9 C" b5 j- U! n initgraph(&driver,&mode,"");) u" i, g# j& j9 s" y" w setbkcolor(YELLOW);0 @8 X6 t# r7 l/ a1 I x0=263;y0=263;y1=275;x1=275;, s! w: K3 A+ z& X for(i=0;i<=18;i++) 5 I5 f. q$ P+ g1 d{ - H0 u' G+ C: y; ~. o% E2 n3 Asetcolor(1); & t) O3 R! o& q6 `rectangle(x0,y0,x1,y1);5 H& s& |+ K* `& F x0=x0-5; % r2 M6 ^6 o f2 b2 o; @0 W" ey0=y0-5;7 W6 N$ ~0 m0 N& F1 k8 n x1=x1+5; . e! N1 v) \' C2 Oy1=y1+5; ' \' ~* R/ N9 g" d, q}" r' a0 B f" S& V( G settextstyle(DEFAULT_FONT,HORIZ_DIR,2);% L. w& a' U* K+ F outtextxy(150,40,"How beautiful it is!");9 D! k. n. c$ V j line(130,60,480,60); 0 A& Y; d6 p! _2 d% N$ Msetcolor(2);" e9 y0 q- W# C- ^ circle(269,269,137); 4 j j% t4 ~' q9 x} . Q+ j% E y9 @5 E' P==============================================================3 G' z4 _- N; C6 t* S# q! K 【程序59】" v5 H, _# f/ X5 l& }( E 题目:画图,综合例子。 . e- v0 g& n% u7 O$ a! v$ J1.程序分析:4 B- A Z& I( z0 m; i9 x, _ 2.程序源代码: 6 t+ H0 w- D+ a# define PAI 3.1415926 # J/ P7 P1 g' o5 t4 [% B% K3 i# define B 0.809* J) v, X5 ?! N # include "graphics.h"0 J% s) `9 y& p1 Y: ? x2 l #include "math.h" ; w+ ^2 l4 T- \* e# N, \- vmain()9 E5 d2 B& _6 ` { - i4 L, r$ O( M' nint i,j,k,x0,y0,x,y,driver,mode;+ T0 z: Z9 |- L, e6 Q% O+ ~ float a;! U, }8 n! N s" N5 V driver=CGA;mode=CGAC0;/ [1 e# i9 j T2 X6 |% z. b6 P$ W4 w initgraph(&driver,&mode,"");9 [; g( R; M6 m* ~ setcolor(3); 9 _) }; F( L$ p: C1 osetbkcolor(GREEN); C2 y* u" }' b3 P. {; |2 ?2 D x0=150;y0=100; " I! ^; R/ }# h8 X( gcircle(x0,y0,10);1 |4 j5 j% o3 n4 b! q circle(x0,y0,20); ' u! T$ h8 Z5 x) ~circle(x0,y0,50); ; s; d$ U& j1 p+ ~6 [$ k! ifor(i=0;i<16;i++) , I+ j$ a! @ i0 q. `, N{, C. L7 H/ W* g8 F/ m- J% u  a=(2*PAI/16)*i; , R& T6 i( c$ ?5 g x=ceil(x0+48*cos(a));) u7 o c) K0 _! V8 Y  y=ceil(y0+48*sin(a)*B);' ~/ O2 n* Y: V' U% W& p, K( b. l  setcolor(2); line(x0,y0,x,y);}% k( n5 ?' m; _% E setcolor(3);circle(x0,y0,60); $ @ F% e/ l: Z5 P8 a/* Make 0 time normal size letters */ . c! [* v, @9 ~" Qsettextstyle(DEFAULT_FONT,HORIZ_DIR,0); 5 @ H% ]4 a) uouttextxy(10,170,"press a key"); . z/ ~! `" y8 j2 w7 a) s1 k2 dgetch();6 b1 K/ a: F" j$ b1 M6 D% \ setfillstyle(HATCH_FILL,YELLOW); / v1 e4 ]" o* ^! `floodfill(202,100,WHITE);8 M% R- H# O( c" P$ f$ D" A getch(); & m; I Z# s1 ]for(k=0;k<=500;k++)/ [" H1 b/ I/ y" l; y { 4 W) z! I( w& h7 L. v" } setcolor(3); |- R) v4 W* ~4 e9 \, r/ u for(i=0;i<=16;i++) $ e) h' |2 j7 R/ s# h2 J {$ L" e+ z5 _5 d   a=(2*PAI/16)*i+(2*PAI/180)*k; & t5 ~0 G w5 q8 M( i1 B8 [  x=ceil(x0+48*cos(a));7 ?# I# l! m) o0 _& @: w4 G, r   y=ceil(y0+48+sin(a)*B); . @1 c$ O% r$ ]' _& c J  setcolor(2); line(x0,y0,x,y);# |6 o8 ~! e* r# O& B/ ?" D+ M" O  } / f _! @- Y" t for(j=1;j<=50;j++), t3 K+ c, y( z `+ \1 E  {$ a- V% V4 ^0 f) B A$ {% }   a=(2*PAI/16)*i+(2*PAI/180)*k-1;5 k# x* L6 k- W" G6 B   x=ceil(x0+48*cos(a));9 N% v: _. T* c) S8 `   y=ceil(y0+48*sin(a)*B);/ L; Y! p' V A, N7 H6 B# O: p/ J   line(x0,y0,x,y); ! c6 }2 @+ k* r9 U# ^* F } 4 p1 T( i! x7 M; S2 c} 1 J) I8 Q/ Q0 R3 h: brestorecrtmode();& A3 W5 P3 A5 z- U, f5 w8 k }/ `3 ~% L' y/ _. o2 U6 c/ A [ ==============================================================! h1 J, x2 t0 J3 z* q 【程序60】 ( j$ l$ N& h+ e题目:画图,综合例子。    & Z$ I& M! w: v; N: [, ]1.程序分析:) F; Y! @8 e4 ~ 2.程序源代码:( f" e" Z; E6 J. p #include "graphics.h"9 o: e1 n7 e! @ l, d #define LEFT 0. \1 k; M$ m: N/ o' E, l( Y. r q #define TOP 0) \$ F5 a. _3 [; c+ A' J: M& j #define RIGHT 639# p: m6 O& Y& X+ t #define BOTTOM 479 0 @; P! p( W; j' c#define LINES 400' P" ]! k- {$ C: @; ^4 w z2 ~: k8 \ #define MAXCOLOR 15, @0 K4 J8 {) l# m8 t; n main()/ G* t1 k( h* N6 q7 A4 [ {3 X5 E/ e& O( J# l1 } int driver,mode,error;. [9 W1 Y6 I5 n) J. @ int x1,y1; : m9 y" R% x/ g2 Mint x2,y2;3 Z8 O5 F( U+ s f1 j% Y% q$ j/ B int dx1,dy1,dx2,dy2,i=1;$ ~3 ~2 Q# a* u/ { int count=0; 8 `7 Q( j2 j+ U# C: jint color=0;$ f" m5 ^% V' d7 o+ c* K T driver=VGA;0 \4 b9 T9 F& i) Y& f mode=VGAHI; " b& k6 h4 B( Y8 ~6 |1 C6 u4 sinitgraph(&driver,&mode,"");. ^6 `& y: G1 ~4 E8 z x1=x2=y1=y2=10;' ^) d: W. T5 q3 |8 B, U$ A- G. E dx1=dy1=2; & q) E2 {: o8 S6 R+ Ndx2=dy2=3; ( r: `4 t7 k9 b( y0 a7 fwhile(!kbhit())) S) W& I" I. \3 |: Y {$ x7 g5 ~1 @1 ], F1 ]/ {  line(x1,y1,x2,y2); 5 x- E b8 T3 C+ U* L x1+=dx1;y1+=dy1;8 U2 z" H1 `1 N9 T9 G* m, Q  x2+=dx2;y2+dy2; . g2 ^, u1 D# p# a( `- o if(x1<=LEFT||x1>=RIGHT)1 o2 k8 ], ^* y3 R* Z, a  dx1=-dx1; 5 n6 U' E" F/ H7 e if(y1<=TOP||y1>=BOTTOM)9 L% E* E' `9 ?8 D" h2 Q   dy1=-dy1;* g4 u& h( k' O- `% o  if(x2<=LEFT||x2>=RIGHT) & r0 M$ }* \; U6 m" ?8 z* U  dx2=-dx2; 3 E4 J U% P& z& @/ v if(y2<=TOP||y2>=BOTTOM)- P* Z! t1 @, s/ Y$ j   dy2=-dy2; , L& V5 o3 Y) E5 A6 q* S. ^' P; S if(++count>LINES) Q6 b% z! T/ r* c6 N8 q, w* u7 X { 3 l5 M6 n. G+ ]$ n! \  setcolor(color); - R+ {: i# M# R' C  color=(color>=MAXCOLOR)?0:++color; 3 q2 m% Q" s! V) Y+ v } , ?) [0 k5 {( N8 ~6 ~}# C: f# ^: A" a$ h& ]+ y/ T closegraph();- D' ^. U+ l1 |( f$ \ }

回复

使用道具 举报

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

【程序1】 7 O" A4 B" _" a p# b4 n C( B题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?* [) z$ J8 I) s5 ] 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去* j s0 v' Z& T. w; w% @5 f       掉不满足条件的排列。 + p# T0 H; w0 ?8 h- X' Y9 S 2.程序源代码: 1 @$ Q! N( j( @8 `main()2 h+ {& c4 b: F l {5 z4 L7 ^. n: v, Y int i,j,k;, T9 o' m0 H5 g' F+ r printf("\n"); 9 M) l0 {) ]' k* y" U" ^( lfor(i=1;i<5;i++)    /*以下为三重循环*/ 3 V; L) t2 Y9 |5 ^ ] for(j=1;j<5;j++) 6 l! I& g; |0 a) z   for (k=1;k<5;k++) 4 [6 y' R+ |; B$ ?& |3 Z   { ; u5 R [' `2 b    if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/ : q) P6 X5 D9 F    printf("%d,%d,%d\n",i,j,k);- h- Y1 m9 |" @# S: p3 k    } " E. _( i3 J6 R: \. W9 Q# T2 }}- W6 {! A, Y& v" ? ==============================================================* z- G- x" W' p. p! k, u 【程序2】4 w; }- |6 u6 c 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高# @+ q2 w6 R) X A& J4 J+ f    于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提( D% _8 e0 q6 c5 B' ?! r/ H    成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于7 e$ [9 _2 J5 F7 l    40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于: N. a8 _8 L: o. p    100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?8 d. c0 E( n; |) q 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      3 U0 W8 ?' G/ O) h. ? 2.程序源代码:9 K9 W% y( g$ x! c, t main() # m( K s- e( X, A- ~* }{ , ~2 c) K7 c& e8 \/ ^& vlong int i;* g7 I+ ^6 O. U int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; - J& t! ~2 _/ j5 pscanf("%ld",&i); ) g3 z4 S9 ? ]3 R( U- Zbonus1=100000*0.1;bonus2=bonus1+100000*0.75;6 B* b0 O: ^' q/ a/ ~9 A$ K2 {. T$ L$ f bonus4=bonus2+200000*0.5; $ j& g' B6 b# Ubonus6=bonus4+200000*0.3; ! R* I4 x& H1 i- m$ P7 Wbonus10=bonus6+400000*0.15; 1 m; e- J( Q6 l. j4 v G, }' c if(i<=100000). b1 S |2 F" N i5 I$ p   bonus=i*0.1; % g4 R! K2 a3 `$ t else if(i<=200000) + W( V& i& \& s$ h. N K     bonus=bonus1+(i-100000)*0.075;7 f, g' A; e# w+ V' _! }& Q     else if(i<=400000)+ [( ?* C- c5 _) W$ e( Y1 u K+ T         bonus=bonus2+(i-200000)*0.05;/ M, J a3 @6 R/ d        else if(i<=600000)4 x( N" x5 {6 q) m) m            bonus=bonus4+(i-400000)*0.03; / q& Y) ~0 m) s# D; M1 n          else if(i<=1000000) & F* m2 x9 F, _ W5 q% ~              bonus=bonus6+(i-600000)*0.015; 8 F; ]; Y$ B j# W7 J             else; ~7 R) ~3 F) C9 }               bonus=bonus10+(i-1000000)*0.01; 1 ]& H+ N: n) b5 q' l- r9 ?3 O0 ~printf("bonus=%d",bonus); E) `# d* J- H: |( i4 M0 n8 n! y} 6 H+ |+ o- u# }) n d! n. | ! [1 P; W R: C$ c w, C' U# M============================================================== ! G/ t. o7 W1 t; g【程序3】 & O+ D8 G" Z4 m3 @$ K& p. s* H, ?题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?2 M j0 Z# ~- y" @: W9 }. L1 I 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 & ~& S0 d e) w: S2 \: _( n( X8 D; D      的结果满足如下条件,即是结果。请看具体分析:$ Y2 y6 n9 J! h- Y 2.程序源代码: 6 l: H! p! V. W S' t, c#include "math.h"" w$ V0 X0 P0 z3 H* O+ j# S3 K% s main() . T7 |7 z" b9 C{ 3 f: |% D* c$ f: m* i1 Flong int i,x,y,z; 1 e r# j& k) q& w+ @+ ^5 Cfor (i=1;i<100000;i++)* d5 O( W/ G0 d% S( @$ v  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ / x& G, W8 }6 m- |  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ , Q4 v* G1 D4 A/ r   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ ) w8 T3 i h5 ?( a7 |    printf("\n%ld\n",i);2 O" F% n V. n$ n o) s( ^, T  } / [* k7 u) P S9 j4 q}, g* ^+ J* Q7 J1 E. U/ ]" l ==============================================================, Y( t4 u: X) N& S: `3 @. B& j 【程序4】) ]. ]# Y4 N8 K0 K' ^" j 题目:输入某年某月某日,判断这一天是这一年的第几天?6 F0 d" T0 I6 j$ S) A 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 , ~3 m5 N# t: r, Q" F1 _1 P      情况,闰年且输入月份大于3时需考虑多加一天。& x6 O# o7 ~/ {7 e$ |# R9 o7 T* i 2.程序源代码:( D+ P. N) O2 V: q- W main(); e% E2 x4 K$ ~ { ' @) W3 m1 B% x F- \5 Gint day,month,year,sum,leap;0 k7 b% \8 w5 v, K% a2 ?3 H- L5 @ printf("\nplease input year,month,day\n");) V5 D& d. F) L scanf("%d,%d,%d",&year,&month,&day); + \& U3 }& [+ c% q( x- N# A. v% Wswitch(month)/*先计算某月以前月份的总天数*/" `% Q5 n! l# h3 ]* X4 R: N) q { 1 u1 |" d2 l' p, y" z- a3 K/ G1 Z# _ case 1:sum=0;break; 1 [' K7 a8 H5 s, c$ r- d# B case 2:sum=31;break; - g, G8 {# ^5 h- }/ q. i case 3:sum=59;break; P3 L% _/ k" Q8 M" ^( p& N  case 4:sum=90;break; 1 _. |$ d. f9 y; n case 5:sum=120;break;4 c* b% \" [. B' {, H0 v" u p3 R6 f  case 6:sum=151;break;) o& r5 O$ u) u7 j  case 7:sum=181;break; . ~. G9 ], e5 U& b" m case 8:sum=212;break; ' H3 a, ]3 N9 @2 \! N2 ^4 _ case 9:sum=243;break; " R8 M. r5 S1 H6 G( K; i case 10:sum=273;break;" P# b |& L4 K+ z3 k+ Y3 G0 ~8 ~  case 11:sum=304;break; 5 J) U& ]( Z+ \4 z case 12:sum=334;break;9 e0 z+ ~% u6 V: k; e  default:printf("data error");break;0 B# j9 T! s: l4 w }5 J6 p. T5 ^8 ]! v, K sum=sum+day;  /*再加上某天的天数*/ - K2 P5 X+ ]$ y$ ~+ o% {+ h if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ P3 L3 ?. m) F6 F" P   leap=1;' v/ J c' ^" U' U2 ~  else- T0 n& S' l: U& Y# N' ^   leap=0;; Z# m U w& i, e$ l D; j if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ ! m/ |) ^" z' h/ h8 f6 n: Bsum++;3 Y1 ^: g1 I* w. {& _0 k5 ? printf("It is the %dth day.",sum);}& E% a |4 n: \) t4 N: G ============================================================== " N* l, ^% D; H8 u2 a【程序5】 ( h# l; x! k4 L" l% U) V, K' S题目:输入三个整数x,y,z,请把这三个数由小到大输出。$ G( t# ?) E) x9 c3 q+ }, p% \/ H! N 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, ( e( ^: l$ u6 z5 y: e7 u      然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。! F5 w2 F" Z7 P3 y 2.程序源代码:9 r9 ]! i- S3 c5 a main() 0 ]' N$ R. `1 C9 t" x' \{ " D4 d9 m6 D: `. ^7 s+ _int x,y,z,t; 1 p# h2 `0 f6 P" `scanf("%d%d%d",&x,&y,&z);1 u D# k2 h- O P h if (x>y)% I$ z3 a+ C" ?5 X0 O3 y8 b* j {t=x;x=y;y=t;} /*交换x,y的值*/ / V# h9 [& x( R/ n1 H2 D0 H1 ?if(x>z) 4 n1 O6 q; c! I9 R' h( L{t=z;z=x;x=t;}/*交换x,z的值*/; y8 ~0 I3 l6 o6 } if(y>z) . i& M7 U" E# y% n{t=y;y=z;z=t;}/*交换z,y的值*/ C0 ~( A% N7 A3 {+ l, T printf("small to big: %d %d %d\n",x,y,z);! r# n) B X/ J } 5 n$ V+ m8 ]/ }; u& ]============================================================== ; q5 f$ ]4 G* o' @5 `( ]【程序6】 9 ~* k! _+ g' T& e( P题目:用*号输出字母C的图案。+ w% F9 }" h5 \. w5 q( V3 m/ ?6 v& G 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。$ Z+ u( f+ e7 D" [% N4 L; C 2.程序源代码:6 Q7 G8 u" b* k; W4 ? #include "stdio.h" " _) F4 K( T O9 y( U% |$ dmain()/ \2 X' O z9 k* K1 H' { {6 U& o! k3 i/ d! V( j printf("Hello C-world!\n");5 b H7 u! E+ ?9 g printf(" ****\n");6 k) ]( j0 j' { printf(" *\n"); % c% G" a' |$ _0 e: Gprintf(" * \n"); - o7 I% ^9 x. Kprintf(" ****\n");1 H/ |$ K2 \* | \ }4 a/ [8 L. p( w: R' t T ============================================================== ( f6 r! V$ O( h% p【程序7】" F: a0 O8 ~( o1 h 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!; p1 X3 c% `" x; K+ ^ 1.程序分析:字符共有256个。不同字符,图形不一样。      ' C# E* k3 J, O f8 K a; c# x 2.程序源代码:0 T! Y9 Y7 j9 r: O8 p, i. B #include "stdio.h" l4 B2 ?! C( z6 I main() 3 `6 S. ]; g' F. U{5 U' A* \* e+ T char a=176,b=219;+ F3 X# a9 A# @, _6 c$ K( V' J; C printf("%c%c%c%c%c\n",b,a,a,a,b);$ X) `& y& Q, b+ o. l3 j printf("%c%c%c%c%c\n",a,b,a,b,a); {. t( E, T$ G2 A* u' u2 K printf("%c%c%c%c%c\n",a,a,b,a,a); . B0 w/ D$ p' @4 _9 c0 x' `printf("%c%c%c%c%c\n",a,b,a,b,a);5 y. i) G( D* b7 j: k printf("%c%c%c%c%c\n",b,a,a,a,b);}; g1 c R) ?. a3 z2 f ============================================================== # K9 M" ^: a; S" u5 U【程序8】 * w; ?( s; T9 f T题目:输出9*9口诀。6 f" X/ j* d. J4 X4 x+ w 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2 p" |. Y& a6 m* J. x1 J# Q2.程序源代码:3 O K! l$ I+ S* m( U; A# T% _ #include "stdio.h"( E Z+ f# I: G main()8 m" d4 c$ N, M6 @0 A { + D0 k; |3 x# y int i,j,result;# K+ C9 Q2 h3 D) r* _  printf("\n"); : _5 ^$ c. p5 r, ` for (i=1;i<10;i++): r* G m% k# ?0 j% g$ a! s" p   { for(j=1;j<10;j++)7 g$ U! x2 o; n& b% N     { * w4 @+ X/ [' {& }& [     result=i*j; . v- Q+ L7 v' Q8 }. R* ]     printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*// k3 K N, ?0 c: C, Q6 _( g9 ^     } X6 m y( j; ?7 {. q: E1 p# z    printf("\n");/*每一行后换行*/ + N0 p$ I" L" d8 V& g5 L0 x4 X  }" T2 C1 \0 `% O: Y }- o7 L& f1 H% _( K8 g% ` ============================================================== ( P/ N( @* h$ ?4 g+ O9 b& p. D【程序9】" F; I4 m7 c1 ~) I6 i3 n8 H 题目:要求输出国际象棋棋盘。$ w" n5 [# C. b. H 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2 p& D" p6 K9 x( c% P" J 2.程序源代码:, z5 \- x0 E/ t8 e) m7 N #include "stdio.h" c a: C' N2 _6 }) nmain() 2 R$ U1 F) y& w9 u6 O8 E6 ?{/ T4 \; }* }! Z$ w# V/ K" ^ int i,j;. Z; ^; |" J& |6 ]+ c( v2 ~ for(i=0;i<8;i++) 5 H0 B* h0 ~0 u- ~* `- p$ q& Z0 `; h {' q1 M# [4 z |% K% U   for(j=0;j<8;j++)/ `5 X2 M* `. a# W4 u    if((i+j)%2==0) $ M# Y u8 V' |    printf("%c%c",219,219); |! w4 L% I i9 A7 k, s% g, ]1 {$ ^   else 0 I3 j/ H- c/ \; K) I    printf(" ");' }3 O4 p) F) ]& C! b+ l* Z    printf("\n");. X7 r% r/ Y5 r, I  } ( M( F h8 V" P: |}; s" u# @( O9 s ============================================================== - D7 ]8 E/ K$ W1 Z, u, c2 B【程序10】' [7 g ^5 Y4 a8 \ 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 6 T* \5 w) h2 p' b1 ^1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 9 w [' R8 h) N2.程序源代码: / N8 Y$ N$ U* e#include "stdio.h"2 X! \, Q6 a( I% G# ]; A6 } main()7 G- Q [5 a8 U( F {, Q' b- ?) F* M" N int i,j; ; B) U' o `2 W2 o9 o2 [6 W4 bprintf("\1\1\n");/*输出两个笑脸*/ 3 U0 X- I# ~; c6 S* c2 @for(i=1;i<11;i++) 9 z& u, d! O7 r6 l# }, K( g { ; M, S! E% r3 @+ B for(j=1;j<=i;j++)- H1 V0 M/ a* A$ x/ z    printf("%c%c",219,219);. E" w. V3 s. @& K V/ \! c: x  printf("\n"); . K D# C# o1 U# x } ( x2 k* z5 h: {} : R" T9 [! t T* N+ I6 v; Z

( @ k' S9 i% {) t; e! q4 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-6-12 06:54 , Processed in 0.568833 second(s), 94 queries .

回顶部