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

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

  [复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

5 H9 s* ^+ p" u# E. x  A& Z( X1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/3 W1 o  W+ l& g" n% T% j, _. r, x
#include "stdio.h"
/ u/ B- Y4 P7 D& amain()
* l% I" h3 \, C$ ]- M1 e{int i,j,result;6 a: x. ]0 {3 G, Y
for (i=1;i<10;i++)
& v2 x) b" R0 t { for(j=1;j<10;j++)
5 X$ ^- P) s  q4 U* g. j     {
8 w3 }3 b4 j9 Z0 n) W/ U, F        result=i*j;& q" J) j5 e; J" W0 I
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
/ K- y% _& B4 V8 O1 f     }
) b6 K! n  I2 k! n# _    printf("\n");/*每一行后换行*/
: N* }" d0 [1 r }8 _/ \' ]/ j8 @. \" p
}
- d3 F; c0 Z, U% O) i4 i) p3 }( i# L2 B
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
5 V6 G2 b4 C: a0 ~兔子的规律为数列1,1,2,3,5,8,13,21....*/
, }2 R' h% ^; O8 S7 L- Pmain(), |. n% G7 o( a7 X/ N+ T
{  x' g8 A; z; B) R9 ?* l& s
long f1,f2;' H$ o" N# H) j- P
int i;# w6 r1 r5 ^- q4 ?( t
f1=f2=1;5 `0 G- l. A% W7 z. z
for(i=1;i<=20;i++)- \7 ~* q3 f6 L
{ printf("%12ld %12ld",f1,f2);
" [& Q- M& T: h9 l  u& L6 ^: ^   if(i%2==0) printf("\n");/*控制输出,每行四个*/
( V8 b3 |& H+ n% }+ ?( o   f1=f1+f2; /*前两个月加起来赋值给第三个月*/) v7 [* z! u; A7 j1 Y# o1 e# {7 z! Q
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/) e' ]) p/ j, o- n  j8 C
}! A& n' x$ k. ]" k2 ^" x
}# r7 n4 b# e/ ^. ?6 W
0 q7 E/ V; |( Y4 P8 |
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。- C3 l2 Z: K; C' ?
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
) V- i* ~! S3 I/ r7 }- H4 ]     则表明此数不是素数,反之是素数。*/9 K& C* c. @+ F& x7 |
#include "math.h"6 @, a: ~# l, f
main()
2 L( h  V  m* `* r& f) ^  K{
4 n& ^! `% j7 uint m,i,k,h=0,leap=1;
( y: }0 j. p% B% k1 e0 }1 @- M+ x, s6 uprintf("\n");9 I- u4 }7 e$ ^/ K; _8 P
for(m=101;m<=200;m++)
" Z/ p9 x) j6 k7 G5 A0 U) D { k=sqrt(m+1);
) |2 j, V7 @( w4 D+ \5 y- t   for(i=2;i<=k;i++)
4 s7 X) k# o% B; Z1 g     if(m%i==0)! U7 i( Y" @9 R% P
        {leap=0;break;}
1 F% N; o: j/ l) d7 a0 z! n# }2 z/ l     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
; _/ Y0 q2 u5 q- I  n" D& ^        {printf("%-4d",m);h++;- H- r. ^6 \( V5 K+ w* ^/ B0 n' H( g- X
         if(h%10==0): m3 k; \% E- i4 |* B# Q
             printf("\n");8 j( l" s0 `5 `/ f: E
        }9 ^. J* P- G" B" B7 l
   leap=1;- @. c; ?7 m; p$ a4 D! H: }
}$ j7 s% a. S$ w" s: m$ S& E
printf("\nThe total is %d",h);
8 v# `8 h, F% z}& P, q& P" _/ _, t: u1 D3 r' i

