找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 2613|回复: 11
打印 上一主题 下一主题

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
1 B  G$ Q/ l* ~
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/, l6 P4 i+ C& i! Y5 y$ L
#include "stdio.h"
' Y3 U6 H) K2 }4 ~main()
3 `7 l1 d/ K; ]) P" r# O9 H: g$ I{int i,j,result;
0 R9 ?& R/ D% S) |1 o& Rfor (i=1;i<10;i++)4 m9 Y% m: U- V" H# m! `! s
{ for(j=1;j<10;j++)7 x; c* ~3 T5 {! P$ Y1 Q8 j
     {
5 i, \4 C( V2 l- |0 {" `, T        result=i*j;0 w/ u/ t! y- ~% e6 a5 @7 Q8 h8 {
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/5 P5 K% T: z# V1 m$ L
     }
; e; ]& e* c' ]% U, r9 i, R    printf("\n");/*每一行后换行*/; ^$ T3 b) \5 o" i) k* w  N
}  ]: G# ^/ n9 R
}
! h$ s- ^& n2 k- ^) S: B) y4 g* c; q3 L
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?' n: w, I) @: v( @! _! G. q% d6 G
兔子的规律为数列1,1,2,3,5,8,13,21....*/
6 \7 T- ^0 p- W2 U4 h) Qmain()
: t7 v8 I* L$ t: a{' I. N6 M7 o. x  y
long f1,f2;; D7 i0 L, k' O
int i;
# O; g" A1 l4 O* v1 m& m& R. S5 jf1=f2=1;. }1 K) W7 ?) F; ~
for(i=1;i<=20;i++)/ ~' |$ r' L5 G7 [: g, n
{ printf("%12ld %12ld",f1,f2);
$ x6 ?/ z" r+ e4 f( i5 X  B+ N   if(i%2==0) printf("\n");/*控制输出,每行四个*/6 e6 e% v" F1 V4 T2 D
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/5 w" V/ R/ u7 i; n; |
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/
6 O. G& |3 O% }! a+ [ }- r5 g0 \7 @+ @( n5 @* }4 n
}" Y- d1 J5 a6 D. ^$ ?
: K6 b; t; y' b6 p5 `
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
1 I- C9 W% G) F6 M% O程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
, F- C2 y" T5 r8 I. v' K     则表明此数不是素数,反之是素数。*/' J) Y* W% g/ @# d' y! W, x# w
#include "math.h"
$ A+ F) z7 `: i1 i$ amain()# h2 _: c+ r/ W
{
$ u& {9 U0 b4 _" V; M! A' lint m,i,k,h=0,leap=1;
7 w' b! `! F: {' k* B( z4 Jprintf("\n");
) o& C' k( `7 Sfor(m=101;m<=200;m++)" ^% P  t2 ~0 a; s( R" ?
{ k=sqrt(m+1);& }! T8 V, M  m; W/ \2 M. X" a1 S; X
   for(i=2;i<=k;i++)% Z' X" f8 _. a3 Y4 A( l
     if(m%i==0)
