找回密码
 注册
关于网站域名变更的通知
查看: 3444|回复: 11
打印 上一主题 下一主题

C语言必背18个经典程序(大神请忽略)

  [复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2015-4-19 18:16 来自手机 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

" [* \% r3 k& C  b7 d# s1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
& X0 z. r6 U$ v$ u6 t#include "stdio.h"
/ r8 i$ ^' o* J0 w9 F" \$ amain()8 n3 H1 m1 l  ~# c! _/ k+ e$ g
{int i,j,result;
. L3 _; w/ [- W, W3 g- T$ A* Pfor (i=1;i<10;i++)* c0 r/ a8 S- K0 t0 ?
{ for(j=1;j<10;j++)
1 ?3 x1 j& H- ~' G- M5 y     {  G, l3 y8 w: k" u* S3 A" G
        result=i*j;
8 s7 ]$ u0 f$ b6 I        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/! {. H) X2 }% y8 \, ?- Z2 e
     }2 F% x2 r* \9 g8 d" N
    printf("\n");/*每一行后换行*/& w( h) w: p/ L8 ]
}" ]6 x9 B; ]; z: _6 d7 ~- O
}
* K3 Y' j9 L' A) S  N- ~
( V9 s3 N- B0 K: {2 K2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
. B$ l& v# U! D: x: Z9 v9 r: Z兔子的规律为数列1,1,2,3,5,8,13,21....*/) `6 V) `, l& ?* M7 \
main()$ x2 H# V& d2 Z3 [
{/ Z; |0 g" ^) q: n* l' ]- \5 k3 q
long f1,f2;
/ g/ P$ x6 Q! i; R/ o! Fint i;1 U5 {' D4 p% F' G& d% O/ b, ~
f1=f2=1;; A# r+ Z, b9 N* H0 f9 i& I% H
for(i=1;i<=20;i++)
, A4 c3 V8 ?+ T7 {{ printf("%12ld %12ld",f1,f2);  B" ~7 H. Z. C3 p/ i+ a) O% a
   if(i%2==0) printf("\n");/*控制输出,每行四个*/& A4 P6 A7 {* o: V! \- E: W
   f1=f1+f2; /*前两个月加起来赋值给第三个月*// P! E7 N: ?& y
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/
8 x9 {- R  a$ O, m* }) b }; L. Z; c( T7 B
}" F# H# Z$ m' l/ T% J& \1 i) J

! y% Z  p  g6 y3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
5 b* @6 y: G+ l7 a  A# n1 Y程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,! T0 z( z( A/ a* i) [
     则表明此数不是素数,反之是素数。*/6 ^- a3 m  M2 d0 [+ s
#include "math.h"$ e# k2 `' ?  P3 @/ _/ u0 h
main()6 }. A9 l5 e2 q- c# a
{
" I5 \& U; w5 C3 t5 Tint m,i,k,h=0,leap=1;: S8 o$ V! g2 ?) T- q# B. A% M
printf("\n");: a4 e: G% }4 C
for(m=101;m<=200;m++)
  l( {$ P0 z) D; a& R { k=sqrt(m+1);
% L0 Q' O4 a! a/ _8 i   for(i=2;i<=k;i++)
) q4 y* s* a) h$ `/ e) ~     if(m%i==0)
8 b/ X* b! r" C. p        {leap=0;break;}
# k8 T! P7 \0 A0 D* J8 v; r     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
6 V# Z8 m6 X8 V& k. a. F) }3 x; D        {printf("%-4d",m);h++;
6 b6 r- a. {/ |+ ~- d+ t         if(h%10==0)
5 {& w2 e9 L5 @* C0 e4 J1 n; L/ ~% t             printf("\n");
. Q2 h7 Z$ {2 g( y! {        }2 u$ E: A- Z& d+ Y8 _* t% ?( R
   leap=1;
* D. w' ?: @/ n4 P1 E" L/ ~* J }( Y6 a& Y# y7 b% m/ Z. N) d
printf("\nThe total is %d",h);: T9 l2 G& }6 J$ ?& A
}
% D& ]: `% r3 V- i% k! `5 r
: H" l) z  l. S  }4 F& v1 W4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程3 P5 |! C& D9 F7 M* G8 q. ^
   找出1000以内的所有完数。*/
6 l  O% f: U. B3 hmain(). W( C( S7 U7 N0 U6 \, ?( R" V8 ~
{! W4 o/ |* p4 _6 F
static int k[10];
3 M% ]" ~) v0 {# P9 t$ O+ E  @int i,j,n,s;$ D% M  P' W! z' [$ @, L
for(j=2;j<1000;j++)
3 G% d( T- Y" [/ e" d) d5 h  {
0 b+ G; B. f  [2 Y0 w3 {/ K   n=-1;, n# j# h" u; @1 K# P% r
   s=j;
4 G+ P! m7 R! ~5 \: s* C6 s   for(i=1;i<j;i++)
( J# T( A* L8 M0 [     {if((j%i)==0)
0 V  |; P% x7 E" u: u        {  n++;
4 h+ P: i) o, S# E/ `           s=s-i;
1 K; B% r8 X. n* O1 R8 _$ @           k[n]=i;% P# }' h; K* g6 V3 e" d* s! l" ^" ^
        }
( ]1 J" p4 w) }7 V" p( V8 U     }& h' _, }7 k7 P: K' j4 ^6 e0 P; L8 P$ G
if(s==0)
- r, ?& A. x0 Y8 k {printf("%d is a wanshu:  ",j);& z8 z$ k& [  F
  for(i=0;i<n;i++)% x) R. D* G5 P- }
      printf("%d,",k[i]);
) @9 _2 ~9 s0 c5 J  printf("%d\n",k[n]);
1 d3 B; }5 S; `- U }( U2 b0 l( ~: [1 f/ G! \4 D. }
}% _8 V( k2 J" K) f2 l& f
}
) J4 w" m: o4 @! g% }( K" L
  x3 t2 V+ G1 @5 T+ i, O& f7 D5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,3 K- E6 y  N' C/ w0 `% W
请在空白处完善程序。*/& r  t2 ~1 q( X7 E
main(), B& [7 \6 l( x9 D: f# @6 S
{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/
* W( Q' d5 o4 w1 h3 g$ M# }( t printf("input 16 numbers: ");- A$ ]: M5 X7 J. }7 {8 m9 P
/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/6 |2 U3 e. J- T0 }2 A5 j
for(i=0;i<4;i++)
- g, a9 {9 e# ]% z2 @7 V( k     for(j=0;j<4;j++). r4 W3 y# z' }& [# p$ g. f$ e; g
     {  scanf("%d",&a[i][j]);; G# v6 }: n& w, i. w+ y% R
        b[3-j][i]=a[i][j];
3 N) Q, ?* z5 f. q3 ]$ U      }3 @" g8 F* {* v+ |
printf("array b:\n");8 R! w; o4 f# Z/ V2 @/ k
for(i=0;i<4;i++)
: ^9 P  B0 P; I5 u    {  for(j=0;j<4;j++)
! r0 o5 Y2 u# ~0 Z       printf("%6d",b[i][j]);
! J" U2 e% W: u0 ^, V- C( H       printf("\n");, {, C) ^% S' X) j! M* @9 C! u/ f
     }
9 @8 {9 `$ V4 H7 q# q- P6 \}
; L" r  U/ i/ B2 [( U5 l
% n" M) @) {6 U9 N2 @% F1 s$ }3 K4 W# c6、/*编程打印直角杨辉三角形*/' [5 H9 d8 u) M3 v+ Y; j
main()
) Z6 y5 |- I) W! }8 h* m% {{int i,j,a[6][6];
& V1 e. w7 n8 [0 Y! o% ?0 C4 `* Q, `for(i=0;i<=5;i++)" h* e# O  ^2 q3 ^  w$ Q
{a[i][i]=1;a[i][0]=1;}; r, n0 H0 g; ^5 [  G* |
for(i=2;i<=5;i++)5 F% s$ e/ F$ M& w
  for(j=1;j<=i-1;j++)' r. ]) Y/ A' o) }# t' P3 w
   a[i][j]=a[i-1][j]+a[i-1][j-1];
/ H3 o# t  m0 S5 _8 M9 E5 Jfor(i=0;i<=5;i++)* P! u) B% `; N/ s0 c+ x- Y
  {for(j=0;j<=i;j++)
* u9 ^8 _/ @3 {6 ?8 U/ f7 Y% J      printf("%4d",a[i][j]);
: y+ \! d+ y8 }) ?: z   printf("\n");}' F- U0 n' A0 E7 j3 U9 J
}% t9 q" ?+ z' P4 c" j

& r" I4 p. F: e' B7、/*通过键盘输入3名学生4门课程的成绩,6 P9 O9 H* @9 w+ j. v2 i5 W
分别求每个学生的平均成绩和每门课程的平均成绩。
) L* i# y- x+ N" A2 m) Q( `要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
: m" O. O5 k1 s: N% X- d8 U) f其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/  X' Y1 }6 O; u
#include <stdio.h>( E% C! o3 a* I
#include <stdlib.h>
$ K; g" M7 n& H  E; Emain(), T& S6 u6 a; D2 y
{ float a[4][5],sum1,sum2;. @6 V% c( X; K
int i,j;
) i9 B1 x( U. c  }/ W; Ofor(i=0;i<3;i++)8 |( w. P/ y- u. F
  for(j=0;j<4;j++)
- D+ r! G+ w+ J% f    scanf("%f",&a[i][j]);
8 c3 d" U5 ^& p& z+ Lfor(i=0;i<3;i++)
5 x+ f) m6 b, F9 v3 a8 M{ sum1=0;
# a( u$ l* x7 `$ K. [6 J& I  for(j=0;j<4;j++)/ e" i' d2 ~- E8 C
    sum1+=a[i][j];- t  O1 o" F7 F
    a[i][4]=sum1/4;
8 s' R6 x7 F; B; A7 [3 u( ?" i}
4 n! k# ~) G( U4 B; K* W9 s+ i0 Ifor(j=0;j<5;j++)& l" t. ]5 n  n0 i' g& Z$ z
{  sum2=0;
, H9 l# I0 K: Y+ Q7 ]9 X   for(i=0;i<3;i++)
. ]( k/ }3 {9 t. `3 v     sum2+=a[i][j];( U0 u3 m# U- U1 I" T
     a[3][j]=sum2/3;( d4 N: ]4 o, W6 }) c- ^
}
) C! O: k6 p' y: I for(i=0;i<4;i++)
. `1 G8 B' T7 X9 W {  for(j=0;j<5;j++)9 r3 x7 f3 U. G
    printf("%6.2f",a[i][j]);
2 R  p6 `2 Q4 q, T2 e/ X3 i. ~    printf("\n");
  L  c- W+ M5 F+ ~7 Q0 @; H }4 ?2 e6 E5 R2 M  T
}# C; `- K; v/ F2 Y# O
7 ]7 H. _+ K3 G5 d9 p  X
8、/*完善程序,实现将输入的字符串反序输出,0 U8 D* R& @, k. w
如输入windows 输出swodniw。*/; S! Y- K8 f; n1 t
#include <string.h>3 T& X- b) j0 w) B8 j
main()+ ]1 ~* i5 i2 h2 k! W- o  ~
{  char  c[200],c1;
1 r# U) X4 z+ j9 t int i,j,k;9 t' x, |' Q0 u8 F; N
printf("Enter a string: ");
, l* u' y) K* [$ [8 N scanf("%s",c);
" B, @  _8 ^& S' _- P k=strlen(c);" s) b+ ~' ]1 \* k- E0 i
for (i=0,j=k-1;i<k/2;i++,j--)4 |' T5 {/ S: n3 A4 V! V
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
9 P- [3 ?0 a- u2 i$ u7 d+ W printf("%s\n",c);        % b+ u5 s  V+ M' t0 L. r. S+ H
}
7 m, P2 N* ~; ~/ z2 P指针法:
' j. x* D4 h. T0 C: W4 w4 yvoid invert(char *s); d8 S4 r" v5 w7 l, ?& |5 f8 ]
{int i,j,k;6 ?) [/ m) q9 y* g" J
char t;8 j3 p# o2 n+ G
k=strlen(s);5 o! }6 g/ T5 w
for(i=0,j=k-1;i<k/2;i++,j--)
0 M+ I: C$ {1 b8 }2 d% E{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
7 \, {' L7 R9 Q* I$ H}( m; B; w" l1 Y, m; g
main()" C5 e+ ?4 [- z5 e
{ FILE *fp;0 R" I% Q3 A6 y; h. W# w
char str[200],*p,i,j;1 `2 W" z9 H& v; I! O& W+ ]- B
if((fp=fopen("p9_2.out","w"))==NULL) - b% [( `" Q' K' {$ q& g6 H
      { printf("cannot open the file\n");0 n" k( @- v# A' z) v. I
        exit(0);                       + H/ B, @+ ~* Y: E" \
      }
0 O# _2 b" T8 j5 b4 M3 V$ ` printf("input str:\n");
* I0 f8 x/ \3 l# D' S8 T9 P& [0 s3 Ggets(str);4 @, m, j2 w% X
printf(“\n%s”,str);- g3 I9 o& B0 x; D
fprintf(fp,“%s”,str);
1 [$ L% S5 h! Q0 W& G& T) x4 \invert(str);
) N6 x& z/ o3 v5 J! i* ~: t* R& l2 u  printf(“\n%s”,str);
( O% M" `) _- Y. i( W' Ifprintf(fp,“\n%s”,str);9 ]9 y: u. t3 l; Z
fclose(fp);0 O, o- q& F- G( I/ N
}
- K( \  _& k8 V+ T9 T
9 q! u) c5 r+ v9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/8 q8 L; c' P, l4 O& ]
#include <stdio.h>
3 f4 x0 u0 q3 ]/ o' C) dmain()
) S, i3 r+ e4 x. e9 C{  char  s[80],c;
% T2 `+ E; a8 m+ a int  j,k;2 L0 [5 B9 C  v. c
printf("\nEnter a string: ");4 p5 B3 j/ d7 r7 e
gets(s);
7 Q3 S4 u) t( W( I% o# @ printf("\nEnter a character: ");
& l( Y$ z  C) R/ L: K; M6 e+ C  i c=getchar( );
" ~3 m* e0 N" U6 ]; F5 F  ? for(j=k=0;s[j]!= '\0';j++)/ Q0 t/ b8 ?7 @8 h  r. G
if(s[j]!=c)
5 {  O6 q: c  s& l% Z    s[k++]=s[j];, }& A3 I  x. W4 d# W9 d+ E& c9 `
s[k]= '\0';0 k7 t4 T- d5 P" ]+ d. U5 v
printf("\n%s",s);. [( s& [0 j3 Q/ |8 _: r
}5 t" u/ |  O3 l8 _; w
5 d! ]$ `7 I0 q/ B1 V3 g
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
& _$ Q- s+ @' B6 q/ K% e) t" g排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/' Z' |4 o- w6 A
#include<stdio.h>$ {$ v9 [2 a4 \5 X$ Z  T
void sort(int *x,int n)
7 F- E( Y3 s/ h  G{, S% |3 V( A5 u5 }! w1 i5 S4 Z. M& P
int i,j,k,t;
0 B$ c* l& \- U) w, V8 U8 Tfor(i=0;i<n-1;i++)
  l7 J- G+ D3 S/ b{
( u9 |2 J8 j( L7 z+ k9 \# `k=i;; i1 f/ l, [8 L
for(j=i+1;j<n;j++), F1 g7 x  |! `0 ]* V2 u
if(x[j]>x[k]) k=j;
; u+ Z% t& {- e) D" y8 B- A8 C+ E& x if(k!=i)
& L- K. j7 N1 J; p& P; \ {% o$ _0 b1 P3 O$ B; ~
  t=x[i];2 [/ x" o! Z2 m" k0 @7 d4 H
  x[i]=x[k];
( e. x0 d# [' O# K: J% x& O* S% z  x[k]=t;
2 P  K. l8 y& e& D }
" d3 `- |0 c  E}
) p, H3 o# D  R; Y! V1 M}
  k+ Z- {* Y2 ?0 x. @void main()  c' J! p$ p0 R# v7 |7 j0 h
{FILE *fp;
6 N( [5 f$ C$ E% H   int *p,i,a[10];
7 \- A* b5 b- q6 a; C; }   fp=fopen("p9_1.out","w");                     
  L; C) q" x4 A  X( s$ u! j: x* I  p=a;
* o# p- m8 @3 L% Yprintf("Input 10 numbers:");: U1 b- t  `9 h
for(i=0;i<10;i++)
/ L+ o5 G" O. L2 J  X# Oscanf("%d",p++);
- g6 {. Z8 \  H: g& k& |p=a;
5 V6 S7 E; W* ]" }) ]3 gsort(p,10);
9 O, J$ S; j$ P5 N; Cfor(;p<a+10;p++)
/ y( F* M1 c/ m2 O{  printf("%d ",*p);) N* k8 n! S& b7 h
      fprintf(fp,"%d ",*p);  }
7 ]4 o: \  C! H+ I# P      system("pause");# D6 `. G$ v. V) ^. N" }# r" r, U" C
  fclose(fp);; V& y% l$ L: M4 r5 g7 u
}9 M3 D6 f1 J" S- H
: M- g, @% S& l' E! J
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
4 [: s- H6 f4 n' |4 A8 w  main()) w4 n/ i$ }! @8 l
  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/
5 V8 h( B% b- j& c  W+ g     int  x , i, j=6;                         /*j为元素个数*/
; U9 y0 P9 u. c$ @- p     printf("Enter a number: ");
+ h" r7 k# I$ J5 L     scanf("%d",&x);/ q: V( c6 o" K
     a[0]=x;
( c8 X! v+ X3 F8 P* b     i=j;                               /*从最后一个单元开始*/- Z5 F/ Q6 |5 q* z
     while(a[i]>x)/ Y( N' s7 |) Y- o) {- z* C
     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/. `/ z; j) d, h7 W) i# v
     a[++i]=x;2 t: g! W; `4 s  T+ i( {9 H/ M) J
     j++;                       /*插入x后元素总个数增加*/( w. l5 ~; C( i0 t& H
     for(i=1;i<=j;i++) printf("%8d",a[i]);
6 B/ [1 p5 e9 g9 S, Y     printf("\n");8 ?1 x  l+ T8 c. A8 C
}
$ I8 N9 Y3 b5 R* m5 I( _/ X0 B0 v$ f) G: G- d3 M
, s0 w: |& H; y4 g. z4 n' s0 \
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/1 h. q) d0 q7 U# o3 [8 [
#include<stdio.h>: }6 L5 n( x, r0 ]7 A& F
replace(char *s,char c1,char c2)/ I6 h+ T8 g0 z* |9 W
{ while(*s!='\0')/ J0 e) x, t% c0 g. b' P0 V
{  if (*s==c1)
6 i$ B: u7 v' \6 Z2 b       *s=c2;
! [9 \' j% @# {$ c9 A) k: c       s++;
2 l: c6 ~4 R' o) [% t }
3 |0 F5 O' _; @1 N}
( W( x+ _% U/ W7 h2 O8 s3 ^8 Vmain()- ~& h) ^2 `4 U0 c) I( C% N' X4 U
{ FILE *fp;
3 o( B: i- ^" n; G# H# s" U7 rchar str[100],a,b;
, G- ~' ?& u8 o$ m' ]  O if((fp=fopen("p10_2.out","w"))==NULL)- D+ I7 v1 _' V
    { printf("cannot open the file\n");
1 N' R8 Z2 }9 Y     exit(0);                     }
+ {3 T% E( I; P2 ~  _9 y; b2 U. w printf("Enter a string:\n");" g0 n% t9 i& g' ^6 c( j
  gets(str);
% O- b( f" L! a( y; q5 E  printf("Enter a&&b:\n");
. W1 Z3 j* `0 O7 `; W$ ]5 T  scanf("%c,%c",&a,&b);9 ?6 X, M1 \; b% N* E; j. \  ~- q
printf("%s\n",str);
# i, n) A. K6 ~fprintf(fp,"%s\n",str);
0 C# |; g* I, R- Greplace(str,a,b);
. |, S- Z$ ]. D# bprintf("The new string is----%s\n",str);
! H! K! |/ f" P7 b7 bfprintf(fp,"The new string is----%s\n",str);
9 p4 d  U6 t5 _. d  R& @, {fclose(fp);( [! d+ v* i7 x3 e) S
}
5 R6 |! d# s# t0 s) C% K/ z! j6 ]8 f  E% A/ i
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
" M" _4 _1 W2 \( H, `, }+ J,不存在则返回-1。*/
1 K6 J5 w0 I0 {9 k, Xmain(). k; a2 j8 K1 r1 ^: o
{char s1[6]="thisis";char s2[5]="is";
8 M5 J$ I# W* u* G3 H" E( \! {printf("%d\n",search(s1,s2));8 N( s* K8 \; ~+ m$ X
system("pause");
: K! W, i6 Z4 ^: U9 d}# Z5 [0 m. u% o2 R  N- d: x+ k* w% x
int search(char s1[],char s2[])
0 g  Z& ~; X7 Z! m! u9 d4 N8 J{int i=0,j,len=strlen(s2);
6 Y" O7 x& _, q, C- i9 u+ Kwhile(s1[i]){
. P1 o$ v7 L' F% ]0 ]0 F% hfor(j=0;j<len;j++)3 J) W$ ]. d, w: Y9 @
if(s1[i+j]!=s2[j]) break;
9 W1 _5 ]! U7 m) Q/ v8 W0 cif(j>=len)return i;
5 c( q" _- T+ Pelse i++;; C$ U7 w) ?, b
}1 ^% x9 ~' I3 V0 I' _6 a
return -1;
7 f5 I$ |2 }' a$ j. x}+ W! s  \0 Z% Q1 Y0 h
% ^3 Y+ X: g  m, O+ Q
14、/*用指针变量输出结构体数组元素。*/4 Q& G5 O5 g$ l  S4 c
struct student
  |5 K5 O( T) o{
5 Y' J& ]% ?# ]& e6 Y% Pint num;
4 R% u3 I: t. T% uchar *name;/ G. x, u/ ?5 y. i- v
char sex;
" P+ K% A, ~: p9 |% Mint age;, A, G7 ~$ U, r- T( g
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
) }% C$ B" ]. n1 Rmain()
- @' S& ?+ U8 d& b4 K! y! |{int i;
+ n, ^( N6 r) _+ K5 i; S3 hstruct student *ps;
) i; v, J" \7 u5 W0 t' K6 y" hprintf("Num \tName\t\t\tSex\tAge\t\n");  " C2 H0 h0 K6 \) W) Q
/*用指针变量输出结构体数组元素。*/5 U4 ^7 s2 n& X$ w  w* [$ Z
for(ps=stu;ps<stu+5;ps++)
/ f6 E/ @; @, a- s0 n. O8 Y3 b3 iprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);$ x. E7 U& y* N3 G1 F2 a# C
/*用数组下标法输出结构体数组元素学号和年龄。*/; x- o& ]* t6 K
for(i=0;i<5;i++)
7 y. Y! |4 Q* {) o% T; y% tprintf("%d\t%d\t\n",stu[i].num,stu[i].age);
+ P4 p- r. y: K}
7 o- p8 {0 d: ]  u4 `5 Q) P8 _$ t$ V" k) Q
15、/*建立一个有三个结点的简单链表:*/6 s+ Z8 G( q2 R. S
#define NULL 08 E" r! p2 h- n$ T( ?9 c( S# f! t
struct student6 g9 h) _* \" N
{0 z/ o7 ?3 ~  l% r2 X
int num;
0 y# K) J! q$ @0 B$ t# Q8 k2 pchar *name;$ I- r+ f6 T2 y
int age ;
$ u$ V# \2 G& A, V1 Z9 Tstruct student *next;
0 n( s& B" a0 Z+ {/ Z4 Y( `};
' C8 e7 [& n3 X5 W2 ?( Q" Jvoid main()
/ T/ h: N/ [, z0 C9 T1 u{
6 \4 ], q, }" d; M7 vstruct student a,b,c,*head,*p;
+ ]6 ?: ^! F! x8 Q7 ^a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */( u6 d. f. C% e9 |# B
b.num=1002; b.name="liuxing"; b.age=19;  V8 w' L" Q9 U9 w
c.num=1003; c.name="huangke"; c.age=18;" s( {6 j5 a* R2 c$ x8 m' y- I' S
head=&a;                           /*  建立链表,a为头结点  */
6 |& x- W0 Y9 b+ I& ~' @a.next=&b;+ t( f8 P' x# r; T2 k* A2 r. U
b.next=&c;7 B9 |* H# L2 S5 k& F( B/ J
c.next=NULL;
1 U& {+ q  `9 v% B. }# ~9 r3 U2 c( np=head;                            /*  输出链表  */& e4 E0 U8 x' K* `
do{- J  \2 w& T7 s3 H
printf("%5d,%s,%3d\n",p->num,p->name,p->age);  ~! _; `! z0 c' q5 Y4 L; o
p=p->next;
5 G2 o4 d0 g( X+ O7 `8 b}while(p!=NULL);
; v5 y. y9 j' U2 R9 e}
3 P9 a& @6 b/ L4 l% ~8 r, G* K( k. k* R( G! L! r
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/* {5 Z0 D3 K8 H- X+ h# p
#include <stdio.h>8 [1 q2 Y/ |) {/ Z6 b0 y
#include <string.h>
3 y' O1 o/ @6 d' S7 w! K- z#include<string.h># g+ z6 C3 s4 O
main()6 ]' w3 o" |7 M; b% }
{ char s[100];* q9 H6 b# A. q) R8 a2 A
int i,j,n;+ z6 U/ n  \8 C3 ~8 y
printf("输入字符串:\n");
  m7 X) J5 z+ ^0 U# [9 vgets(s);
( I2 |7 o% D& ^, b5 pn=strlen(s);
: _3 w# U' z5 h! {! A8 s. b, Zfor(i=0,j=n-1;i<j;i++,j--)1 f) T; `. |# i7 k5 }1 e3 F* b8 q
  if(s[i]!=s[j])   break;
# `+ h  `/ D1 e6 ?if(i>=j) printf("是回文串\n");
9 K! }- q. I9 B* felse     printf("不是回文串\n");
0 X# x5 y- }8 _1 A2 u}
( M% y: V% I& }( U, x
: t( j! t- o0 N3 C17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/* k. O6 ^/ [6 J9 ^! Y
#include<stdio.h>5 k- {  A9 y9 ^3 V/ V* E# r! [
void fun(int a[],int n)- z# y) B6 K0 \
{int i,j,t;
8 c& i5 u& @9 F! |' ?$ ?; Cfor(i=0;i<=n-1;i++)
$ N: l# J0 M2 m% ^3 _# G. Z+ Jfor(j=0;j<i;j++)
. x/ }3 Y. ~* e5 k9 O. \  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}7 ^; F  }" ?! m0 o4 i
}
8 `% M' |) m$ y2 x! T2 O- V: amain()
; b1 u! E+ {# x. W# H7 h{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;( q  U% l9 E" b9 C$ D0 U
FILE *f;
+ Q. t- z7 p$ C4 @if((f=fopen("myf2.out","w"))==NULL)) Z# E! e4 _' p' P& U
printf("open file myf2.out failed!\n");, C8 @% A. n3 ?# v7 _0 a
fun(a,10);
6 v4 @, _) v/ s7 `/ M! ~4 cfor(i=0;i<10;i++)3 F& j5 b0 ^; ^, t1 b6 z
{printf("%4d",a[i]);
% e/ i+ _; ^! |6 U6 @( c4 c4 t; Y  fprintf(f,"%4d",a[i]);. p% K( r) Q7 Z% O4 w# b+ \6 r8 V" S
}
7 x! h2 d- E+ @; x  `+ e) |0 ~fclose(f);8 |, r- _# V3 T/ H8 Q5 _
}1 g" b. G$ b$ {: P" a# n8 k. r
: [/ E; Q% n6 n9 A3 P
18、编写函数countpi,利用公式
, k6 M9 b- ]0 K4 {  @, `: f     
$ a- t1 A" C  f& O 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。1 h9 ~& g5 P; v1 {1 Z& _
#include<stdio.h>
5 A( ~3 D' ^1 Ydouble countpi(double eps)               /*eps为允许误差*/4 U: `, T+ T' R8 |' _
{& G2 m9 ^' ^3 |  g& {0 B& m: _. J/ \
  int m=1;% D5 ~; h2 B# x& ]
   double temp=1.0,s=0;
' L$ B: ]9 {  X   while(temp>=eps)
) S; \- M! P/ }% L$ f: S   {  s+=temp;
- O3 r# }( B: u: E4 K      temp=temp*m/(2*m+1);, w# J5 V1 G0 t6 s
      m++;( x- N! P. H9 p6 T& Q8 h
   }# D  M/ J/ e" }1 `
   return(2*s);/ }- Y, t5 Q# x1 ^* `: P+ U
}
5 e+ z+ d$ s1 }2 N/ _2 N3 F' Vmain()  q& O. x1 g9 {, j! K8 Q
{FILE *fp;
* X" j$ _5 ~' L/ V: K   double eps=1e-5,pi;
2 q4 p5 ]4 _  e* g% X   if((fp=fopen("p7_3.out","w"))==NULL)
" U0 y* x  F/ a; I! z { printf("cannot open the file\n");
/ ?' L9 J0 X( {( k$ U6 q) ^& h   exit(0);                      8 f8 _% P! c% m( S
}
$ N0 l( A3 b: n9 K pi= countpi(eps);
- O# g! a: l6 s. c% q printf("pi=%lf\n",pi);
- C/ l( _! n6 e7 }. i/ Tfprintf(fp,"pi=%lf\n",pi);8 e' x8 s8 _$ U+ b3 h4 v  Z% A* b; j
fclose(fp);
1 \) R9 i( w: S5 ?}

该用户从未签到

11#
发表于 2015-10-30 09:08 | 只看该作者
都是for循环啊

该用户从未签到

10#
发表于 2015-9-27 21:06 | 只看该作者
谢谢分享,谢谢

该用户从未签到

9#
发表于 2015-9-15 18:02 | 只看该作者
好多看不懂,还需努力!

该用户从未签到

8#
发表于 2015-9-13 16:27 | 只看该作者
谢谢,学习了
  • TA的每日心情
    奋斗
    2020-7-22 15:05
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    7#
    发表于 2015-9-13 12:50 | 只看该作者
    好东西要收藏,感谢分享。

    该用户从未签到

    3#
    发表于 2015-7-20 16:56 | 只看该作者
    第一个一看就很常用,其它的,看得太累………………。:lol:lol
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2026-4-18 23:10 , Processed in 0.140625 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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