" T( Z' E: y7 m: o3 b4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
: n/ {. n! B8 c3 T% Z4 o+ p' B# n   找出1000以内的所有完数。*/8 j" `1 v- u4 t$ z2 p/ P
main()) M2 g9 p+ u8 a+ X
{
( n6 ~8 L  ^+ q+ H. E) d. X1 M- ^+ L# Fstatic int k[10];
; @% Q6 A/ k1 a& O8 e+ \int i,j,n,s;
+ V. Z: e) N1 \, W1 n& f( \1 Kfor(j=2;j<1000;j++)
% o. K3 {" C8 h' a" M' c! l. {$ {7 ~  {
! {4 s8 w7 ^7 L. p" Z- R  k   n=-1;
' b( O! ?) ^  X2 d   s=j;, z+ b- H* Z. L- M8 N  o% n
   for(i=1;i<j;i++)
9 t+ _" e' l4 q4 b     {if((j%i)==0)! N+ K0 f8 I% \' T) F
        {  n++;
8 ~/ K( Q$ s9 h+ K           s=s-i;
. [, y+ B( D/ z$ `3 Z- S, S8 Z           k[n]=i;
( P$ p! g1 X+ V' [" k8 t. t4 K        }
# u( |- O4 d8 r8 v  p     }
: }+ ?! A% K1 v5 P) ~  X4 W6 \if(s==0)# w  Q0 C- E, ?* J# |( r
{printf("%d is a wanshu:  ",j);, O, V0 ^  E0 y' L) Q" Q
  for(i=0;i<n;i++)
% X' t- c' p! W2 V6 `. F; K( e      printf("%d,",k[i]);. ~8 g& @+ m/ a- A3 ~, `) n
  printf("%d\n",k[n]);
+ ], O+ @: @0 ?0 a- Z& h& @ }
+ B: p+ r/ Z' O3 |}
' o$ d. p3 k% T, Z% p% i% s5 G$ q}2 G" n; f7 T" m$ n* A1 L; m/ ~
- Q7 i" W) h( o" ~/ T9 q& z( N
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,) I) z# c5 Z! o% |" d7 e
请在空白处完善程序。*/
4 Z0 a, N" X) I- k3 ], u0 {6 `) Bmain()
/ M$ J# [9 \/ g. E/ W) x; E{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/
1 A* }- x8 v% w; |. B1 b4 @) U printf("input 16 numbers: ");
1 l: q# Q9 R# t- n2 e0 E3 b) X  N/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/! s' n: r! F2 o# Z
for(i=0;i<4;i++)) _" T2 ~7 M4 |* \7 c8 |/ p1 X' q
     for(j=0;j<4;j++)  ~/ _, g) k2 l
     {  scanf("%d",&a[i][j]);
! b- P7 {- f, T8 |        b[3-j][i]=a[i][j];  p7 A$ s8 K7 W; }
      }; c/ {0 E* |% p
printf("array b:\n");4 K  k7 A" D7 J/ E: u% |" Z
for(i=0;i<4;i++)3 W7 v* I) h  _# |& k" o# U
    {  for(j=0;j<4;j++)2 j1 o1 C2 v4 O/ z! M1 S' T5 \
       printf("%6d",b[i][j]);
) n- O* {3 _) @0 p$ T- n8 g* ]6 h" C       printf("\n");
0 {+ u1 b+ b6 `; {7 T4 h' U     }2 U4 n# q0 ~7 I7 {3 l/ u+ ?$ e
}
9 E6 ]3 Q4 W. `! U  e
8 |$ p; M& v2 g1 V  E5 M9 ?1 c6、/*编程打印直角杨辉三角形*/
" S4 a3 h0 X7 a. \main()
, B2 b, l) I; C4 x' b( S# |& @{int i,j,a[6][6];* D% n3 |% K  @/ l
for(i=0;i<=5;i++)4 L! o3 I2 n  Z1 a3 z% M4 A
{a[i][i]=1;a[i][0]=1;}
1 V3 `% H% H2 Mfor(i=2;i<=5;i++)1 K) V7 I& r. S! R+ S
  for(j=1;j<=i-1;j++)
( H7 r/ l! b- N. k5 J6 ~5 l   a[i][j]=a[i-1][j]+a[i-1][j-1];) _* H/ l. C: G6 \3 V, @- A
for(i=0;i<=5;i++)0 p9 i, z: W' ~. ^2 _/ G
  {for(j=0;j<=i;j++)
$ M% o7 g* t& q0 P- `      printf("%4d",a[i][j]);. T* X0 Z0 p* X5 Q- K! }! ?+ Z
   printf("\n");}
