機械社區
標題: C語言算法經典87-94 [打印本頁]
作者: tainqing 時間: 2017-10-12 10:14
標題: C語言算法經典87-94
【程序87】
' q) F/ W) f* e6 f4 c* A% o4 }1 U題目:回答結果(結構體變量傳遞) ( [8 j! e' q+ Y! d
1.程序分析: & F U+ ?) `+ {% S) I, }4 W
2.程序源代碼: 0 f6 g4 k' S1 H- G+ w
#include "stdio.h"
: d' |0 h0 `% X& Y) m; Nstruct student
0 d! a3 ~. s d" [5 J! J1 |! E{ int x;
! L: b: Z* s- O. n* R$ n$ E. Rchar c;
! L- x/ M& M1 m8 t6 J0 r+ V1 ~} a;
! s: h0 Q0 f) N# l [+ ]" e2 Mmain() / W5 T# L/ R5 B8 _7 s
{a.x=3;
% p. V. P; E0 e. x4 Xa.c='a'; / J! `" h5 H# y, U4 ?* `2 ~! ^
f(a);
+ H" ~1 Q+ s6 ?printf("%d,%c",a.x,a.c); " z6 h. i- e3 ^" B
} D! }6 O7 K7 l( x3 r3 W
f(struct student b) , R; G6 x8 H5 P3 f* }1 v- V. w8 P
{ + ?" }9 @% V$ q5 z/ s' e: e) `8 d
b.x=20;
2 z% `) S2 V, M9 tb.c='y';
9 C# p/ D; q3 e! F3 [}
, P- r* w$ h: p2 _ ?============================================================== , ]' N0 N3 W+ v& M
【程序88嵌入式信盈達企鵝要妖氣嗚嗚吧久零紀要】 , z1 I) n0 g+ K% g; L6 _
題目:讀取7個數(1—50)的整數值,每讀取一個值,程序打印出該值個數的*。
. A/ Z/ s, h6 v' L0 Q& N9 J/ m) J/ ]1.程序分析:
5 r3 N3 ^, Z! u! Y+ a6 {2.程序源代碼: ! L8 w8 y9 E% s$ q' D
main() * s4 y8 |$ r" P' F [3 @/ L" y5 G
{int i,a,n=1; ) O" H: j5 u, A3 a1 y1 X' _
while(n<=7) 1 M+ [( H2 Q- }) t- p2 n5 H
{ do {
" n, l% f# }; U5 J/ k gscanf("%d",&a);
1 C7 s" O4 [9 i7 U. I}while(a<1||a>50); ; q$ G$ ^( ~2 A% W7 K
for(i=1;i<=a;i++) ! I* ^ ~' V, b" r- X
printf("*"); * _. W5 |6 o) r: A" x3 _
printf("\n");
( E, x4 P: X6 v! \4 T) pn++;}
+ k( q0 [+ Q' A3 Q# u& A8 Vgetch();
; @8 u4 H5 ]7 E% H. d5 a% l( p}
# t/ h4 z R: l4 G0 k! R==============================================================
7 Q% k: o. N$ r+ s9 `& L% W2 f( U【程序89】
2 [' l4 Q& H- R) ]題目:某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:
2 I6 d7 X# H' U! F: H- _ |' k每位數字都加上5,然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。 9 i G) \+ I: b Y) `* H
1.程序分析:
- C$ j9 e# j/ x, o# @+ c9 U" b* i& b2.程序源代碼:
_1 o3 x& y, Bmain() 8 Y8 e$ |$ \; u2 @+ Z$ X
{int a,i,aa[4],t; & @7 F1 K& z: k0 g) u
scanf("%d",&a); 7 [4 ]7 Q: Z& g9 X) W$ Q
aa[0]=a ;
3 o! S& I6 P2 @+ d! v9 caa[1]=a 0/10; : w, ~" U! E+ g% s B
aa[2]=a 00/100; & t1 p7 u6 ^, G2 N2 l t2 H! a
aa[3]=a/1000;
, q( S2 B* h) p# U$ Q6 |7 \0 r! [/ qfor(i=0;i<=3;i++) ' |) G7 [& h! ]! R
{aa+=5; ' F/ j4 H) H) ~7 d: G7 b( O, L n
aa%=10;
( p9 M' z0 j/ Q+ K. b}
% O4 d4 f# ]. [2 Z, _) [' ifor(i=0;i<=3/2;i++)
" \, H! a, I9 p: [% O) r6 _% O, z{t=aa; 6 K& G; `0 Q' o2 N# G0 I0 z
aa=aa[3-i];
0 E* D( u, G8 G* baa[3-i]=t;
! {6 d6 R6 n! G( U9 k} 2 G3 {( N5 w( J
for(i=3;i>=0;i--) 0 M3 D4 y! }( X
printf("%d",aa);
: q3 x5 t7 ?% c8 ]- Q5 s( l8 l} 1 e+ a% q9 x/ K
============================================================== . V$ U$ f- Q. c! V
【程序90】 ) B* N0 `6 {' z' ~/ s0 u; W8 n
題目:專升本一題,讀結果。
' P* H3 E0 n9 b1.程序分析: 3 Y# a' n& T' H+ j U7 R
2.程序源代碼:
2 Q0 E# d3 D8 m- E+ V#include "stdio.h" 9 U0 l4 D9 s/ o/ `; z; |
#define M 5 $ D3 F4 Q- }2 {0 P
main() + b4 y/ T7 x! v R
{int a[M]={1,2,3,4,5}; $ g+ b% k7 h/ p1 Z! B7 {
int i,j,t;
4 C$ z' M5 N) ]4 Y& b& H- C5 Ei=0;j=M-1;
8 y. A: e0 G4 Q }while(i {t=*(a+i); ' Y1 a, j9 I. J6 E7 O9 T
*(a+i)=*(a+j);
+ V4 ?6 Q+ B6 b9 r*(a+j)=t; 7 V6 ]- ~- e9 }2 u. D
i++;j--;
* D- c1 E( ?2 N}
0 q& Z8 ^# S* |& u4 L) Wfor(i=0;i printf("%d",*(a+i)); % r$ q- ^- K- F7 a
}
# A' Z, v a* |7 L6 W【程序91】 * h4 m( C7 |) H/ q8 _; U
題目:時間函數舉例1
% q# _) y, t2 b3 @1.程序分析:
: [4 j/ H/ [% i* [/ ?4 h0 @2.程序源代碼: 1 _' ~' q) t# w# j
#include "stdio.h"
- j' t2 h# W& i7 H/ B! R! k#include "time.h" : z' x- \& I+ I3 ^+ L
void main() 7 q& A; M) H4 ^& ]- H
{ time_t lt; /*define a longint time varible*/ ) c# M1 c, ?, u# e+ T/ V4 R% Y
lt=time(NULL);/*system time and date*/ 7 s) e! ~" } c, V
printf(ctime(<)); /*english format output*/
4 G4 k) }/ M. t" x) b$ C Aprintf(asctime(localtime(<)));/*tranfer to tm*/ ' |% H( H% H$ o! I) b' v) n% W
printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/ + Y3 `" Z$ b2 \8 k0 M0 G) M+ G6 m4 _
} ) j* H i3 X: ^. j
============================================================== ' v3 b2 n+ D+ X5 r
【程序92】
. v; m1 r* u3 R6 D6 O題目:時間函數舉例2 8 n! B3 {& Q" h- d
1.程序分析: 8 r# j: c* J( `1 D) k4 T
2.程序源代碼:
( X1 s4 F. q0 D% ]0 B/*calculate time*/ " S- N2 `: }& W7 f2 `8 h
#include "time.h" / X! S, [$ E5 `* E7 p
#include "stdio.h"
3 J- z* @9 ^6 h0 umain()
# v. i& g y h{ time_t start,end; 2 h0 D$ f9 ~1 K5 ^
int i; ' F/ W6 m' s, E$ T+ Z
start=time(NULL);
( f4 C3 m- C. ?- z* ]# B1 ffor(i=0;i<3000;i++)
" o8 @2 R9 ~# d- \( F{ printf("\1\1\1\1\1\1\1\1\1\1\n");} , Y8 _. v; Q, A7 ^) B' V) C7 w1 k
end=time(NULL); , ?+ U6 q# e' i, b- t4 r, I: {; f
printf("\1: The different is %6.3f\n",difftime(end,start));
5 Q% I+ G3 F4 n0 F& o1 e}
' m( ?7 |& l, I9 _2 X# M* L============================================================== 2 `8 S5 [- S* s7 X
【程序93】
5 D, n& N& [/ M0 t/ [: @題目:時間函數舉例3 ' ?, `7 ~) b8 v8 L5 c. {9 N
1.程序分析:
9 [+ y$ i7 w+ B. ^0 q7 R! e9 d& h2.程序源代碼:
- Y3 O5 m7 o0 D& h/*calculate time*/ % m4 l0 P2 @1 d1 R1 L8 e! A
#include "time.h"
5 t) l3 K. X$ ?4 ?#include "stdio.h"
! z) r6 z: h$ g, B wmain()
9 ]; v* A( Y! A! x M{ clock_t start,end; 7 V1 w- g8 j/ g* S8 ^9 x ~
int i; ; K% Z9 ~; g( [$ s4 o; R2 ^
double var; ) G) A) p8 ], S# G; \+ L8 [, ?
start=clock();
( u) }# u$ K V0 K8 Jfor(i=0;i<10000;i++)
0 d+ N1 a7 n4 h* A% t{ printf("\1\1\1\1\1\1\1\1\1\1\n");} + b- j! l/ t x, k/ c+ a
end=clock();
- `/ p9 |: I- v0 v1 Qprintf("\1: The different is %6.3f\n",(double)(end-start));
" i, a+ c. o1 T$ E5 W* v} : Z# ?2 {! h. L5 B7 B# v: }
==============================================================
2 G! M# F6 I# T5 M. \" s【程序94】
& _+ ^& U( a+ I- n* K題目:時間函數舉例4,一個猜數游戲,判斷一個人反應快慢。(版主初學時編的)
$ |, Y* J' O: N6 J: T( Z1.程序分析: 9 P! A: W& ]( J! I+ E6 u! {
2.程序源代碼: 2 `6 _5 f R; p8 j
#include "time.h" & m; F0 r: m! L" n. L9 U
#include "stdlib.h"
8 F, p+ z. a/ [' x' `) [2 k#include "stdio.h" . Q: d; B/ ~" B' _
main() 4 b, ^/ v- n' B
{char c; ' l6 V9 M0 N- c; d
clock_t start,end; ( Y7 a1 w) ^" t& `+ t4 \& r1 ?7 M
time_t a,b; 3 k9 l$ z' B6 v: f8 E* y2 k. `
double var;
" X$ X# d9 T3 m; C% Aint i,guess;
% e" p+ p) v: t" b$ ]6 K' h Dsrand(time(NULL));
1 q( u4 T: G) N2 H+ ~printf("do you want to play it.('y' or 'n') \n"); % X: n% h9 p% F" b9 `! }: g/ S. B
loop: $ b1 Y; E- U% |
while((c=getchar())=='y') % a' S% p. V1 A% f1 w& ^8 w K
{ * }% T8 I/ C7 Q
i=rand() 0;
9 @; y* }4 W) pprintf("\nplease input number you guess:\n");
7 t! l( n0 p' v9 H# |+ l1 nstart=clock();
8 f) ?& g- e- k3 ma=time(NULL);
! i% D& l- b0 P+ Cscanf("%d",&guess); " W4 J& }- v) S B0 D% h
while(guess!=i)
% v4 A4 i9 q x7 Z) T0 F{if(guess>i)
3 `! J% g; Z( V{printf("please input a little smaller.\n");
; l6 o2 ], N/ ~- E( Oscanf("%d",&guess);}
' q( g& A7 s$ i- j7 w* R" Belse / t; N" K- R" N' `$ ]* T& G( R' v
{printf("please input a little bigger.\n");
& b2 Y+ u+ {( f- b1 t0 j3 p9 y+ escanf("%d",&guess);} + E& D* y+ S( t w8 E2 ~4 K" T
}
1 l, q6 X! V+ E+ Fend=clock(); : ~% O: T( W; M' W6 m9 j
b=time(NULL);
+ T( x! W3 ]- ]printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2); 0 V j3 W3 z4 D6 P9 \& p: v# C6 D
printf("\1: it took you %6.3f seconds\n\n",difftime(b,a)); 1 W( B8 f2 O3 X8 H0 e# Y
if(var<15)
! m9 f6 l4 [. b+ T2 ^8 m$ B- Z5 sprintf("\1\1 You are very clever! \1\1\n\n");
) y5 x" e: w2 F3 Telse if(var<25) * q- I" n B/ Y4 u$ B
printf("\1\1 you are normal! \1\1\n\n"); 4 f, N. Y: p0 @ u0 R/ U
else
: _: r/ W7 t7 Fprintf("\1\1 you are stupid! \1\1\n\n");
: K, F6 O# i) s' c8 c" `: {printf("\1\1 Congradulations \1\1\n\n");
( c1 H0 \. m5 l/ m1 zprintf("The number you guess is %d",i); 5 w) m9 w T9 E0 T# @5 d! T
} + ?% C8 q& m% m. U
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");
! b8 P' V# M' X) S' h, [if((c=getch())=='y') 6 J- {) h4 |9 A$ l7 Z, [
goto loop; 1 B z0 q c+ k) }; |
}
! s H5 s9 j, H9 ] u5 ~
作者: moldzsdj 時間: 2017-10-12 10:29
我一路跟著學習。謝謝樓主!
| 歡迎光臨 機械社區 (http://m.whclglass.com.cn/) |
Powered by Discuz! X3.5 |