, ]# h1 X! O! ^9 G4 f  }        {leap=0;break;}6 s( H2 r; Q5 {% Z! `* E' U% O
     if(leap)    /*内循环结束后,leap依然为1,则m是素数*// o3 _1 J* T3 R& C" x' [7 _
        {printf("%-4d",m);h++;) D( w+ j" l6 q! i
         if(h%10==0)
* \7 p& {( u' d% Z$ \* s6 Q             printf("\n");
5 e  y9 s  I5 l# x        }
$ [) ^% c; A( d& G   leap=1;
) k! Q( z5 V/ @' L' G$ e6 c }4 O. }/ n5 Y% v
printf("\nThe total is %d",h);' P1 b. a0 |6 C8 G
}) a( N  n% \& t* F) u+ [

. U* ^, a- d* z4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程3 D4 _- Q* {! u- r( P' s
   找出1000以内的所有完数。*/8 a9 t, V" b/ F! ~) `) G% s
main()0 R, x. \7 L6 `7 z/ ~$ j; m
{4 |* H% L" v5 w$ Q$ a/ E. r; Y
static int k[10];
0 K/ I& Q0 z: e  u0 }# Y: z" c  nint i,j,n,s;
' d+ @1 u# |, b  rfor(j=2;j<1000;j++)" c: d* E. \$ ~" g6 n8 N/ O
  {
* {9 g3 J" U0 ~  g+ _   n=-1;
  n( l1 C+ p8 y   s=j;
; S- J  e  H# j" ~! C" }   for(i=1;i<j;i++)6 G4 g+ Z, |8 j5 S
     {if((j%i)==0)$ v5 Y9 x# T" B+ P! Z9 E
        {  n++;
% z2 S* B3 q# s' r/ I7 [) h% w$ B           s=s-i;! \* u- h/ x. g! H4 l4 T
           k[n]=i;$ o2 C) [" m5 H5 w& _3 t+ A1 o2 I
        }( p; l+ h* C! e; _& r3 F1 n7 q
     }6 B/ F+ x# C" w' @  _5 Z% a
if(s==0), p4 V1 L6 P1 L! x7 V
{printf("%d is a wanshu:  ",j);0 u! S- N9 I  J0 v5 o
  for(i=0;i<n;i++)! V$ A* @* M) g1 \" h; \1 s: X
      printf("%d,",k[i]);0 Y6 W$ p2 G" [  `3 W
  printf("%d\n",k[n]);
& K% ?2 u" m' z2 F% A }
& i/ b, _& ]* H% P# I! f+ B}
1 _) ]. A  p4 H" ]+ B. r0 j}" B- F& W" s1 K% W$ F0 y- g; F
' v  M7 W& g! h8 K, I' Z
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
9 y+ H3 o* C& B! b! L% w8 U请在空白处完善程序。*/
+ T# q/ f1 g& [9 Z6 L* N! O2 bmain()
8 M+ `4 Z4 s2 G: M9 u3 V. q. c{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/2 Y8 V" K9 [* g$ F& M; \: s, r
printf("input 16 numbers: ");* y! K3 l! M# N9 ]5 a# ]3 @% e
/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
: W# s0 D% R4 H) S8 i( s for(i=0;i<4;i++)
( v+ T. ~' C1 |0 D" z     for(j=0;j<4;j++)
$ t" W+ I. ]1 w! D     {  scanf("%d",&a[i][j]);
( t- N' Q# R' ]        b[3-j][i]=a[i][j];2 U, {2 \* V2 I
      }! T7 l( v$ `% ]( O5 ~
printf("array b:\n");
6 U: d" r' t5 } for(i=0;i<4;i++)
" l. F! h) F: Q& o. m    {  for(j=0;j<4;j++)
; e8 [1 J0 h$ u" l8 C# G+ F       printf("%6d",b[i][j]);7 C1 ^5 Q: z2 I/ d% ?! S, u
       printf("\n");' M" i# }- M+ J4 j  `3 h
     }' O! }2 J. Z8 u: L
}1 C+ ^& z# Q0 X0 t  ~/ I! d