2 f: ~  z& K( L0 Y* P  z8 E}0 n0 K: x2 i! I: [6 W# p
4 ^' ]: s6 o+ ]/ w
7、/*通过键盘输入3名学生4门课程的成绩,( W6 _$ [' |' m9 r6 V2 T- M3 X
分别求每个学生的平均成绩和每门课程的平均成绩。1 V2 p& h# M4 L1 v
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
# r7 `: c8 m2 }+ f; ]4 t其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
/ G$ h( Z: B/ p  H8 J6 H( ?#include <stdio.h>
+ h! J* h( V4 J  s2 q#include <stdlib.h>
- I% d% I" H5 [+ P, Umain()" g4 P* f$ N+ Y& l3 D% R5 M
{ float a[4][5],sum1,sum2;7 g7 m- `" H1 K/ @
int i,j;. u2 C7 w! ^- M# E3 m
for(i=0;i<3;i++)5 k7 V+ M6 t' V' f$ y" X  y6 ?3 H" \
  for(j=0;j<4;j++)8 A, J& P0 U6 m9 f* T. Y
    scanf("%f",&a[i][j]);+ A0 d% \8 j& _  n0 p
for(i=0;i<3;i++)
1 W& F+ {! r9 d5 R6 B# {+ f{ sum1=0;% Q* `, x" I8 F1 G1 j8 ~  x
  for(j=0;j<4;j++)
8 _) J4 W" S% a    sum1+=a[i][j];9 |$ e* O5 I2 _7 s+ v) B, ?/ m. C
    a[i][4]=sum1/4;, x8 j% p' G: L& }# F
}
5 V6 L1 }; A2 d8 ffor(j=0;j<5;j++)
! U% x3 |; Q' \( u0 T4 `6 d{  sum2=0;1 \- Z$ p% E* l/ o! z9 b
   for(i=0;i<3;i++)5 {1 e1 ~) [, k8 \- J% p
     sum2+=a[i][j];
  P) r. @" q8 u, B2 ~     a[3][j]=sum2/3;
3 b% }( U3 s1 t5 @1 r+ c1 L2 O6 { }
7 }5 ^4 Y+ ?! n+ V1 Y. P1 d  x for(i=0;i<4;i++)
' n! W0 ^; q, w/ K, L0 _ {  for(j=0;j<5;j++)6 K$ f! ^8 s2 L' V2 E& e9 b
    printf("%6.2f",a[i][j]);5 l  O7 T# [; f% i" _8 h0 |7 ?. @' ^
    printf("\n");6 l$ f" i3 k* O* Z# X; ^% r+ f- J2 _
}6 m* f) N4 \( j$ q
}9 _* r9 \- I4 ]. x  M4 S+ |9 R8 }
. }7 v# i5 w9 n
8、/*完善程序,实现将输入的字符串反序输出,) \' g; T. n# [( h
如输入windows 输出swodniw。*/5 `2 |2 t' r9 f* r
#include <string.h>. n  ^2 c1 a' f( ~* H4 ~" B
main()2 g& q# {7 {; O8 D6 z$ G+ v( P7 D* v/ L
{  char  c[200],c1;
2 D  ^8 u. v# c: N; h2 s7 k5 j8 n int i,j,k;
0 I/ w- _# B" T4 T/ M printf("Enter a string: ");
& a* Y! L. `6 j1 F9 \, h% X scanf("%s",c);
1 h: \0 t8 l; |. ~2 x$ h5 N k=strlen(c);
8 `+ t5 G7 m. | for (i=0,j=k-1;i<k/2;i++,j--)
( i! e: P5 l/ [: G   {  c1=c[i];c[i]=c[j];c[j]=c1;  }& q% D& G6 C' Y: ]* u" ]7 ?( j- |
printf("%s\n",c);        
/ ^7 y9 I  m2 _" D8 m$ K" C" w}
* P( k+ N+ m9 X* ?% f! A指针法:# H1 r4 R5 F' D3 ]  J8 L
void invert(char *s); g2 l* c, \8 u4 I: e4 N" Z3 k
{int i,j,k;) B* B! [) ?2 l
char t;0 L( o9 T9 A/ c" j% N
k=strlen(s);
1 H3 [7 C9 ?, d1 g/ Qfor(i=0,j=k-1;i<k/2;i++,j--)
: d6 S: \' i" |+ U; {  }{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
( i) K4 C# x) W( D( ^0 n3 w3 Q}$ C! o7 J- [5 i& ]1 \: {2 w* n- i
main()/ M# Y+ e' U& G+ s7 b+ \
{ FILE *fp;8 t5 x2 g8 z7 N7 B
char str[200],*p,i,j;
' V' T& {9 i: `7 N- y' \. a if((fp=fopen("p9_2.out","w"))==NULL) ; N0 J1 A! C2 W. X
      { printf("cannot open the file\n");6 @1 H. @/ \% u8 l( Q
        exit(0);                       + \: ^' N5 x* n) B5 M" R5 @
      }! c! r, w* L! m" ~3 D. [- l+ N
printf("input str:\n");
0 ]( A) [: p8 x% d* `gets(str);, v5 B& N( P3 x8 E. p5 P# }. U: Q
printf(“\n%s”,str);
( s& s0 k, h3 ]. D: xfprintf(fp,“%s”,str);
, @  n1 F3 _5 Ninvert(str);
. y: @5 p, `9 e8 ~6 v% H  printf(“\n%s”,str);8 k0 }) ]% u0 ^/ h7 m+ q: v. H' e; N
fprintf(fp,“\n%s”,str);, p$ v; Y% s% v3 B7 W# ]3 P# a
fclose(fp);( g% u8 P' S/ j4 _" Y9 _
}1 v/ ^+ N) r; E4 d

