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

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

  [复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
) R1 F2 d  y# ~; `2 O1 y; y' @+ b
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
9 D1 R, m/ ?# s/ k" `+ T# i#include "stdio.h"1 h+ R1 ]  J9 [1 ]1 r
main()
1 h4 Q- ~& E% q5 [$ g{int i,j,result;9 N8 ?. J' ?) Q: O2 y
for (i=1;i<10;i++)
: B/ N1 C5 q2 M# R# ]& t# O5 ` { for(j=1;j<10;j++)" T/ P7 g9 Q' x4 U+ a3 v
     {
! V2 t' g$ _  E" a2 Q4 s/ A9 ^  i        result=i*j;
, a( b! s6 j+ W( [* r& T        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/+ I# y' p6 R4 F
     }: v# f, T$ ~' `+ D
    printf("\n");/*每一行后换行*/- o" x6 X) z( Z; m6 T
}
7 }9 D  P( ?7 c6 k}/ Y: m; i1 \& j
$ f) K; d; b' S" e# R
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?8 l" p  r; m( u2 F
兔子的规律为数列1,1,2,3,5,8,13,21....*/& k7 P& b: R! Q0 j5 S6 Z
main()
6 i" q4 G2 h2 X) L  y/ d5 C7 W4 E{! B$ q& ?8 D3 W( z
long f1,f2;
8 w5 e0 x* \' Q2 T) qint i;
" B' M7 D, X" e5 ~, y8 I. @f1=f2=1;$ J+ o1 N/ `/ d- A# ?# L" Q
for(i=1;i<=20;i++)* i- D: b1 X0 S  \1 l7 S* _! L, K
{ printf("%12ld %12ld",f1,f2);
5 B5 d) W: k8 m: K5 e8 B7 ~$ |4 D2 u" k   if(i%2==0) printf("\n");/*控制输出,每行四个*/
1 o0 T& D) E" }$ g* h   f1=f1+f2; /*前两个月加起来赋值给第三个月*/# S  O! {) X% u- w9 c9 p9 H! p
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/9 I: I8 U1 x! v3 y7 l! F. B
}# f0 q" ]9 x' G& c3 H$ u
}
, s3 c( Z9 E4 P: E- E8 |( K6 Y/ ?" F) g. Y6 W- H" s- `  g6 N- h# U
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。% x9 a& z3 v) K) K8 b! J
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
/ t, V$ T9 H/ e7 F" C; w4 U     则表明此数不是素数,反之是素数。*/1 Y) E4 E% N( g1 s0 w- M3 w& y# g
#include "math.h"$ U6 {: K- b! S) Q! U1 i
main()
( U/ E' ]. [& G" V# ~: L{5 q. x/ }! c7 j, m0 q+ L7 K7 k4 `
int m,i,k,h=0,leap=1;* N9 S! X# z& e$ e
printf("\n");
6 [/ B! Y% m' Q& Xfor(m=101;m<=200;m++)
8 Q# O0 f3 e7 f2 o& b6 Y) k { k=sqrt(m+1);
+ v5 a$ y, y5 C1 j" [   for(i=2;i<=k;i++)
1 {, ]- V  v/ l3 B! V$ m9 e* a  D     if(m%i==0)9 [; n0 M  D; K# ~7 Y8 K( [
        {leap=0;break;}
0 [# q* ~  v7 K$ N5 [     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
! z. r; \$ M8 _; r& c        {printf("%-4d",m);h++;6 S9 e* L& Q5 p/ }8 w/ W8 V
         if(h%10==0)
4 [( h" Q2 `5 j0 z& I             printf("\n");
3 [) q9 P+ O- f: o) p. S; [        }
2 M  f" R1 ~( P6 T5 x9 A   leap=1;
2 Y& D, M( ~! B8 l. C6 g  l: A }
5 r! \7 ?; t& A6 i9 c! t9 W# S0 Dprintf("\nThe total is %d",h);
: Z4 ]4 D" ?$ y4 G; u+ u}
4 T" C; c8 ?) q+ Y" c% e. J: \+ T7 }& ~) ]
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
4 r3 c; j1 ]# M   找出1000以内的所有完数。*/
* M* Q: X% o0 Pmain()
: s! \" }3 D/ B0 ?{
' D  i. Q0 q. }" Dstatic int k[10];
' c0 g  z% i5 }& @' ^5 U& nint i,j,n,s;
9 Q6 A) p( ~- L- f2 J8 }7 Ufor(j=2;j<1000;j++)
# |. x/ R: D( E5 a  {
( A0 I) v% [+ Z% D- M   n=-1;8 F% E* _- U+ W9 b/ F
   s=j;6 L- z+ r% r7 k7 j4 T! q+ P
   for(i=1;i<j;i++)7 K8 i. G9 Z) B' U
     {if((j%i)==0)
8 u6 d- c4 l; G+ o        {  n++;0 ~6 K; p: Z7 g9 ^# L
           s=s-i;
$ Y- C3 X8 ~$ s- q4 ~! R           k[n]=i;
$ z' A2 a% u! _( |9 K        }0 w7 P4 _$ k1 m" z/ _$ U
     }
' C& d1 a: p0 a$ Q- T# sif(s==0)$ @7 K. N4 i+ B' h( b
{printf("%d is a wanshu:  ",j);
. v3 A; M7 b3 d$ `! d5 w3 @8 M4 d  for(i=0;i<n;i++)1 h7 q- L' \" s1 J2 Z
      printf("%d,",k[i]);) D+ y/ K5 {5 s) ^( w8 N
  printf("%d\n",k[n]);
0 {. \2 E3 l+ x: x* ] }5 k* R, u- u1 L' p
}
7 T' ^6 N7 }. d  t% ?}
( I9 f! m! s# }3 q+ N3 b( U6 X# C; e' i0 ^( z; @# G% |
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,: x! p+ E7 _, U6 D! @: ?( U
请在空白处完善程序。*/
8 r3 ]7 W5 b" R7 ~9 q0 _main()8 r* g9 `. k: @% L/ m1 u2 d8 S- H
{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/
, `9 u1 x) Z  S5 j printf("input 16 numbers: ");
# {4 ]" y( F( G0 M1 F2 Q/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/& o3 Y2 s. E  t8 D' i# T8 a/ @
for(i=0;i<4;i++)+ q8 b2 @& ]' y+ h1 Z0 j9 a
     for(j=0;j<4;j++)9 K1 f8 @; U) ~
     {  scanf("%d",&a[i][j]);& H" [3 L( m$ ~# d, q
        b[3-j][i]=a[i][j];, I, C/ p" I3 K: u
      }0 O6 L* _, h1 C
printf("array b:\n");
9 _) {6 |* {' d: w4 F* [9 d/ _ for(i=0;i<4;i++)
2 a$ A7 U0 `4 h- W3 D" ]    {  for(j=0;j<4;j++)
* y; m- N& t% N5 x. Z2 a: }, Y; J       printf("%6d",b[i][j]);
: }- r% I" i! d& ]       printf("\n");
8 w1 S4 W% x. k, @     }
2 l! F, p. S& v2 H& T3 ?}& c1 f* ]% |9 O