9 y" @& X2 z4 l. r6、/*编程打印直角杨辉三角形*/
: m0 Y3 C1 G- Smain()7 `3 `0 }; I8 y" O( L
{int i,j,a[6][6];0 g! N2 V/ I0 \3 c  u: a' q! m! ^
for(i=0;i<=5;i++)
; T, F' i+ Z2 T! D$ F1 Z  d' C{a[i][i]=1;a[i][0]=1;}, \) @4 s5 s- O6 Z: O7 R8 W' W
for(i=2;i<=5;i++)
% a: _3 b* W/ q, k* G5 E( E  for(j=1;j<=i-1;j++)
5 k" x( e9 C1 L6 h$ d- Y   a[i][j]=a[i-1][j]+a[i-1][j-1];
1 H! F% e: n0 q& k2 i% @5 `# ~for(i=0;i<=5;i++)
1 H8 N. D, |9 {5 b  {for(j=0;j<=i;j++)
0 N$ l* [- w( i; a0 W      printf("%4d",a[i][j]);  a1 G) ]5 k  R- r3 i
   printf("\n");}
0 \# g7 x8 n" r" x- t8 b% Z}& X3 o  r0 \" p! U$ l

+ C. V- S7 y+ e) P7、/*通过键盘输入3名学生4门课程的成绩,) u1 z1 x5 y5 F# g, t8 `8 R
分别求每个学生的平均成绩和每门课程的平均成绩。
! @' W! u) z: h4 T1 V" H8 l3 V6 z4 Z要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车$ Y* X* |5 j: Q; L& M
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
; @& y2 l9 u  d  K#include <stdio.h>
; u. q1 k$ `$ m) n& [9 }#include <stdlib.h>
4 C5 s3 M7 Q) a7 vmain()
! a  c( J" U3 `+ J% u# C{ float a[4][5],sum1,sum2;
; j6 G% y; q7 M& G* fint i,j;! `- E: W) ?# d* h# ~5 O6 e3 U5 M
for(i=0;i<3;i++)
4 ]( _# i+ r" L  for(j=0;j<4;j++)
, E! S, K. ~- W+ T( L+ t    scanf("%f",&a[i][j]);
7 \" x$ L. n7 F) T* s. Mfor(i=0;i<3;i++)& {/ L8 p+ o" |
{ sum1=0;8 z4 H/ N6 Z& H5 P1 E4 }8 y
  for(j=0;j<4;j++)# j: H* E( |$ M2 o. a6 e
    sum1+=a[i][j];
( z! i; N# |. z/ P    a[i][4]=sum1/4;
7 }; O6 m& L3 T. j}
/ _: p. T' q/ l+ W( @for(j=0;j<5;j++)
+ U- b( A! u$ k( z% y7 Z# \. o{  sum2=0;9 Y3 W9 Z! N5 ~: V1 `+ G. `8 @
   for(i=0;i<3;i++)! G7 q* ]/ m0 _  s& b7 b$ ?
     sum2+=a[i][j];" I  u* n& Y9 v3 y, ^0 |; k5 d* O; ^3 o
     a[3][j]=sum2/3;3 I* v0 W* X) q( v1 |
}& \; K, ^, p- [' T
for(i=0;i<4;i++)
& x/ @9 v& E9 O/ R+ E' P' b( Q! a$ ] {  for(j=0;j<5;j++)
7 Q. g! [* g& |. L    printf("%6.2f",a[i][j]);* q' c  c/ G8 r; a# e, @! J
    printf("\n");) P# m( d% E+ |9 u: @( Z
}
. o& K1 Z+ B. P' U! A9 t}# \' j# i' w1 g. r  {
' n& p- j8 l: R" C- [3 D
8、/*完善程序,实现将输入的字符串反序输出,+ O& \9 t4 @3 r3 x
如输入windows 输出swodniw。*/; p  x7 t7 R! Z/ x; j
#include <string.h>
% w0 f' P  }1 K( }( {# tmain()
3 ]. E" h: }2 j6 W! c4 V{  char  c[200],c1;5 `3 Z2 m2 @! _
int i,j,k;6 i. X9 Z( }* Q- {7 k
printf("Enter a string: ");9 J4 \0 `# l1 I0 L8 p( d$ u
scanf("%s",c);
% B3 ?9 {4 Y  a' l4 E- R" S k=strlen(c);
3 C: [! Y$ f* N! e# B' C for (i=0,j=k-1;i<k/2;i++,j--)" y5 F$ Q! z$ v, g
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
9 W, H0 K9 m' {, ?  u! p6 n# O# F" a printf("%s\n",c);        
' A* n$ _! h4 i% _, ~7 I& D}
) r  a) @. F' t" \/ w5 X指针法:
+ N! K0 q" ]: b/ s; ^2 x) m$ ~void invert(char *s)
8 o" u; F- R3 v& k! e# F{int i,j,k;( u; [8 }& D/ ^( h  S0 }1 K
char t;; d3 V/ Z0 N) A1 m; L
k=strlen(s);
+ p9 W8 X/ j  U. ]( Qfor(i=0,j=k-1;i<k/2;i++,j--)4 v1 a: K+ \0 V
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }- o3 z7 X" [( ]) Y: j$ j
}5 V# k! d9 k6 x; U
main()
* M3 u1 S9 G6 T  Q{ FILE *fp;
( O! a6 p( \+ ]+ B5 E char str[200],*p,i,j;
( S% e6 J6 \( J! J( Q if((fp=fopen("p9_2.out","w"))==NULL)
7 ?$ \' J* S- ~+ M- g: b      { printf("cannot open the file\n");
% p9 Q- n4 Y# P5 X8 D        exit(0);                       % @/ d$ W9 G% N5 P( a/ Y, H8 l
      }
0 O6 E: D2 x  {1 ? printf("input str:\n");" Z9 I; h$ u6 g# w: R6 H
gets(str);
/ F  [1 \2 g2 x printf(“\n%s”,str);
) q/ ?& b# T; I4 W3 \4 bfprintf(fp,“%s”,str);
3 k' N& M8 `* Iinvert(str);
7 w' a0 o* q, m/ q# g$ i4 |0 a  printf(“\n%s”,str);
$ Y( o9 `8 v1 w) r3 Kfprintf(fp,“\n%s”,str);
# A& D8 V5 E" m3 f8 Dfclose(fp);
, [6 c* A# j; S+ E1 p! x- z7 R}& A$ Y1 F" B" X* Z$ ^3 W
$ S$ r  A6 O! {# O: M
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
* @% c  R, p$ O) N- Z) ?+ m#include <stdio.h>
% ~2 Z% O$ @- T( l/ q! r  ?3 |8 Amain()9 }! q; X+ S% ?. f' y: K% j  i
{  char  s[80],c;
: f- H( k' ^: f: p# d$ s int  j,k;
+ `" q& W& D: A7 f1 o# o) X; `  ^ printf("\nEnter a string: ");
  j% s, k7 M/ _/ s* m- z gets(s);+ F2 z2 d6 E- m) p! l% Q5 C) ^
printf("\nEnter a character: ");
8 E2 [( O+ D9 d; m' m, r c=getchar( );, }- a. p9 {& P' a* V8 |9 v1 g+ G
for(j=k=0;s[j]!= '\0';j++), U2 m7 _5 ~* n7 s! b* _/ \
if(s[j]!=c)0 z# b; g: f$ s$ ~8 X! c
    s[k++]=s[j];9 |$ D/ D9 q: w3 r. u- d% s
s[k]= '\0';
( h# `' f" [6 `9 ?! b- x  J) e printf("\n%s",s);$ y) z" H# p% d* f
}
8 B0 p) C, L$ o; r7 O6 @0 c6 Z1 l9 a3 X
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小$ v- @$ d# x7 Q* B
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
8 Q9 o3 O! f9 w+ l% ]7 \#include<stdio.h>
% ]6 b2 z, h; I2 z) xvoid sort(int *x,int n)
6 V* _0 p1 J' n, O' V9 P0 a# E{/ N& S" G: S$ Q3 x4 _
int i,j,k,t;
; v) P, b% l' tfor(i=0;i<n-1;i++)/ R9 \  u: i; T
{
$ S+ l* E; t( a, W  Jk=i;
9 `+ ~$ ?0 v0 T  V9 t  ]for(j=i+1;j<n;j++)7 A7 k2 Q1 t' }5 n* J
if(x[j]>x[k]) k=j;
( Q$ U) P, o7 y4 |5 ]( ^2 X if(k!=i)
( j, Y. e' l- v {
) y1 W8 u6 h4 ~% ^: y+ i  t=x[i];
0 m5 Y/ \% }. }2 l  x[i]=x[k];$ t9 r6 c( n4 r  D6 f  i7 `
  x[k]=t;+ n) P. U5 `: o- {% e9 `6 F
}  z" P' U( Z6 E6 |* X1 {
}% M( p9 y" m  v% U
}
5 O6 k: U" q$ ?) X0 k7 l! dvoid main()
9 Q: i! w; h7 Z4 o+ W5 f, R{FILE *fp;
$ Z6 ^' B, q3 _1 r5 ~- {   int *p,i,a[10];
# `: k. ?) X& J9 a  G   fp=fopen("p9_1.out","w");                      " L- M: {( g# Q/ E
  p=a;+ _1 ]" s' U* \# T+ c