0 U0 p, u, n# g3 S( C) M1 s/ g9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
) n4 T( Q. h4 u6 c( A#include <stdio.h>
$ [2 W4 O+ }5 g. a& a; Bmain()) P) ]/ _. R1 r
{  char  s[80],c;+ j: G3 \: r0 t* `* @4 |
int  j,k;4 j$ X8 v% L% i! K% c. O
printf("\nEnter a string: ");
1 f6 n) E) ?- X1 o$ W& E* m0 T0 q gets(s);
8 N3 R* _8 l+ ~/ s" R4 M  i printf("\nEnter a character: ");6 v. l# g3 A) p! @" R- U/ }
c=getchar( );. H% ?1 y% D- X& O' i
for(j=k=0;s[j]!= '\0';j++)( V; D5 q, J: }# P, c; X- @" |
if(s[j]!=c)$ C2 E3 i5 e8 p
    s[k++]=s[j];
6 P0 z6 p3 c, G2 x3 T2 h9 r0 s s[k]= '\0';
# {. l5 T" ?4 i printf("\n%s",s);3 D/ Y% B& I. P
}
2 a. _4 ?7 J5 x
" K7 H6 U# ~" C( B4 O, p: \10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小% M) M& U, L; r  @  A7 e) Q2 G& t
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/% x: T. g: e+ Y" u5 `. @' _1 t  X
#include<stdio.h>
8 d1 @% f7 s- J: `9 L2 Lvoid sort(int *x,int n)7 u1 E  i# Y( c1 P" N8 T; \! u5 t
{. P  I6 j  P7 T
int i,j,k,t;
  B$ s" y) B5 p2 Yfor(i=0;i<n-1;i++)
* B) ]! ]2 @! W8 ?1 Q3 X* M# Q{
5 `: `* I  @* R6 ]  Z! A$ H# [k=i;9 {6 |6 f7 _) l' _, Z
for(j=i+1;j<n;j++)+ D$ R# Q4 j6 X) T
if(x[j]>x[k]) k=j;
7 m2 G& {! |: b- W if(k!=i)' F! l4 p% @' I" Y
{6 Q4 b% V  u2 H  ?$ p  G
  t=x[i];
9 _' ]3 k6 s* H! n) \( }1 o% Z, v6 v  x[i]=x[k];3 [6 _! c+ [' n
  x[k]=t;
; E. W: P& }8 R* B }
$ l8 m' J, t. L4 F}
( Z- t0 i+ q0 }: T, t! n. X}
: p: F% v; O/ u& X. z# M) q/ uvoid main()
- \4 S  g3 j: Y3 L* S+ @{FILE *fp;
. I' Y. Z$ q' K- w   int *p,i,a[10];& I( _9 D1 \+ x3 F# t) u3 ]
   fp=fopen("p9_1.out","w");                      ! |4 B0 l. f2 \! b' i
  p=a;- g" D/ t5 p4 T! ]
printf("Input 10 numbers:");- A6 s+ C% o: z: v1 i6 ?* a
for(i=0;i<10;i++)* y5 H+ s) G# V
scanf("%d",p++);
# I% u) W: D6 K/ `- Up=a;
4 l8 K' g' Z* j0 \* ^sort(p,10);
$ b$ G. j* |0 Q& v) Ofor(;p<a+10;p++)
3 d# O" c- O8 i; W- Q  ~{  printf("%d ",*p);( R4 p3 }" P' e  Q
      fprintf(fp,"%d ",*p);  }  f' Z% J. _, |6 }: _6 h# h
      system("pause");; G8 z" t& U6 L2 A
  fclose(fp);