! T/ @; S! [1 G: J5 s/ \6、/*编程打印直角杨辉三角形*/
. w% g4 W/ v/ x4 A: kmain()6 ^+ g& O& ^) t7 I# b
{int i,j,a[6][6];
* y6 M- f# \& S2 L5 i5 Pfor(i=0;i<=5;i++)$ x( s, [( @4 ]; i$ w
{a[i][i]=1;a[i][0]=1;}
# c6 C- n0 |7 h6 Efor(i=2;i<=5;i++): w  o, |$ k& j" ~
  for(j=1;j<=i-1;j++)) K* K1 V5 S6 e1 |( F
   a[i][j]=a[i-1][j]+a[i-1][j-1];
- Q9 s, E# w) L9 `for(i=0;i<=5;i++)
( F3 y9 y5 R" V! U6 s# A7 z  {for(j=0;j<=i;j++)6 `4 t" b3 a# ]' M; q; a+ X
      printf("%4d",a[i][j]);
) z$ U5 q, R1 a! M) k8 J; _: Q/ F   printf("\n");}
* T; u. N" z' G2 P6 `}* _1 A3 }1 Z% L8 B% u
/ n8 s% F7 H* I
7、/*通过键盘输入3名学生4门课程的成绩,/ x1 \, |: P6 S+ C( U1 ^
分别求每个学生的平均成绩和每门课程的平均成绩。
  X9 Y0 B3 D6 K% {要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
0 g/ f4 M# {- T其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
, H8 u+ b. A5 Q- [4 t2 r$ O#include <stdio.h>
5 F# C! C  y- q9 F% L$ u1 n7 |#include <stdlib.h>
% l4 F4 A1 Q9 ~main()5 z+ D2 s6 z4 Y4 _/ G4 `0 [! R
{ float a[4][5],sum1,sum2;# {( J& Z; X/ e7 ]4 ?! o. l
int i,j;% w: n: v$ A# f7 w5 i3 S: B. a
for(i=0;i<3;i++)% \) n, q; L0 N, W# d) G
  for(j=0;j<4;j++)
, ?0 ?$ M8 C' E5 d$ l  f# n! ~& D    scanf("%f",&a[i][j]);0 M: ?" j9 M' g, W4 M: k6 m. t7 ?3 C
for(i=0;i<3;i++)& D# z" R  n7 c' x" m& T
{ sum1=0;" x: {$ V& Y' G2 e4 ~1 D
  for(j=0;j<4;j++)
  P5 V- |4 B( I. F+ A    sum1+=a[i][j];
+ A/ I0 {3 O7 {5 w* y  ]3 P    a[i][4]=sum1/4;) @  e/ l7 c9 s2 @: \
}- C- f6 s6 p- A- p) @2 U) ~) K
for(j=0;j<5;j++)
* ]; S; D6 V( c{  sum2=0;4 Q3 \+ s7 x( J' F) |8 O; _
   for(i=0;i<3;i++)
3 x6 i2 S; P) m     sum2+=a[i][j];% l0 q  C- k8 h' H( h8 H
     a[3][j]=sum2/3;
. e* H4 y9 |1 t' N3 J }5 b2 t! V2 r: `& c( l
for(i=0;i<4;i++)7 j; f+ G' J8 M7 T9 V( t4 U" e
{  for(j=0;j<5;j++)( {  Y# t$ n' z/ ~9 z
    printf("%6.2f",a[i][j]);% i* y! M, t/ s% C' k
    printf("\n");6 y' E2 f/ t; a" R1 U
}
$ L5 o/ v1 e* Y3 b. [. S: k}
! z* v9 K& `9 j" A" B0 i/ V. F+ Q. P8 u. {2 e* e
8、/*完善程序,实现将输入的字符串反序输出,5 `5 Q8 ^% N4 N1 a- o  f
如输入windows 输出swodniw。*/
" s- i7 k2 _3 e8 O7 H#include <string.h>0 ?. p% y$ P8 d$ v$ d5 ~
main()+ P  O1 a) |- V% b0 Y: x
{  char  c[200],c1;& R" l8 f, Q' B( T" Q) C
int i,j,k;- P* m: X4 d7 U- S3 Y5 E. m8 m
printf("Enter a string: ");7 h  C' c, {$ b) R1 O/ q
scanf("%s",c);
# J& q2 R6 |7 Q+ | k=strlen(c);3 o) Y4 \" n9 a  x8 y& m- C
for (i=0,j=k-1;i<k/2;i++,j--)8 G- o+ n! [. L( C' y6 D7 t
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }( t& x( r) w& m) z0 D5 s8 v, S
printf("%s\n",c);        
0 p8 P; n: g0 {: J! K5 r}
: \. o! q  d, u5 [5 w指针法:
1 k2 N% |3 f' _5 U. X* Vvoid invert(char *s)3 r- B% l2 m( Y
{int i,j,k;- ^& c+ r( w2 x- I
char t;
& f- x' Z, {* w- @) k1 t) _k=strlen(s);6 x. ^+ G% U! ?* Q+ a1 v- @2 L% Z
for(i=0,j=k-1;i<k/2;i++,j--)
; W/ D  i6 \7 }4 O/ D{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
* z) G, G  O# @, m}. c$ n  H! }0 b3 ?9 A* J
main()
9 i  T/ F7 e8 V) l{ FILE *fp;
3 Y" l9 s1 m9 W1 e char str[200],*p,i,j;
) M/ ~3 H" t' T if((fp=fopen("p9_2.out","w"))==NULL) 0 }' f, h) r6 @9 K- r) u
      { printf("cannot open the file\n");" ~. h. J$ v1 F  y5 u% Z/ M
        exit(0);                       0 C. f4 D6 C) {$ p$ n4 \
      }. W$ R2 v5 V  Q7 f1 O
printf("input str:\n");
* O$ L8 F7 v6 zgets(str);* a# n# K: p: z. e
printf(“\n%s”,str);# H* k$ k9 M1 r. V. l+ s
fprintf(fp,“%s”,str);
/ l  D4 [- n: \9 q0 r3 p0 Cinvert(str);
6 X5 A; v: W% ~2 D, |8 y: B. [0 }  printf(“\n%s”,str);
6 d% t( j0 x# a9 H! O& X' efprintf(fp,“\n%s”,str);
( q; m7 h5 s0 M( Y8 E. q  cfclose(fp);/ {$ X! g/ l2 ~; G$ W
}; d; V& X  i8 h" F+ L) q

& K: s% P( C2 S9 z; d+ A. n) a9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
, I& ?7 E' T6 B4 @& J! B#include <stdio.h>
9 ^4 y8 y: |7 O7 Umain()6 c  |( B% Q3 B; [# b8 R
{  char  s[80],c;
4 f3 m+ ?& c$ }% C int  j,k;. Z* z. |7 k) `' i" m  R
printf("\nEnter a string: ");! v. S- C" a. d8 q* s  R; c
gets(s);
7 F& d: \& w9 V printf("\nEnter a character: ");
% J+ R: v: _7 s$ j( z! X0 v& v  C c=getchar( );
, O! U+ Q" n* \0 [* J for(j=k=0;s[j]!= '\0';j++)
- r; h$ s' O6 n9 K! M) Q3 n) L/ `! F if(s[j]!=c)3 ^9 ]* `7 l6 d/ E0 X, I
    s[k++]=s[j];0 @- f* K& {  ?0 w6 m
s[k]= '\0';- q% j7 X/ b0 [9 s
printf("\n%s",s);" h: O: d+ g8 G  C, ^
}$ I. l) ]( `- `

8 }1 `, P) D& w+ [: q10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
7 P5 Q# T5 L$ W排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/3 {; z5 H7 |1 s7 a  K3 ^
#include<stdio.h>
- a( i: C: \! q# ~1 v7 ?void sort(int *x,int n)
3 p! H  u- o: J2 D, X- B4 P) R5 L2 a{0 C- T/ i7 J1 `" O1 `
int i,j,k,t;
2 ^' Q* @- _7 ~3 C' c; w" N. sfor(i=0;i<n-1;i++)
7 v5 E+ x: g) B& L4 f{
7 q/ [8 `9 p( V- [  kk=i;
) E: f: r% H9 Y) O, p2 Wfor(j=i+1;j<n;j++)0 S) \5 ~9 w% _& B9 m* S0 z) D3 y. ~
if(x[j]>x[k]) k=j;
: j7 C" _  U* |* I7 K& B if(k!=i)
, r+ h  ^8 ^$ Y& j5 C% W% C9 _ {
. K2 l% A1 h. b+ W  t=x[i];! j( {0 O  O6 h% l
  x[i]=x[k];3 T: f3 |  X) s" c- t
  x[k]=t;" J1 |+ V9 T, |! Z" w% Y% R5 O
}% o! Z" \- P: r* ^' r) Z( ]2 {
}
+ S7 _! Q" y" ?/ ~6 n}
- H1 n1 W. C  L5 xvoid main()
  @7 ]7 c! ^  M, j: K{FILE *fp;; }+ ~6 B: o* |# k7 e
   int *p,i,a[10];; J! v0 m0 n. ]& @  |, R
   fp=fopen("p9_1.out","w");                     
- ~' @) X* O/ Z+ g% X  p=a;, p0 b6 Z$ }: {& f' Q7 c
printf("Input 10 numbers:");
9 ^6 ?2 ~- y& I6 |& vfor(i=0;i<10;i++)
! @; ~& P, a) G# j# s. M3 J: lscanf("%d",p++);
( J% q9 m5 O9 R" |p=a;
5 P% X4 |+ o  ?  D( N0 h; V- tsort(p,10);
( h5 A9 P2 {/ R- z5 a* u; Ifor(;p<a+10;p++)3 I4 m8 a" f  ]) J7 \% y
{  printf("%d ",*p);
: m6 I- y; D# G7 l5 ^0 o      fprintf(fp,"%d ",*p);  }
4 {; g/ u2 H# N) W      system("pause");" ?2 ]# Y! S  l8 a+ p0 O6 {* P
  fclose(fp);# j8 R5 x+ W( Y7 L/ |) L
}6 \" o+ L3 q+ }; L8 t
$ M$ Z2 N' f; B( d: U# A9 b
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/# V6 w/ \+ j. s) Z
  main()
% p% e% T8 O0 S/ l' E5 D$ W) ]  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/
1 P6 T* B# P9 c. _- Z     int  x , i, j=6;                         /*j为元素个数*/
% x! M, H" d/ M9 f: u: B     printf("Enter a number: ");
" O- x, y( A. U# k     scanf("%d",&x);
2 _: w" k# P( D3 T* m$ D. Q) F# N3 i     a[0]=x;
* P% Q) A) T2 [0 `8 \7 t  B     i=j;                               /*从最后一个单元开始*/$ T7 g" K+ z1 D' z0 L! u5 E4 j
     while(a[i]>x)
  @4 R* X6 e1 O$ ]1 B" ^     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/  @- q4 K( @# w& h3 {, M' m1 W
     a[++i]=x;
1 L7 j1 u" E" m& e) z( q8 G     j++;                       /*插入x后元素总个数增加*/7 ^) x  }5 A- E+ Q: f5 Z9 j. ^
     for(i=1;i<=j;i++) printf("%8d",a[i]);
4 v- J  ~2 s  }5 M! [     printf("\n");
6 x5 }: o% E3 h7 Z}2 T5 y. f7 h: d3 U
; ~4 {4 \3 a9 o6 [8 ?5 W7 d4 V2 |

# t5 G: B( F3 A; `8 x2 l0 z! S12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
* P- s. ]( J& j0 _+ Q% j6 |. L+ Z#include<stdio.h>
. o, X! G8 Z; u. Y$ n5 s+ Treplace(char *s,char c1,char c2)$ ~! }) `- {+ N1 F) C
{ while(*s!='\0')
  u" C) _! F! a {  if (*s==c1)$ q' N: X7 |& ?! ?' C2 y) a
       *s=c2;! d9 ~& ?/ B1 s) s; ]
       s++;; O* g- T6 X) k+ j+ `4 y. W3 i
}
9 s: L0 y. Q; Z  x5 @% Z}
% L( r6 T3 v" ~) L# umain()! a4 f( b- p2 j) N# |( ?
{ FILE *fp;  e- ~/ h/ V& c5 v9 j; b
char str[100],a,b;
4 H) M' m* g9 \1 S  w) w if((fp=fopen("p10_2.out","w"))==NULL)
- J* \) R! ]" y* i, R( O    { printf("cannot open the file\n");
" ?3 A, G% }/ B) O     exit(0);                     }  o9 u. E* Y* v2 }% G* Z
printf("Enter a string:\n");
- z3 e1 L( @( R. A8 r5 @$ l  gets(str);
0 C. T6 P. R5 A. _& @3 B* [  printf("Enter a&&b:\n");  u$ J. h  s8 P: I  S9 e! `
  scanf("%c,%c",&a,&b);
. b. r0 n! r% U/ |' I8 i( g6 fprintf("%s\n",str);
/ j& U" x! _0 F: e0 {$ mfprintf(fp,"%s\n",str);8 r2 K+ E! H$ r/ D
replace(str,a,b);1 z5 i0 u0 E2 Y  V4 f
printf("The new string is----%s\n",str);
8 I6 S  s0 d, h& ]0 s- Kfprintf(fp,"The new string is----%s\n",str);
2 Y- h7 a& Q' e/ S+ Qfclose(fp);
! C& c: E2 X  L8 o6 K}
& K, f4 q. F3 O- M& i. Z% i# k
, c( Y2 t3 F' O13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
: c. K7 K0 l7 a. B% j, l,不存在则返回-1。*/
  Z- d' H# a4 C5 @main()
  k" z7 L3 j& T2 p3 L6 y{char s1[6]="thisis";char s2[5]="is";
! D& }9 A  n) |" X1 ]5 R& Uprintf("%d\n",search(s1,s2));  _1 L9 h6 H3 l0 a* Y
system("pause");3 y: V$ R0 L# ]4 l! b
}6 q- q2 r( {/ [9 w: }1 \
int search(char s1[],char s2[])* W. Y3 z' K+ T$ U9 u
{int i=0,j,len=strlen(s2);5 x- J1 }& D4 Y" K$ j
while(s1[i]){7 O1 ]/ F. T1 u2 f5 m
for(j=0;j<len;j++)" @# ^" t: d/ G5 X! G, Z1 C
if(s1[i+j]!=s2[j]) break;
& v4 n3 o, ~% d3 p. wif(j>=len)return i;
: r/ `' m6 I2 o; [% L, uelse i++;
6 K- \* ^  N' ^9 ]}
. T+ Q5 ?) h7 T; ^1 h/ Lreturn -1;+ `: O9 T7 o3 U3 U6 v" E
}
9 P$ P3 M7 L. W" T, P1 ]. K3 w, l6 a; `& Z1 E% |% R; C
14、/*用指针变量输出结构体数组元素。*/
* [* i: g1 f+ F% r* P2 |struct student9 S$ q  l! U/ Y5 V& y6 J
{
5 w2 G* V9 \" i: i- ~5 K( lint num;- h, }: H! C+ @- c# z
char *name;
/ a( k/ g% S0 k; T! z3 lchar sex;
9 ?4 {: b7 X" `$ O) h: Pint age;$ c) P. {7 U5 c) R3 p6 ]
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
9 v6 d7 Y0 e% q! h. D8 {4 U! Gmain()
6 M1 C: C# R2 z9 }( z+ z{int i;
3 g% U3 S+ j2 Lstruct student *ps;) W* i! O% g0 d* t1 m
printf("Num \tName\t\t\tSex\tAge\t\n");  0 U. J# M& R, l
/*用指针变量输出结构体数组元素。*/
% X" W9 ~6 ~% h' afor(ps=stu;ps<stu+5;ps++): E' ~* I- I* X7 W$ Q, D
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
* q( d& b. D1 e" ?" l7 V/*用数组下标法输出结构体数组元素学号和年龄。*/
& p( p6 H" _+ a  h3 y; ^, P( D' f" Mfor(i=0;i<5;i++)  Z7 J0 A; o) L( m% A+ ^6 I  w
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
3 ]6 T1 ]9 C5 I( c! R: N9 t( _  @}* L. p2 k/ m' H( K+ q' K. H

2 F8 u$ o6 [$ x; R5 c. b15、/*建立一个有三个结点的简单链表:*/
8 j" C: f* ~" a8 j, M" n#define NULL 01 s# ?2 ]; m$ w  ?' C, X" H
struct student9 G, \- S5 V6 f) O# W$ N; Q: r
{
5 C6 \* Z5 V/ p( o0 Q1 V% Aint num;% d/ D" |# \# w' M
char *name;7 m/ y6 T( G0 c- h* y/ h7 c
int age ;
' D& Q8 O5 ~) x( n! astruct student *next;
" E( |' T' E* Y" Z" B# B& j};3 w# Z/ j6 k+ [$ p  e4 Y4 F) Z1 d' q
void main()
) N6 Q- g1 [, t' b  p{
- k% l# T/ Z7 }1 D( [. Zstruct student a,b,c,*head,*p;
' v4 ~1 |6 }$ X; c, t3 s# t# p2 x: Ja.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */
) v( `0 T. T6 [6 C) ob.num=1002; b.name="liuxing"; b.age=19;' G9 C3 l2 }9 j0 \8 @! j8 b9 Q
c.num=1003; c.name="huangke"; c.age=18;& n- ]7 S  ]  n; `
head=&a;                           /*  建立链表,a为头结点  */
7 {1 r7 F8 D8 E# Fa.next=&b;3 m) m- i$ {& Z$ A4 U. a! W
b.next=&c;5 p5 a8 |' k( A* ~
c.next=NULL;3 H/ r' Q2 e/ a% T! {
p=head;                            /*  输出链表  */, r* C( B2 \5 O2 w8 k: G; ^! t5 R1 w
do{  k' G8 A; R' X' t% a9 d
printf("%5d,%s,%3d\n",p->num,p->name,p->age);* T% y: q% q+ A3 ~5 O* {5 e$ Q
p=p->next;
; B  R9 t' R! L0 v& i) I' h* }}while(p!=NULL);# B" J  d8 B. \! {; d, d: j
}1 l: I9 O$ H5 G. `" `

) Q$ y' t0 g1 R, k16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/7 N* |  l* i& H' d
#include <stdio.h>. w; u  H- O- ]- T
#include <string.h>6 j& c4 v% F7 J. b3 C( }
#include<string.h>  W  D* S. c1 s
main()
: b( ]% M- J8 w5 u2 Y" R' |8 z{ char s[100];( s: Z1 `- f9 S9 w  e, Y
int i,j,n;" a) `5 ]0 A4 K3 d9 z
printf("输入字符串:\n");
0 m% L6 t% `9 W) rgets(s);! g  X* y8 y0 L& U$ a# e
n=strlen(s);! w1 B  i4 d3 \0 l7 k# ]
for(i=0,j=n-1;i<j;i++,j--)8 p7 R# S1 S, P% y0 Y9 Z
  if(s[i]!=s[j])   break;
  f9 p( W+ C" j( Z0 |* @if(i>=j) printf("是回文串\n");: p5 N3 B( b$ f( c0 i7 F
else     printf("不是回文串\n");
& `8 d' |4 Z! b; x; j, d}
, J+ V9 w( [) U/ t+ I+ U5 g2 O6 }+ E! C3 W
17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/& V8 n3 D+ i( Z8 R
#include<stdio.h>- _  K& Q3 n5 @. n6 H' \
void fun(int a[],int n)
7 ^  e8 f; T9 q- W3 M{int i,j,t;
1 m( S. s# [' H0 s) j" Kfor(i=0;i<=n-1;i++)
% Q' P( m* ]7 p% ~  B' }for(j=0;j<i;j++)
  K( J4 x0 w  [( x  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
/ @& ^- F9 [9 @. ~}5 d( j, p. a* d( {: s
main()
  A' l, `7 w! A! O  ~1 }5 @{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;/ u1 K) N7 k* h  K4 b$ R; }
FILE *f;
  A! N4 P5 D. H8 }! _0 U; eif((f=fopen("myf2.out","w"))==NULL)# v5 y$ H/ v2 ?( f; S" o% P  Q% Q
printf("open file myf2.out failed!\n");
+ @: K+ P. b) X, o' a: I. J% F- cfun(a,10);% F: e2 m$ s; I0 x, A2 K2 b
for(i=0;i<10;i++): k: j+ c% Q& o" i4 G; {
{printf("%4d",a[i]);% ~# S7 d( ]1 E; z. U9 P7 d0 p8 f) A
  fprintf(f,"%4d",a[i]);
1 Q% x' ~/ X; `0 ~" | }, e/ C! z0 s& I  \
fclose(f);: }. I8 H  n& g! X5 J! M
}
3 d( B- {5 W. S" X! [: h7 ^% t1 Q; A* o, l* m: N
18、编写函数countpi,利用公式; v. B  `- \2 H7 i2 `. X+ P# b
     9 l6 t2 ~. B/ n: Q! c/ }) S
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
# ]5 t+ H' O  _2 H$ w) a& E#include<stdio.h>  p3 o7 x' W/ \& Y) ~
double countpi(double eps)               /*eps为允许误差*/
/ ^2 H2 {* c! A' ?2 s% P+ P{: _4 t2 t7 E7 h
  int m=1;5 w. n/ k0 y. y' m0 `4 C9 |. O
   double temp=1.0,s=0;
2 E; y/ e* \) Y, m3 N( U  K4 ~   while(temp>=eps)& |; ^3 @% M  f! q) a  b
   {  s+=temp;: p1 m& F2 {. I3 g( c. P
      temp=temp*m/(2*m+1);! `; r: R4 B9 t1 B) W
      m++;
; I* P' O8 s, {% V4 W   }0 I& d. i; n( ]6 \- B. S$ h
   return(2*s);
4 O: I* h, |2 ?: }  ]+ o}8 i" d2 E0 l; g7 q( J# i
main()
0 x: @% Z' [  C1 z7 x4 ?( `' ~2 K{FILE *fp;
9 _3 H: a5 c" Q. |   double eps=1e-5,pi;  S/ _# D; t% K8 p
   if((fp=fopen("p7_3.out","w"))==NULL)
1 r: w7 o' ?# }7 T { printf("cannot open the file\n");9 v8 b5 P# t# m! B
   exit(0);                     
1 e4 l: x- Y: L+ V6 e" d }
6 H2 I  J; U% Y7 x2 a0 D pi= countpi(eps);
! p! v' t9 l, O: Z3 z* p: y9 Y printf("pi=%lf\n",pi);$ D: @" R- i9 P0 l1 ^/ ]
fprintf(fp,"pi=%lf\n",pi);
' Z& z  c; ^$ |1 mfclose(fp);  [6 o; z2 {# e2 X6 F( s9 K
}

该用户从未签到

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 20:30 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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