机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1715|回复: 1

C语言算法经典87-94

[复制链接]
发表于 2017-10-12 10:14:07 | 显示全部楼层 |阅读模式
【程序875 F9 F; Q! P. @" v
题目:回答结果(结构体变量传递) 3 d* A' o  H) _4 Q$ |( k
1.程序分析:
8 J* H3 J6 ^0 s% a2.程序源代码:
0 V6 s' B3 S% N. K) L0 }#include "stdio.h" 4 p3 b  X1 D0 X
struct student 1 p2 C7 O' t% f
{ int x;
( x6 @7 }- x. e4 X$ l  d: ?char c; - `. {% l$ O$ N7 a5 q6 f
} a;   j; x+ O2 x: L
main() 1 s5 H% ]  ~- O
{a.x=3; + P+ T, L5 @3 [0 x# P: v) ?
a.c='a';
9 X& v, y' h4 g3 w& Hf(a);
1 k8 A) a! s, x- Eprintf("%d,%c",a.x,a.c);
1 M3 [* \7 E  a# e. j} * ?$ k% E* @( X% y& ], L* F
f(struct student b) & ?" E" t- s8 i% E0 q
{ 6 b/ r2 Z) Y" k+ e
b.x=20;
; }$ D, b+ A+ U" F" }- ^b.c='y'; 9 y" I+ Y2 D0 V- r
} 7 v' v( l# e& K# m1 G
==============================================================   D# m9 X9 O6 R2 J7 n7 v3 `/ K
【程序88嵌入式信盈达企鹅要妖气呜呜吧久零纪要 / n- G* U* y7 [! C: K* v
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 - d  ]( D* n0 d0 T
1.程序分析:
5 m) X  K& o( h: j2.程序源代码:
; ?0 Z- V5 a9 U3 r. B7 \main()
, N/ P% T* x) W9 e/ ~1 H{int i,a,n=1; " P; h( Q) d8 F+ f6 k
while(n<=7) + F& j7 t' G9 z0 p$ ]
{ do { 5 S3 f+ ~: c0 N  H8 E4 x
scanf("%d",&a);
' J9 s7 S4 X; a" ^/ G9 X* o  J7 O}while(a<1||a>50);
1 ~% F! B7 K. @' J$ e4 c" |* o$ tfor(i=1;i<=a;i++)
) B" x8 [- j0 pprintf("*");
: b! z! T+ J. L6 rprintf("\n"); 3 j7 H- {5 Y# z0 T. t; B0 ~
n++;}
9 l6 x3 W$ I7 c8 x1 p' Xgetch(); / A% e( G4 ^" K8 Q  n  @) X6 l
}
6 [8 A6 A6 v# n% ~5 _  z  ~============================================================== / f; |3 M6 r% X; R( k
【程序89
! n: I2 R; |& W5 D1 y/ [6 D题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 9 b+ ?) i+ |5 O5 V# B
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 ! K2 ?& o' [- ~, i3 d  l$ f+ {
1.程序分析: ' p6 A/ A' E. r3 ~) x
2.程序源代码:
3 B0 ]2 G# b/ ^8 E8 Pmain() 2 L6 t# U" A/ {" N; I6 ^3 X
{int a,i,aa[4],t;
7 t( B+ u: V1 ~% dscanf("%d",&a); ) L% f5 G) Y+ C2 e' x. X& V
aa[0]=a ;   r/ M! L3 n8 O9 ?
aa[1]=a 0/10;
) t0 |2 K. I, D2 Saa[2]=a 00/100; " b% o) F5 \+ L  y  x+ V
aa[3]=a/1000;
# t$ W- o8 R, V* Y. hfor(i=0;i<=3;i++) 3 \6 @% s8 ]  K8 h1 `1 o& {
{aa+=5;
5 J. E% i/ P* L$ n4 Xaa%=10; 0 k, ?6 k6 d; ]' @$ {: i, p, L
}
- z$ a' T7 t  b0 Ifor(i=0;i<=3/2;i++) 8 I  \, q: X! e7 T  E
{t=aa; - R! ]0 f- H- F
aa=aa[3-i]; : M5 h; V+ d, |( q$ C* X
aa[3-i]=t; * i$ R/ P7 z/ p* H. c
}
6 A& g+ K- a' G' \: @9 J( u$ efor(i=3;i>=0;i--)
9 M. Z$ h) y3 Uprintf("%d",aa); 0 Y5 U4 }# m+ Z# m5 C  o
} ! P0 v( y1 D9 i" w1 f$ c
==============================================================
, p5 q' t: H0 m8 S【程序90
" ~, F' l) H+ I. W! ?. x7 C题目:专升本一题,读结果。 2 p8 Q: X  I, I2 @5 z4 U
1.程序分析:
% K- w6 P* T, Q. m! c2.程序源代码:
+ A+ X9 ~. \7 t# u" V( V* u$ A#include "stdio.h"
8 z  |0 k: e  H; X6 R8 m. y3 {0 O; [' s#define M 5
! o' V& q4 s: Umain() 6 Y, Y" ^2 `. \2 r- x
{int a[M]={1,2,3,4,5}; , l$ n0 G* @6 X* w
int i,j,t;
: A* Z* h6 U% o# g) u. [i=0;j=M-1;
' V! n2 ?1 U* [9 t6 bwhile(i {t=*(a+i); 6 p+ m# L+ x3 x, D/ d9 _
*(a+i)=*(a+j);
7 P, z4 ~8 _! ~8 u9 h, {, a*(a+j)=t;
+ W! E9 R' p' g# qi++;j--; ( ^: L, q& ~+ b; c
}
( s4 B: A; O& X+ ]1 Ofor(i=0;i printf("%d",*(a+i)); 4 f+ Z, ?' A! v/ [. \
}
1 k9 ~+ o/ H5 u$ Q【程序91: [$ D- N" y+ n, X7 i3 h- R7 s1 y. N0 u7 ]
题目:时间函数举例1 0 r) @( i8 s5 t: j, B1 l
1.程序分析:
6 P( \! L' V" z. ^% q/ ^  }  [: E2.程序源代码:
; w+ L4 z; u& n6 @5 _#include "stdio.h" , w! i- b+ _8 T. ~1 y
#include "time.h"   d, E9 V" ~3 ?/ D. Q& Y
void main()
5 e( b* ]( J* y7 ?- ~' o6 Z{ time_t lt; /*define a longint time varible*/
) A# d# k) S$ Mlt=time(NULL);/*system time and date*/
( W1 D% f8 \9 O1 }$ o. R' Y( cprintf(ctime(<)); /*english format output*/
2 X% D0 I; C" E& o# [6 iprintf(asctime(localtime(<)));/*tranfer to tm*/
- o5 J3 m) I7 d) u$ r/ Zprintf(asctime(gmtime(<))); /*tranfer to Greenwich time*/ ! \" ~  U3 n& E1 d  j: x: u1 r3 E
}
" v0 d" F4 e/ b- Y1 k& e2 F+ b5 ]==============================================================
  c* [: o5 u* i, j【程序92
. ~3 P9 w( A9 x8 K( ]. H8 h题目:时间函数举例2 , n8 \; i$ X- |  a6 U, o
1.程序分析:
7 u. ?/ I9 C7 @( p2.程序源代码:
( ^9 z) T% M9 i" V; y5 M8 i% r/*calculate time*/ 5 s; ]' p$ E/ X2 g( k( Q+ W
#include "time.h" ! d  T+ y0 x) M2 ?# b4 l3 ~  T+ `
#include "stdio.h" 6 I+ ]% H- C& x6 Q- i3 z
main()
" r5 o/ P3 f2 R( }7 [- j1 m{ time_t start,end; * \" m- B! A2 W3 A- T6 K, [; o
int i; 9 n: l/ D# `5 z- L+ _
start=time(NULL); 3 j- _1 x1 \# w: E5 g$ B
for(i=0;i<3000;i++) 8 Q* j# H8 ^/ A4 x' L( m% d
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
' D) _' t% U& |/ C/ L% F  |end=time(NULL); 3 A+ V/ u1 J7 N
printf("\1: The different is %6.3f\n",difftime(end,start));
/ i. F% Z+ F% g7 ^* E1 X3 r  `} 0 l  l9 [7 I! ]% S; R
============================================================== 1 z+ N. i& o6 c' ^$ L( B
【程序93% P. k/ ]# A. Z$ U
题目:时间函数举例3 , v3 v" u* A& B8 `1 o+ }, F
1.程序分析:
6 M7 X4 X: [5 c( W9 h  \# Q2.程序源代码:
/ Y' v6 X7 B( e6 K0 W. a/*calculate time*/ ' e6 U. n) }7 g# S0 W
#include "time.h" . L2 @3 r& P$ B  U, F
#include "stdio.h"
$ |; S! p5 X. J$ hmain()
1 {% d0 R; D: W( k( _  Z{ clock_t start,end; % h9 Q$ h; @; M* Q4 |- X, l1 i
int i;
) Y' L, C8 q, f6 ldouble var;
) U8 A& }" O0 ~# n/ f# P- dstart=clock();
- @/ b- n% _* `7 x/ T* B$ j$ k) gfor(i=0;i<10000;i++)
! f! S: o% M. i2 e2 X& \{ printf("\1\1\1\1\1\1\1\1\1\1\n");} 9 k: @% s( c6 g7 h/ `( x/ B, i9 e, d
end=clock();
9 c6 f. E( q6 X1 Uprintf("\1: The different is %6.3f\n",(double)(end-start));
* i& p- S1 i7 }  k. u0 |' ?' q}
- \& Z1 ^8 c8 O8 o+ @============================================================== - N0 u* L' A  e( k) R8 U; z8 @' W
【程序94
! h" }6 X' ?" S3 {  J6 j, k题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。(版主初学时编的) 5 L- K" `, `! B# T/ X, D
1.程序分析:
. D! f. h. _0 ]5 F* l0 J# \2.程序源代码: 2 B# t3 h1 m! m/ k; w. Z
#include "time.h" 4 h6 |: I2 a( d8 }- U2 u$ ^2 R
#include "stdlib.h"
1 A; O! ?# L" N& d$ P& j/ {#include "stdio.h" - U5 j# i7 Q8 Z5 E8 m2 P8 F: b/ e
main() & m$ ^" u' a1 K/ @
{char c; 3 f% t9 z% L3 ]& J- B" K; c
clock_t start,end;
3 g# C+ W8 q* X9 ctime_t a,b; 2 g  A* c8 @2 L( |( F8 C6 b
double var;
' ?5 ?( p% s1 u, U# oint i,guess;
) w) D0 K9 W) m: s; m  gsrand(time(NULL));
9 b, G' s! e" n  k% Kprintf("do you want to play it.('y' or 'n') \n");
/ W/ z7 h( h' x% I1 ~- ]loop: ( w( u6 \, }  R# S
while((c=getchar())=='y') , K+ D' D5 i/ K/ t
{ . z- t1 t0 U5 v* w: v
i=rand() 0;
3 \% s3 v/ M+ t% @0 U& Oprintf("\nplease input number you guess:\n"); / ^" V) h" P: e$ f
start=clock();
+ B; {' J$ Q- Q, o4 Ra=time(NULL);
7 [8 V# @% b& j- n" hscanf("%d",&guess); + D  U' r2 B1 l+ D3 E
while(guess!=i)
3 F: `9 O2 r9 v# [2 J! I1 h{if(guess>i) 4 d: ~6 j( _7 U
{printf("please input a little smaller.\n");
$ o0 b. Q7 M, Y: _scanf("%d",&guess);} + v8 h1 Y3 d6 D* b+ W  e) j. M2 @) [
else % a6 p' d0 g+ ?3 C
{printf("please input a little bigger.\n");
4 V6 |3 n$ w1 U" E% p0 {scanf("%d",&guess);} 7 t: l* G6 S1 X; _% v% {
}
$ A- @; b% |+ m  j2 |9 p. Bend=clock();
; C, i3 R7 O$ ob=time(NULL); 5 U6 f6 w* N1 }5 s: r
printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2);
3 t# s. t8 I' H  u! @8 qprintf("\1: it took you %6.3f seconds\n\n",difftime(b,a)); 5 A% Y( H1 `8 {8 \$ x
if(var<15)
2 W1 U6 P9 U6 S" B9 Gprintf("\1\1 You are very clever! \1\1\n\n");
: B% Y3 Y# r# Q: U. F6 Q" Selse if(var<25) - w! Z7 j: ~; ^
printf("\1\1 you are normal! \1\1\n\n"); 8 P; G# l/ `3 f1 P0 Y
else 7 F' z2 @7 B5 T
printf("\1\1 you are stupid! \1\1\n\n");
7 L$ l( w, G; }" Lprintf("\1\1 Congradulations \1\1\n\n"); 7 [* s! @# I( {  G; V3 S+ m, m
printf("The number you guess is %d",i); . U* l5 `  O6 F. n+ G& s: C2 ?& u* t
} ! w* E/ E1 a% O& \8 L- S% X
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");
6 D) E4 Q- `) j/ Z8 W2 ~if((c=getch())=='y')
+ m( T  R; T+ S* H1 Z% {9 K' vgoto loop; 7 C) v, v" {  s' h4 Y/ B
}

  h. j4 o3 u$ ]* h! S
回复

使用道具 举报

发表于 2017-10-12 10:29:05 | 显示全部楼层
我一路跟着学习。谢谢楼主!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-29 21:37 , Processed in 0.051849 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表