printf("Input 10 numbers:");
7 c: P7 r4 K7 E0 y# Q1 Sfor(i=0;i<10;i++)
" U; [' c% @# tscanf("%d",p++);+ k  j- w7 q  V- v. T) E
p=a;
! R; H- K( j# M3 X$ ]+ qsort(p,10);/ o( u1 d7 Z% ?( T; n
for(;p<a+10;p++)
' O$ h; y. A3 B8 p{  printf("%d ",*p);& `9 O3 O( W6 i% |- q
      fprintf(fp,"%d ",*p);  }
! _% i0 V) W; B- [7 P3 @      system("pause");
0 I' H: m) p% `* G% L5 D% y  fclose(fp);$ f( c+ M2 d0 ^! K% u( r, L4 o
}
  V9 D# H' u* o2 w" w; L) c- \' Y" B) \
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/7 q$ u) X6 Z$ \3 f- D* F( r" M5 J
  main()* j2 Q" g) b! j- Z
  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/# X/ r5 o4 G( @
     int  x , i, j=6;                         /*j为元素个数*/5 G& ^" O6 L7 f5 ]  ~
     printf("Enter a number: ");. P2 g  [/ m5 i. @0 e" [+ l3 U
     scanf("%d",&x);
$ V+ y  {! j8 f     a[0]=x;% |6 \6 u  a$ Q+ b" {: C* T; m
     i=j;                               /*从最后一个单元开始*/
/ Q7 r  w& R% W7 P5 C- H" v     while(a[i]>x)* `' n% U9 K, W+ G$ e. ^* f" j' K0 a
     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/
# R- T7 p1 u3 {1 B7 |     a[++i]=x;# b/ a2 j1 e! w  _9 P6 }8 H5 D
     j++;                       /*插入x后元素总个数增加*/
3 [- Y' U3 R( b% t  c5 v# Z     for(i=1;i<=j;i++) printf("%8d",a[i]);
- S0 t; F9 ^7 Q% P+ g     printf("\n");, o+ |/ l. {3 ?6 Q
}+ ^* g! k+ R3 W$ M
( s* l( Q4 u6 k* W
8 o1 g: M$ \& x: N2 }
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/' j* z- [2 w7 i7 @  K  w1 H
#include<stdio.h>
7 b4 ^$ t, b# g+ jreplace(char *s,char c1,char c2)+ k$ ?+ k) M4 c( N7 `$ O; I
{ while(*s!='\0')+ Q! y3 p! G& H7 u: y
{  if (*s==c1)
' k6 O' |* `" S3 l: E; \8 I2 F       *s=c2;% t: c( G/ [; i5 y
       s++;7 E0 j4 |* H# T' }2 X% s- T+ ]
}- W5 s) G$ @* ~
}
) `3 ~% q5 d2 K# \- xmain()
) z  p0 r; L0 W- k$ N# Z" B{ FILE *fp;
+ I, Y$ x/ S- {+ s9 N2 pchar str[100],a,b;
2 y7 Y; p( j4 A. {& S if((fp=fopen("p10_2.out","w"))==NULL)6 m5 r7 P0 S8 {0 ?# j
    { printf("cannot open the file\n");
" M, f; P/ y7 I7 k, Q$ M     exit(0);                     }
, t; \! e# O# I! v5 {& w  k printf("Enter a string:\n");
6 x5 R# B; I, G9 H$ {$ T$ U  gets(str);  v: G. M1 m0 u- ~) S6 K
  printf("Enter a&&b:\n");
/ w- X$ r3 n6 E4 j  scanf("%c,%c",&a,&b);0 s  z" Y( ]& j% }
printf("%s\n",str);  ?/ r! G- V) N, L8 G
fprintf(fp,"%s\n",str);
% Z1 a9 x& l4 H5 u2 J0 J- u5 }, R+ jreplace(str,a,b);
# L* |1 n9 b- Z+ Pprintf("The new string is----%s\n",str);; L% V: Y# P+ V% F# A( o5 e
fprintf(fp,"The new string is----%s\n",str);
) ~' R9 x. p4 F& |. \7 t6 \% Q/ ufclose(fp);) c$ _0 f6 X0 I$ ~
}
  c# l3 Q: T& ?$ l6 l5 u" S* p2 Z1 H: H3 M$ G
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置" [/ f2 @9 L/ e) }' V! j, H
,不存在则返回-1。*/
5 Q( f8 k0 Z; ~+ X1 zmain()
' X* t- h6 {, g{char s1[6]="thisis";char s2[5]="is";3 i) f* f" }) O
printf("%d\n",search(s1,s2));8 h4 e  f( R8 @2 S% {9 l. W
system("pause");. Y! ]* A# s! ]- ]) c
}; T( d2 w5 o2 w& e5 k
int search(char s1[],char s2[])
3 a2 A" N9 s' D0 w4 d1 k{int i=0,j,len=strlen(s2);' C0 `6 K% d1 `7 D, I
while(s1[i]){
$ h/ _! u( |, Ofor(j=0;j<len;j++)
( R6 s2 m- _! |, @, jif(s1[i+j]!=s2[j]) break;
- e, {# |# a+ q/ `- c$ dif(j>=len)return i;
  i. O+ u) Y; A0 J, G% h* jelse i++;: R9 d6 `0 d+ E) {$ q  \% U9 Y' e9 p: Z8 \
}
+ t, q0 d$ t# W; Y3 x+ ?" Ereturn -1;
* c6 n( T! e, ^  Y# T}
. T" O( ^4 T7 i
" ^8 o4 h8 d9 o8 t6 ]) n) L/ b2 l14、/*用指针变量输出结构体数组元素。*/- Y3 I! i6 p$ U5 K
struct student) b$ I* a$ p) Y* R1 b/ m" G5 B8 I
{9 m. T( [( W/ K; Q
int num;/ V3 j& c3 h* N% T# }& r# A% b3 @+ z
char *name;. z* w) s$ \4 D1 E; u" S
char sex;! n4 j, F/ _; I, b
int age;
- e0 o* Z7 b) g; L4 x& k1 ~6 r}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};+ @3 R5 {$ t0 f! C/ V
main()2 @) G9 c5 r3 w! j
{int i;
2 ]+ C' X# {* W% z! mstruct student *ps;
% c0 N. n2 h: M- V4 J% S: U% Tprintf("Num \tName\t\t\tSex\tAge\t\n");    p- K" B0 C6 v+ a( r$ H: S
/*用指针变量输出结构体数组元素。*/0 I# V) H% n0 s+ \, N
for(ps=stu;ps<stu+5;ps++)
, b! _* _" ~( W* w8 f  oprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);  }' c9 s0 J6 P" B/ d
/*用数组下标法输出结构体数组元素学号和年龄。*/, e, E- l( ~5 U6 w) d- U
for(i=0;i<5;i++)
% E( ?! R6 t# V. q$ Lprintf("%d\t%d\t\n",stu[i].num,stu[i].age);
/ i6 X; G. m6 t8 I; z. M0 Y# A}( g/ G# x4 |6 M* d: r$ J

! `# _9 C8 G4 z7 `15、/*建立一个有三个结点的简单链表:*/5 x: Y  M3 r- d
#define NULL 0
2 m+ ~* J- `/ X0 [5 gstruct student
# i' k. ]1 p+ w! i{
4 U3 Y: e7 [1 r7 v) Rint num;) x( U: ]: w' i. a3 k; C
char *name;# |4 A8 F# L) Q" y
int age ;
% f+ J' P+ S6 [( A  tstruct student *next;
- t  k# C; H+ _' t# T};  M, X, s. C. t8 U1 s' e: O9 {$ x
void main()
6 H8 Y+ }* @% P{5 W! V; g) j6 K+ L: E( z
struct student a,b,c,*head,*p;: a* V$ }: R3 g( F4 Q8 x
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */) F5 e/ w- M# I3 L; N
b.num=1002; b.name="liuxing"; b.age=19;
- [; c+ m  N: B, H0 K8 kc.num=1003; c.name="huangke"; c.age=18;) n$ o. e9 }; O- C2 }! w" G
head=&a;                           /*  建立链表,a为头结点  */. f/ I7 |1 F/ k
a.next=&b;
7 m4 A- K! [9 V/ k/ r! kb.next=&c;
" r8 P! s2 ~/ I0 jc.next=NULL;
7 Q- t. {/ T( L9 P% Y. Kp=head;                            /*  输出链表  */
9 T" Q% D3 d7 h. k/ R( Xdo{
- K- T2 H" h: Q8 Y3 tprintf("%5d,%s,%3d\n",p->num,p->name,p->age);
+ b: w# Q* B+ `0 ~$ ^; G7 cp=p->next;
1 V# n/ X5 `- I" s) ~# E; N}while(p!=NULL);% r/ d% U; {2 Q5 }9 R0 s" _5 v
}, }) V4 S) a' d, o) u/ D( k

! s2 l1 X4 I& [, _16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/! T& ?- e2 n( N
#include <stdio.h>/ _  k) j# b  R! m# W# ]2 f, h* h) |, c
#include <string.h>
3 R% v5 t/ z1 y  s) `#include<string.h>
7 t! f% a7 |; ^7 e; wmain()
- M9 U5 b6 v8 f9 m  W0 |{ char s[100];' i' f0 j6 B/ [
int i,j,n;
& t  ?0 W$ n& ^, a, hprintf("输入字符串:\n");% d' M9 Y1 K# J- V
gets(s);
$ U! ]8 U9 I7 j" hn=strlen(s);+ Z  z# Q9 f4 h( H4 P; C( |
for(i=0,j=n-1;i<j;i++,j--)
# w- Z+ d/ H4 T9 J6 N+ F  if(s[i]!=s[j])   break;
4 C( n; R9 e4 x" h/ Cif(i>=j) printf("是回文串\n");# s( `; a! \& u  X1 }
else     printf("不是回文串\n");$ x, |- P7 K( p7 T. |$ K( p3 c
}9 ~$ S: k% V6 U; b8 g
" ?0 L- s! V* Q( P5 ~6 x7 n. F
17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
6 h* z$ i9 W. _+ D! P0 T' s$ V$ Y#include<stdio.h>
, J+ G+ ^0 Q) ^+ R0 D5 D/ ]void fun(int a[],int n)1 c, K, }$ R8 l
{int i,j,t;9 [; J) g0 Z- |/ \- _
for(i=0;i<=n-1;i++). F* V0 |% _0 S/ d3 h- W- g
for(j=0;j<i;j++)! }, T" }% v' D% {. Z
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}0 _, C; u, v& r5 N- I
}
% r- j9 V' K* b7 ~/ F" Xmain()
& x7 O, r# ?& U" l" o( F{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
3 O3 L' F/ t( F: I2 b2 i3 n6 dFILE *f;7 w/ q, M8 S& h7 M: o& o
if((f=fopen("myf2.out","w"))==NULL)
: o6 ~+ V, P6 \/ w printf("open file myf2.out failed!\n");
1 @9 z- n& ^  [, B: N2 Afun(a,10);8 W+ a3 F4 o3 h5 R" W
for(i=0;i<10;i++)
3 X& G2 I2 k* B0 h. | {printf("%4d",a[i]);) i# p, N; K' K8 t: e) r
  fprintf(f,"%4d",a[i]);
4 j( V. h; L# u+ M8 H( L2 c6 o }
/ c, b) I* R' e7 v+ |' u; Mfclose(f);
6 P, Y0 p# c7 N7 W  X2 r7 k}
* B* j8 |- t/ x/ c: P
; F# f0 D9 W8 T18、编写函数countpi,利用公式
7 `! O1 ^) p! @  \# @6 ]     1 D6 r7 a) B4 t: x2 S0 q; X0 z$ U
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
3 S- o& w4 G$ q$ ]& }) R" s" j6 u9 I#include<stdio.h>
9 J  Q9 a9 ~. r" U5 Rdouble countpi(double eps)               /*eps为允许误差*/* V9 S2 _( C# D% u9 w% \; N$ E
{
$ Y  \+ `0 y; L- f5 r; O  int m=1;. R( r& v1 e# i- _* ^! z2 ~( i4 g
   double temp=1.0,s=0;1 `8 H4 q9 Q( R8 X
   while(temp>=eps)0 D* e; C- |8 @0 A8 B
   {  s+=temp;' }7 T+ S4 ?7 v: X4 o- K* g9 G
      temp=temp*m/(2*m+1);
; m& P- V2 q! z; s0 Y0 A3 t      m++;( n+ n0 _4 V2 n6 F
   }, L. W1 p+ l- _! s* _) B
   return(2*s);  {( p: D1 x* `1 J
}  J* U, x/ b( N. b# ^" w# x4 F
main()
8 o/ j: {, x/ p# ]5 {3 j{FILE *fp;- w; o8 k/ h; v- \0 X
   double eps=1e-5,pi;
: G( i+ i) @$ g' s% ]   if((fp=fopen("p7_3.out","w"))==NULL)
4 p- P  u% {( ^5 G; g0 D% ^( e+ H { printf("cannot open the file\n");% o( a; T0 r# H
   exit(0);                     
0 p8 ^1 T2 @. `& S: l/ G+ I% G: F' G }
% Q6 B$ X/ R  o; W% w( _2 Y pi= countpi(eps);
" G% U5 y7 C  R* u' p2 G1 j printf("pi=%lf\n",pi);8 M9 I5 s+ F0 c1 l0 J: f
fprintf(fp,"pi=%lf\n",pi);
& N" d6 F( ~. L$ G( {" Lfclose(fp);
4 s5 h2 v1 ^( |7 T, y}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏3 支持!支持!1 反对!反对!

0

主题

131

帖子

2541

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2541
2#
发表于 2015-7-2 09:01 | 只看该作者
谢谢

2

主题

121

帖子

1339

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1339
3#
发表于 2015-7-12 11:07 | 只看该作者
感谢分享
7 y2 b: x8 d: S+ O8 f

31

主题

347

帖子

2216

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2216
4#
发表于 2015-7-20 16:56 | 只看该作者
第一个一看就很常用,其它的,看得太累………………。:lol:lol
200 字节以内
不支持自定义 Discuz! 代码

38

主题

211

帖子

766

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
766
5#
发表于 2015-8-6 11:17 | 只看该作者
感谢分享

63

主题

506

帖子

1776

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1776
6#
发表于 2015-8-14 17:49 | 只看该作者

0

主题

81

帖子

31

积分

二级会员(20)

Rank: 2Rank: 2

积分
31
7#
发表于 2015-8-20 08:01 | 只看该作者
学习了

4

主题

154

帖子

569

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

0

主题

182

帖子

1720

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

6

主题

292

帖子

955

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

0

主题

3

帖子

5

积分

初级新手(9)

Rank: 1

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

7

主题

223

帖子

1310

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-17 04:32 , Processed in 0.065699 second(s), 31 queries , Gzip On.

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

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

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