8 U1 E. W" D$ j; \}
7 Y6 K* U  }# I0 s0 q. R& R* m" q7 \8 q, |  v
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/* }% w% {4 B* B" a
  main()
7 S3 r; L7 V- z. Q) \) Y6 _  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/  p, ]8 c4 D1 Z0 n
     int  x , i, j=6;                         /*j为元素个数*/7 U9 _0 e6 Y1 s
     printf("Enter a number: ");" s3 b- S; \/ H3 r; M
     scanf("%d",&x);
/ v% C/ |9 j; E0 N0 N5 N     a[0]=x;2 Z, a. ~7 w5 s! B$ J
     i=j;                               /*从最后一个单元开始*/
7 V# D/ o# j' h3 X& M$ h. |) L* J0 y1 L     while(a[i]>x)
/ E; c5 L; O, n4 O9 z% ?% w$ _     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/
" m. p1 R  t2 P! y' {1 c4 ^3 T     a[++i]=x;
$ I4 y3 Q6 D  u1 l6 f     j++;                       /*插入x后元素总个数增加*/
# H& k& _- K- v  Q' ~& q* D     for(i=1;i<=j;i++) printf("%8d",a[i]);
; J" p- Z8 I+ D" |: B5 F     printf("\n");
4 V; q. L5 @$ R. A- ~9 U}/ \9 D( n/ f3 o; _8 f; K

8 n- P8 t) `* j3 ^8 T( ?
1 c6 K7 y1 D1 J8 t: g12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/1 r( W; ^- N) A. C
#include<stdio.h>. y- m$ J9 ]2 M
replace(char *s,char c1,char c2)
. _3 ~4 R3 ]+ Q{ while(*s!='\0')
/ t% n. m$ c& n& |! _ {  if (*s==c1)% d' p8 |! M! s: V! \+ T
       *s=c2;
( ]8 k* N* R; v4 e       s++;( }( S' Z4 h8 s! q$ t; F( |' s
}9 R: O, f- y- B$ C1 h
}
) I, h2 ]% U+ ]0 F3 F* ^( O3 v. tmain()2 J2 ?1 r( c' Y: Z
{ FILE *fp;1 `! x: k. h, D0 W7 o4 B4 E
char str[100],a,b;
+ i, P! n0 g3 X4 q$ x* y$ y6 ~6 F if((fp=fopen("p10_2.out","w"))==NULL)
& A) D+ H2 E% t' q- w5 A) k    { printf("cannot open the file\n");
% a6 l! B& M% O" k# ?     exit(0);                     }
/ X5 P2 Z1 |  {6 L printf("Enter a string:\n");
2 G; I- o1 e- m0 \  g! Z/ m1 X  gets(str);
$ D" D6 D, C( G  printf("Enter a&&b:\n");
( S/ v! c2 s+ a0 l3 T  scanf("%c,%c",&a,&b);6 o4 _* _* |! N2 Y, E
printf("%s\n",str);- `9 V' }& ~8 J' b1 z
fprintf(fp,"%s\n",str);# }3 E2 B5 a" _1 h+ ?1 M- b9 i: e
replace(str,a,b);2 A0 B" h( w% V/ C
printf("The new string is----%s\n",str);, x& K7 D: l6 _" z" K8 J! }
fprintf(fp,"The new string is----%s\n",str);- L% X4 z$ d$ R, r: i  y4 i
fclose(fp);% C  o& I+ T4 Q6 ?/ C/ Y* m5 a
}- {4 k3 `4 _9 y  I

+ t" X3 r- k5 p) O13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置( p0 N/ ~' K, d3 k3 B9 @
,不存在则返回-1。*/" f' D2 x4 n- {3 s6 }* p
main()$ v( D& U0 _5 Z1 T+ ]2 E
{char s1[6]="thisis";char s2[5]="is";  X; e$ A7 T5 o5 T. F4 e
printf("%d\n",search(s1,s2));" K. r+ R) s) e  W! D) j
system("pause");+ B9 I6 |' o2 w/ I' z
}+ C( o3 j$ B& F1 d2 C
int search(char s1[],char s2[])0 y  {- I, d7 @! }& r  G
{int i=0,j,len=strlen(s2);, g+ c. S3 S9 W4 t! Q4 g
while(s1[i]){( S+ h/ S) O, J  b
for(j=0;j<len;j++)4 T7 x" G. ]! r# ]6 ?
if(s1[i+j]!=s2[j]) break;0 p; q8 t( L# j+ N- Z. [
if(j>=len)return i;
4 D6 ?& O; u. p' U" E. ^else i++;
) v/ n5 D( K$ x$ r7 Y  m$ w! D}" j# g6 j' H: T: g4 V
return -1;: J5 M1 L% o/ h2 \' t
}8 C( F* |, _$ Z  |2 [
0 C0 Q4 k; f: D7 I% C; K' P
14、/*用指针变量输出结构体数组元素。*/7 z1 L* B; ]. T% r( V
struct student$ F3 T# M/ {9 {4 F
{
( `7 t. X6 {& a1 Pint num;
2 K' X5 P2 T( v, ~4 n* m1 Z& U% ochar *name;
7 J" j" y: T; N2 r; z- fchar sex;
6 ]$ U0 R) K0 N! r* `int age;
, @, n6 H$ B+ Y- |: Z( x! Q}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
1 D4 r- }7 C9 m; g* o  W; |  Lmain()
& S& g) T" C7 F, J{int i;; C4 @$ q) O5 F5 K' q; G
struct student *ps;0 F$ J8 h$ o% X9 n
printf("Num \tName\t\t\tSex\tAge\t\n");  9 ?3 b( s3 d4 N2 G" c1 L
/*用指针变量输出结构体数组元素。*/
, j2 k; h5 D4 G! E: Ifor(ps=stu;ps<stu+5;ps++). {/ i5 D) ?/ n- _, D
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);+ ?' B0 P: W" Z
/*用数组下标法输出结构体数组元素学号和年龄。*/
; T* g$ b+ D- n3 ffor(i=0;i<5;i++)& ?- v+ C3 w5 r+ A* k& l
printf("%d\t%d\t\n",stu[i].num,stu[i].age);/ V. b5 C- v/ K6 k# o; J# A
}0 i$ x/ p9 h% |5 M+ q

7 Q. ^: `- j* E, t15、/*建立一个有三个结点的简单链表:*/
$ K. F# f0 ]" l) E2 c#define NULL 0
4 r) q& `0 W- \6 Z$ L9 C3 ustruct student  ]. [4 q/ P! D6 r# n* B. e
{
0 v6 x+ f' \7 I# C! oint num;+ G  w/ C7 x9 }
char *name;
( o$ ~. Z1 Q/ \" f" iint age ;: B/ `. ^( [4 f$ t1 N! l
struct student *next;
: p+ E0 l, k  J0 ~* i: _+ a};+ X6 X9 {" v2 k) N# f  V
void main()
4 y8 b- F% {" H9 K- g1 D  K6 S{  P4 J$ }( I+ O0 ]0 l
struct student a,b,c,*head,*p;
+ R: ^. W1 K: `: v! P' W7 F# o$ na.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */1 a- Z' [. w  r$ Y7 C5 s; ~$ Y
b.num=1002; b.name="liuxing"; b.age=19;6 Q, f% c3 j& i$ I3 {0 n7 W. x" v
c.num=1003; c.name="huangke"; c.age=18;  Y. }( c0 M9 I4 U  |6 Q
head=&a;                           /*  建立链表,a为头结点  */
* V: Z" `: R7 h, c& T' _a.next=&b;6 X% N  w6 Q' D  L
b.next=&c;
6 X& O( y# d9 |# w1 a3 J" U3 R% e/ zc.next=NULL;
8 @+ b' ]7 p( K5 M- I8 yp=head;                            /*  输出链表  */$ H$ P% v: f5 |  X6 R8 A5 p
do{' {7 Q! i- J+ W5 Z) \% x  c
printf("%5d,%s,%3d\n",p->num,p->name,p->age);" Q7 x% c+ \+ m! F
p=p->next;  I$ R: n' v( {
}while(p!=NULL);
; T# D) t# D) t$ v% j}
# Z# k- E$ M2 O# P' H$ Q4 X' e: l) a# J; c) z
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/4 X  J' \! H4 x# t. r6 a
#include <stdio.h>( z; _# q3 z7 `' K! K
#include <string.h>
" h9 v1 d  s5 F#include<string.h>; q0 k8 L7 a3 U* A3 z. V
main()
. ?( `. m* c8 H{ char s[100];' A; l) t9 a2 L! A- U! H, [
int i,j,n;. p( f6 Y' S: s5 H
printf("输入字符串:\n");
# c8 ^; X3 z* C5 d( O( t5 W, ]6 rgets(s);! [" v6 i1 i; h# t9 |' B: T
n=strlen(s);
" [. D6 D8 |- S8 [* N* `5 W6 Rfor(i=0,j=n-1;i<j;i++,j--)
" c* B9 ~7 l$ G  if(s[i]!=s[j])   break;9 ?* }5 o$ S5 g  u7 y& Y) J
if(i>=j) printf("是回文串\n");
+ Y( F0 H3 b; a# A6 w7 melse     printf("不是回文串\n");( E& p4 j* B, b4 Y
}
/ e) _7 _* j% e% }$ x, s
: L$ D5 C+ x% Z/ l4 ?17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/& V( |; M4 T0 p% b" g9 D$ f( t
#include<stdio.h>& v: b- B% q. i  m: N
void fun(int a[],int n)
: C4 s- d! W* |- W5 m2 l$ \5 B{int i,j,t;
: Z# w- Q3 A! Z% u. R8 y0 Tfor(i=0;i<=n-1;i++)8 T* |$ Y( g% U- s$ |7 [
for(j=0;j<i;j++)+ {8 ?+ \7 x' d& ]9 l) p4 a
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}3 V. ~3 o& p& a9 n" R8 \
}
  U7 u& ?+ D+ c" C' T: _" Kmain()4 x  X6 ^1 W2 e/ B* f9 r' u
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;* t. U: k( L# F: i. n  a2 ]
FILE *f;" d+ X+ L7 }7 s& }& w* l* y1 L
if((f=fopen("myf2.out","w"))==NULL). x4 m8 P( L' Q/ a
printf("open file myf2.out failed!\n");  m4 M" d4 F: a0 z$ g
fun(a,10);
" k5 ^8 `7 s2 F4 B3 l" hfor(i=0;i<10;i++)
/ \  T( R) z+ b0 X  ]5 l) P7 ^$ O {printf("%4d",a[i]);
7 N% G  ~; ?$ b; m8 p! a  fprintf(f,"%4d",a[i]);
  t5 q: l! u; s }
& o+ n& v" K6 q) @; P; afclose(f);/ |8 X$ o3 E' a* Q6 K# G1 z5 K
}$ t6 c3 D9 _1 h+ S4 S+ a' |

; P; W- k* h# K: y5 B% V0 B  j18、编写函数countpi,利用公式
5 v) A7 h( d- i% l9 ^  i7 x     
  L& }' c; }- k, N0 k% W& M4 B 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
( {0 z8 y5 N) D  G+ B& I' h  `- k#include<stdio.h>5 u: V* k, x: i* b! S
double countpi(double eps)               /*eps为允许误差*/
4 e: `- B" p, a9 d# v- |{. z5 Q6 ~5 N% r1 G) x& h; f2 U
  int m=1;
- @7 g& Z1 i3 p. b3 H   double temp=1.0,s=0;
# l( {9 _% c5 |$ x# ~3 ?2 `   while(temp>=eps)0 u) @- ^% @1 k' L$ T* n
   {  s+=temp;
0 a" V0 F( I& |( J& n' T  D4 k      temp=temp*m/(2*m+1);- F+ i0 s8 E2 m9 ^8 T- K
      m++;- E8 a4 E2 T9 X0 j! o! C, m
   }
, g( ]  B" o# p' d; E+ O   return(2*s);
9 t; E2 t! p5 Q8 k}
# B8 }7 i: _( h1 b3 w$ |6 E2 gmain()
0 ~8 V! e6 h4 ^3 \( u* ?0 W{FILE *fp;
5 X- V7 G: f9 z4 I9 t   double eps=1e-5,pi;% z& Y5 `: I% Q! b" a
   if((fp=fopen("p7_3.out","w"))==NULL)
( M6 R% s' o% i% s# j { printf("cannot open the file\n");
0 `2 R& ?2 ~0 E$ T: c1 }+ q- N   exit(0);                     
. Q/ w; p9 P7 K* w" P  E }4 y4 N. p7 @8 ]- z7 q
pi= countpi(eps);
( b# r! n* Z6 Q, q' {8 X( F* ^' e0 G printf("pi=%lf\n",pi);0 t; C2 u& Q3 V% f+ b" y7 k
fprintf(fp,"pi=%lf\n",pi);4 c# F3 l+ J6 J# T
fclose(fp);
( z% L( D+ q9 z! B/ P}

该用户从未签到

4#
发表于 2015-7-20 16:56 | 只看该作者
第一个一看就很常用,其它的,看得太累………………。:lol:lol
  • TA的每日心情
    奋斗
    2020-7-22 15:05
  • 签到天数: 3 天

    [LV.2]偶尔看看I

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

    该用户从未签到

    9#
    发表于 2015-9-13 16:27 | 只看该作者
    谢谢,学习了

    该用户从未签到

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

    该用户从未签到

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

    该用户从未签到

    12#
    发表于 2015-10-30 09:08 | 只看该作者
    都是for循环啊
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 17:03 , Processed in 0.171875 second(s), 22 queries , Gzip On.

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

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

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