找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
7 s' |# {$ Q% t: ~
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
' C+ [1 w+ D) i# M# ^6 P( j. x3 l#include "stdio.h"& Y4 s0 {$ ~: {/ P2 r
main()
" T% ^/ a9 H' _, \% ]" `{int i,j,result;# c0 Q/ g. t% q% n0 F
for (i=1;i<10;i++)3 S+ T* I: E1 l
{ for(j=1;j<10;j++)5 I/ V' Z; t9 b0 i1 h
     {
4 n3 G. [) I5 y$ S$ I" M        result=i*j;' L2 {' ~: d- z3 x0 w
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/+ b' g' q/ l2 i9 z: a/ ~
     }
) ?8 S3 \# Y- o0 r: {  F    printf("\n");/*每一行后换行*/
4 x1 u4 S, j" h }) K& d* E/ h8 E- k8 `5 _3 x0 z2 C
}
5 Y- z4 r1 i4 L  j  q* A* K$ p$ R+ J+ N& V; r
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?$ _" S( e1 B' S" j- Z
兔子的规律为数列1,1,2,3,5,8,13,21....*/
! k0 i0 E6 H, ^, o# ~main()
- r8 A" \: C: ]" W: _9 w{7 r6 @' P; i9 R) T6 U6 T; @. T( W. v
long f1,f2;" Z- t) F. I# ?
int i;
# u& c% P; v$ g$ q1 cf1=f2=1;
: H3 x; E2 z( {& m  {for(i=1;i<=20;i++)' S3 p6 I4 L2 v1 F, s! U  r; R. N
{ printf("%12ld %12ld",f1,f2);- e; @# v) G/ o
   if(i%2==0) printf("\n");/*控制输出,每行四个*/, ]2 Q% s1 V6 r; s7 S1 J9 O
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/
) s" S, D9 X$ b. {0 B1 W5 q0 g   f2=f1+f2; /*前两个月加起来赋值给第三个月*/! V' w3 ^/ j' E! h4 H% I
}
; D) Y8 {$ _$ P1 y: a  @) R" H}
4 c9 q3 v3 O( j/ R3 h8 \4 v
) K9 r# s3 \6 N$ _6 ]3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。' F2 u) P' q$ ~2 {
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
9 a( M) B1 s0 v$ L# L     则表明此数不是素数,反之是素数。*/
/ z9 W) F8 o! j  _#include "math.h"' ^7 t5 Q& S# S' X# F; I
main()
: g, N4 _& k1 E{
: d& ~: @( N; b, h3 hint m,i,k,h=0,leap=1;
$ f' N4 W, w: f% Z$ bprintf("\n");
" a4 ?) `. E$ Q! G" u6 Pfor(m=101;m<=200;m++), ~+ c6 t- k  j% }0 y9 N; }. a
{ k=sqrt(m+1);
5 h3 c8 c  i# p# _* p  b   for(i=2;i<=k;i++)
; K+ \4 y: D4 w' a- Z     if(m%i==0)
$ h* N5 d& ?# `( \# F6 Y- j+ |        {leap=0;break;}
1 B& ?8 }1 u4 F) w& V+ T1 _     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
7 W, {: W5 n3 u4 u6 K. L" a6 v2 B        {printf("%-4d",m);h++;3 D% ?" i& S* e  B; B
         if(h%10==0)
- L# |3 Y$ g) y. M2 m8 I' F             printf("\n");
8 X- r1 V: @) I+ q* r* b  C        }
" W- U0 B/ }! u4 a( j   leap=1;6 {  r9 p1 W, M6 q/ o% G5 N. o  E
}
$ C2 E" Y& H" n3 P1 S( Mprintf("\nThe total is %d",h);
2 `1 B- T! B: g  [# [}) ~- h# S/ U% \9 _) X
6 Z" Y0 p" O! a0 A% x( o& I6 u
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程! Y- j$ r2 S5 L4 N! i; i+ B! t5 i
   找出1000以内的所有完数。*/7 b' t* b0 K* w; j* Y' \
main()2 t. w; b2 {0 z$ G
{
' N3 S1 A4 Y! V) T/ o  i% q% p% ~static int k[10];3 @! N' J! A: W" E0 Z9 m
int i,j,n,s;3 H' V: W' b3 ]/ M9 f, j( ]+ ~
for(j=2;j<1000;j++)/ t5 D( d" {' D* n9 X
  {
! h# m' a" i" Q5 d  a7 i# x: j1 |   n=-1;
9 M  }8 y! n; }9 {( l+ P( {   s=j;0 G. G% }, L' M; Z! [7 W
   for(i=1;i<j;i++)
5 }' ^% ^* ^8 H$ Q# }' W( E     {if((j%i)==0)0 C. c8 a' v/ A. i- T) ]2 g- a
        {  n++;
/ G* J2 K; ]) K0 D) I           s=s-i;
9 D+ @, ^, p8 X2 F- b. C' G           k[n]=i;- j: q- U8 H6 C& K$ s' K& _
        }
5 l( S0 W% ~" T" t$ }4 H& O     }" q+ N8 [) Y) P+ j: J& A  z& E
if(s==0)( h2 @4 C" H4 d. A% W. ?
{printf("%d is a wanshu:  ",j);- G- ?- W. A% @7 q
  for(i=0;i<n;i++)
( c# b. t2 B+ H- W  ]      printf("%d,",k[i]);
# ^/ s$ T% r% P- |( ^  printf("%d\n",k[n]);7 E; U: [7 `- G' ^
}$ q) e+ f. |" x  H7 d
}4 X7 d, O( j: |- `: `
}8 `/ p2 c/ c$ k3 l8 Q# s6 u

. p( [# j3 s! ^& n$ _) b# k# J5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出," d: U9 q  I  o% F) j
请在空白处完善程序。*/
2 A) _% i. f/ V5 emain()3 K: h9 E3 _7 h' g. r; T
{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/: y* Y3 H' H$ O1 I/ t
printf("input 16 numbers: ");/ N: r8 c3 m+ `* G1 g
/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/+ J  g4 E5 @3 j# b7 e& r) B+ k
for(i=0;i<4;i++)
$ s* w8 J6 R% L5 u/ O     for(j=0;j<4;j++)' d1 Z2 ~) f8 R, u: q/ e4 `
     {  scanf("%d",&a[i][j]);% x5 R5 G2 D" T1 T9 z
        b[3-j][i]=a[i][j];  p! b* M2 z' L+ S% f
      }
9 `: T3 c- F( G7 Y. R, V$ U9 j. ~ printf("array b:\n");% z* |& u) m5 M" x
for(i=0;i<4;i++)# k- t6 Z$ [! I$ F# N6 K' k1 Q
    {  for(j=0;j<4;j++): ~: y# H0 Y! l" t* r  R
       printf("%6d",b[i][j]);* t/ u+ t8 j% q# Y4 k" i
       printf("\n");
6 ~0 l/ x. |' X* \( z. W8 r+ G     }
. p: ^+ ^, ^" r( ?9 B}
% r$ F+ r/ M" g) ~1 Y
( L/ {5 T% @7 j6、/*编程打印直角杨辉三角形*/
& P9 R" u6 u/ w! c' i% ^main()
8 k- [, F% X3 l* P. R9 O" `! D{int i,j,a[6][6];
4 f( M5 q, |9 m! S9 t- u9 Q3 gfor(i=0;i<=5;i++)6 y% E& c7 j: a% C- p
{a[i][i]=1;a[i][0]=1;}- n. Z- ?0 ?, c: ?. ?. n) |
for(i=2;i<=5;i++)
4 Q- U' R6 ^3 v7 T9 `3 b! H  for(j=1;j<=i-1;j++)9 B3 d8 r. R. B" A# U' f
   a[i][j]=a[i-1][j]+a[i-1][j-1];
9 z1 q& B0 q- }for(i=0;i<=5;i++)
# h: o) N: a2 Z1 h: K/ J1 T  {for(j=0;j<=i;j++)1 Q2 g) |" S6 p0 [8 t% Y" R
      printf("%4d",a[i][j]);7 V0 _/ [) s2 z' J- e5 E2 t" A
   printf("\n");}
; h# }- A8 f' T5 r7 a1 o}8 V$ q5 x- P: a+ I$ o2 w8 O
9 o. R( O2 K# ~& d7 E& a3 d0 Y
7、/*通过键盘输入3名学生4门课程的成绩,! D3 A7 L) D. q2 r! u
分别求每个学生的平均成绩和每门课程的平均成绩。
, v' w# I/ Z# j, D, j' g9 f1 F; p要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车4 O" P& ^5 J7 h; O9 P: B0 S6 i
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
9 o4 l7 N1 p' e#include <stdio.h>3 F: [6 Z; C% s! D; o$ v
#include <stdlib.h>
& Y4 @6 [" X$ l" R( X7 gmain()
; z" A; }& E0 l- ^2 h{ float a[4][5],sum1,sum2;
4 x; i6 X, G3 b  ?int i,j;
9 h, ~  |& p( D( {for(i=0;i<3;i++)4 {( Y! c5 y: W. b! T4 c
  for(j=0;j<4;j++)
. N8 C; t9 M/ n7 ?    scanf("%f",&a[i][j]);7 m: C3 {- k0 o' ~
for(i=0;i<3;i++)
  Q5 x! f& }, Y. [+ i" d5 Q/ J{ sum1=0;
+ `/ O, J$ L# p9 d2 W+ U  for(j=0;j<4;j++)
, D: z0 t) O$ ~$ F% `; m7 X    sum1+=a[i][j];( {. C# K. O, S4 R
    a[i][4]=sum1/4;0 r" p' B& O. \. D8 d1 ]
}
2 Q9 w) _' H3 |4 r9 @  i2 Ifor(j=0;j<5;j++)5 f& g1 r  \! s2 l2 f7 I1 J
{  sum2=0;' C2 n4 ]( d! u$ m7 _- b
   for(i=0;i<3;i++)7 R+ |4 J/ {+ M' ^
     sum2+=a[i][j];9 V+ x  f0 C0 O: A9 m  d5 G
     a[3][j]=sum2/3;# W8 n6 V: X) W
}
% Y8 m: ]( g$ ~( a% e- [- P for(i=0;i<4;i++)3 X8 |2 [  \' O0 q- D
{  for(j=0;j<5;j++)6 y0 F, R' b7 D& E8 @9 Y
    printf("%6.2f",a[i][j]);
. v* c4 Y( @4 Q& E2 z9 n  ^    printf("\n");
( w4 Z$ s. A9 G, C }7 h& X; d* w) y0 z6 j
}& a. o! O/ S. m- ]" b3 ?7 b& {

2 T7 l( U2 q5 B& Y4 s% F  ~& y8、/*完善程序,实现将输入的字符串反序输出,
$ w: h/ `5 t; r# j9 m如输入windows 输出swodniw。*/1 z, N7 Y2 |% `. b( n1 T
#include <string.h>
8 [0 J7 ~" o: l# l' O" fmain()
( t) [+ [8 ^" y+ B{  char  c[200],c1;- S% f* t* S9 }& D. s7 i+ J
int i,j,k;
5 y4 h7 V. p$ a/ ] printf("Enter a string: ");
) L+ L7 d5 |" [ scanf("%s",c);, ^/ y0 Z, u1 P- u& S$ J- e
k=strlen(c);
2 ^8 `' w2 ?! @3 @* D for (i=0,j=k-1;i<k/2;i++,j--)4 ^) Z0 X8 }/ A8 R" I
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }6 m  ^4 h! E4 r
printf("%s\n",c);        5 N% E# d3 j' [  Q* |+ O
}
! N* N, t& S" n2 x0 ~指针法:
3 a% M" C" T+ t3 j! _+ D8 Dvoid invert(char *s)
; q- h6 t# h3 E6 B  |- f1 S{int i,j,k;
1 r. [' f- \$ k$ F1 Ichar t;7 e: f' |8 l3 N
k=strlen(s);
$ j& ], e2 o5 g' i$ d- H. Gfor(i=0,j=k-1;i<k/2;i++,j--): F! a( @" c& H: v; C# Q+ i5 q# v
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }: b( K; t0 ]8 M7 P9 p
}8 ?$ z: i2 G/ b/ g) m3 y
main()% V8 L  U2 V& M3 _
{ FILE *fp;
: ?) N$ S  G  s1 _0 T char str[200],*p,i,j;
, b& R6 A" V; p( }% `# M if((fp=fopen("p9_2.out","w"))==NULL)
1 _" z8 q# C. S" S3 C8 U      { printf("cannot open the file\n");
4 x1 Q& K" f. J& e/ U# _        exit(0);                       
' n& e$ p$ U5 J+ ~' V2 X  q( F      }
" O% J, m/ s- [- N+ t/ J) Q7 J printf("input str:\n");
2 d5 G: }& Y5 K( ~gets(str);  g1 s: V5 |& m" o0 ]
printf(“\n%s”,str);
8 _, t* Q/ ~) ~4 {7 vfprintf(fp,“%s”,str);! b8 Q7 g, D( D0 u5 H) k1 c4 S. @
invert(str);" T4 u  ?9 X  Y) W: G7 G
  printf(“\n%s”,str);+ i3 V3 G3 G" {2 |- A! _! t
fprintf(fp,“\n%s”,str);8 E* n7 q: q' ]: R+ h0 r
fclose(fp);
' p* B% r1 {$ T1 P  k$ i' i}7 J& P$ Q! ^1 X( X
$ F! O# p' T/ p* a" g8 d
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/( f9 p+ d6 w' S7 C* K
#include <stdio.h>3 z) e  ?/ X6 a
main()
! R! ]8 u5 x; h0 G6 [# B* [5 z{  char  s[80],c;
4 b$ O* ~  ?5 y5 ]8 v% Q int  j,k;( E  A0 u3 t  K, C
printf("\nEnter a string: ");6 Y1 k) U' D* J4 W5 g9 w8 j
gets(s);
  v: I) T5 P4 a/ s6 w' _- F+ r& \ printf("\nEnter a character: ");& T2 \8 c5 }0 y# m
c=getchar( );5 ~, H  a6 f2 k% E9 _. n& {
for(j=k=0;s[j]!= '\0';j++). [7 ~% H- ]9 Y" J( ^& O
if(s[j]!=c)5 }" t& s* G- x  R
    s[k++]=s[j];3 [" ?; E/ r5 ?4 L5 l; ]- D
s[k]= '\0';& ?! ~; ?0 ?. e/ t0 d+ C
printf("\n%s",s);
7 n" u' j6 i; \: n- T+ ~9 m}
4 V2 E4 x* c; s2 u/ e% V+ ?1 w3 D. o1 U% M9 n
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小$ @8 d( W1 |9 f6 [; o: c
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/" W  P( d0 q' J
#include<stdio.h>6 d0 ^. g/ |# ]" B5 B6 u6 U
void sort(int *x,int n)
3 V3 q( F1 B6 y2 w, v{1 g  X+ i) k" j9 c- U5 Z
int i,j,k,t;7 {: Y& d5 |( r
for(i=0;i<n-1;i++)
) z& d2 M8 G* W3 W' ~5 A{1 m" J% C2 K: X7 X- L  k
k=i;/ O# }/ H: k1 y
for(j=i+1;j<n;j++)6 `  u9 N. }, Y9 N; g
if(x[j]>x[k]) k=j;
. c. j0 c; r2 R- c' v if(k!=i)
0 i- t$ u' E. O1 s {1 W2 s' U. P1 v/ |& P
  t=x[i];
2 c" D% n. [; l6 d0 }+ t6 J. c  h  x[i]=x[k];
: E3 M( x# R8 i* h- W2 u" H  x[k]=t;
& l9 C9 _1 T# o" _' @2 M' e }% ?# I7 n4 U' M) E. o1 B
}
1 V. R6 s& v3 h. P  x}6 _! M/ T. V) i5 z; Y3 }6 i
void main()
6 r* |: G& x4 ^- n7 _) D5 T{FILE *fp;
1 ^, [, v; T7 H3 y/ P8 @1 a   int *p,i,a[10];7 M% S8 m% e4 S4 c% e% y
   fp=fopen("p9_1.out","w");                     
% m7 E# w1 {% K5 ~3 ?5 _* Z4 M  p=a;
* L& `8 j! S$ F; k+ f$ C& yprintf("Input 10 numbers:");
2 a  ?* E2 Y3 s/ `for(i=0;i<10;i++)
2 w: `8 b  T4 dscanf("%d",p++);$ R1 s% a$ h9 ]) n& [4 l" L- u; g
p=a;9 Y$ u( b- G2 r2 Z/ H" U
sort(p,10);2 k& o  f6 G2 l3 W4 L% H$ ^" P" N
for(;p<a+10;p++)
* D; ~7 Y5 n! H: O( M( Q{  printf("%d ",*p);
6 ]6 q' _  M7 Z. }      fprintf(fp,"%d ",*p);  }$ v) ?7 {$ W/ G5 Z) b+ _0 B; ?. D
      system("pause");
( @2 S6 s1 L( S8 u6 b' Y( T9 S- A" |; e+ G  fclose(fp);
" M5 D- q  y0 K}
2 O* k; c  m& z0 F5 [" S( x$ u& {$ W+ F3 f6 @0 S. J0 w. k$ V& p' w( ], Y
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/8 Y$ b" O: X* H7 i' L% q
  main()/ O1 l, ~; x! \: U6 J; O
  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/. U5 A# G* D" \$ u1 K
     int  x , i, j=6;                         /*j为元素个数*/8 e; m8 w- ^& k- |* _
     printf("Enter a number: ");
& V4 g( K5 {: G; ?6 X" _8 V     scanf("%d",&x);; i# g* U! U. N5 @
     a[0]=x;4 l' |7 U0 L) j1 J
     i=j;                               /*从最后一个单元开始*/1 i# c0 L0 ]9 |; B/ I/ M9 R
     while(a[i]>x)
4 V, @7 s" J1 A7 V% @5 v( a     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/8 g# M* r' r- x4 w
     a[++i]=x;
3 I. M' J) M, s# b( ?: V     j++;                       /*插入x后元素总个数增加*/0 h8 `0 Y! S+ v
     for(i=1;i<=j;i++) printf("%8d",a[i]);
; r$ B7 O- V3 g- E& W% ~- ~     printf("\n");( Q" e$ _& {! h8 B) _$ O
}
* a5 V# _- ^2 L9 e. j7 X, K& J, w( C, d1 M% x4 O" \9 L& l
* R6 {( g& }& X) }* M' U
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
! ]' F; ?3 {0 u1 H4 P#include<stdio.h>
/ O7 i4 `9 i/ B$ C# `; U/ a2 y$ ^replace(char *s,char c1,char c2)
8 n+ ]7 ~) p2 q8 n5 }4 k{ while(*s!='\0')
( E! O  u5 e6 W  N3 ~' b5 j {  if (*s==c1)% y8 T+ N) }+ D% g
       *s=c2;3 g5 V, B- [  W! F. v0 h5 s
       s++;6 i  f. Y) ^0 m" c
}
4 O3 A* r+ M( z  i; d}
5 F: E: {: a/ D$ l+ `main(): s- B& X5 ~+ B
{ FILE *fp;. `. ^5 A" G3 L% e4 c' I
char str[100],a,b;
. A/ S0 C5 f, W9 }0 v+ I5 n if((fp=fopen("p10_2.out","w"))==NULL)4 u" D6 U4 i0 y2 x( W
    { printf("cannot open the file\n");7 P  L/ V# {& u$ V8 J$ s9 o2 ]
     exit(0);                     }
, A- l  k7 z4 p1 w printf("Enter a string:\n");" k( Q' n0 k8 t0 w; _0 C; z
  gets(str);
, F' t8 y8 d- ~2 J$ @/ ?  printf("Enter a&&b:\n");: I7 B; [+ a* M& l8 w
  scanf("%c,%c",&a,&b);
1 [0 w8 j& X, xprintf("%s\n",str);
) O" s: O0 K9 ?# w; D6 j3 pfprintf(fp,"%s\n",str);
6 }/ w9 i/ X/ }+ S" P9 Nreplace(str,a,b);4 Q& m8 V3 t3 F1 X5 p: ^) @3 i
printf("The new string is----%s\n",str);
1 \' V7 c( {5 H1 C3 Rfprintf(fp,"The new string is----%s\n",str);5 A/ z2 c; @: w6 i
fclose(fp);
8 L9 w+ a  B" C; ]* n0 w" n8 s}
6 O) I. G1 c/ w& d6 X' h
, \7 G: k# P' j& m13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
& s1 k) G  W- `6 s,不存在则返回-1。*/, W% S; T, ^: i8 I2 U7 w: `* k
main()
+ o8 i2 n) V1 B* O/ R4 ^2 j{char s1[6]="thisis";char s2[5]="is";! k( O9 ]8 J0 D6 h
printf("%d\n",search(s1,s2));
- U# V  h* g. o  h3 h' lsystem("pause");
1 M; f. t. e# \. i}
- S2 e$ K6 j, J4 B( Z: {int search(char s1[],char s2[])
/ X$ B0 Z( y2 G1 X3 m2 N{int i=0,j,len=strlen(s2);
8 O. h$ R1 ^# V1 N. S7 H- o! @) M- }while(s1[i]){
4 l5 T! I& a5 ^' Pfor(j=0;j<len;j++), [0 w" `6 |1 K4 e$ O
if(s1[i+j]!=s2[j]) break;) ~2 x$ g+ O2 g0 N$ G, G  |
if(j>=len)return i;4 M7 i; ~# z, J* k0 U7 ]8 P
else i++;8 E; s0 G/ M: @2 E$ r6 y. x
}. f3 [, k# I; ], Q' K7 H
return -1;8 V  g6 {$ Z- S/ R
}! Z; }7 D  N$ Y* S
  X8 ~' Q9 {& b2 b, q# N
14、/*用指针变量输出结构体数组元素。*/
, j* x( f( [9 g' Qstruct student" b4 {% W. `9 K4 i
{
: q. ~# m: z+ r8 M: J4 K2 s! o; Rint num;
6 ]2 g$ d! V8 e) I1 E- B+ c7 o" lchar *name;
' e$ A' \( L1 ?char sex;
$ X# W( T4 _1 R2 F8 {int age;
, i9 r, r6 c, y* ]1 t- b; L}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};' Q3 l  M( D+ A! e' o4 i& c
main()
' d9 c" _2 h3 o7 |{int i;
' O8 [$ w3 D( n4 z/ |struct student *ps;
, U3 e+ E; C: P/ E: eprintf("Num \tName\t\t\tSex\tAge\t\n");  
* @! ]2 f& S! ~1 s, e/*用指针变量输出结构体数组元素。*/
, x( s0 V9 L# D0 a0 }3 B6 Z) Lfor(ps=stu;ps<stu+5;ps++)
3 i! B, u: n2 H; r" v" Y7 yprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);) Z" t* N. o' U6 @
/*用数组下标法输出结构体数组元素学号和年龄。*/" n; o" q2 D6 D4 c8 }4 z  ]1 d
for(i=0;i<5;i++)9 Y$ U: Q& k) n& f; v0 n( T; y: t
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
1 T6 I3 E, F0 s% O5 L( i0 |}
2 R( E4 S# y$ @/ e3 M/ ?7 {
- [- N  ^6 A! K3 B3 c15、/*建立一个有三个结点的简单链表:*/
* a8 H4 s" H3 j! g/ V#define NULL 02 k; }8 h! ^( ?6 q, W7 k
struct student
, P0 L6 f. j7 v. X7 x8 `{
8 N  y3 p' M! }& Y( X" r. iint num;9 {9 l* d: ~: D! c' `5 z; [
char *name;
0 @/ j% ^+ U% {int age ;' p  _* b: Z+ ]) Z0 W+ S/ G; O( J
struct student *next;
4 G6 P5 |" Q3 U/ c+ g3 i9 M};& o8 @4 ^7 x. }9 T: y
void main()5 n" v5 a/ o, \+ N5 f' h
{* B$ f6 N: a) A
struct student a,b,c,*head,*p;. M  B8 K, r3 l& |
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */$ j/ U+ H! Q% I
b.num=1002; b.name="liuxing"; b.age=19;
6 h- m; L" ?$ c, L* Y/ i7 M" sc.num=1003; c.name="huangke"; c.age=18;9 v/ P4 X, N8 @( Z
head=&a;                           /*  建立链表,a为头结点  */
. {2 `# i# o+ ^% m0 Ya.next=&b;. ?0 a' S4 D  I$ q
b.next=&c;
. n" E7 x5 L; ~* Qc.next=NULL;/ f' [( }; R% H1 i2 g
p=head;                            /*  输出链表  */
5 w8 H0 A: N' ^2 ~5 [do{" Y3 h# O% }% b  _
printf("%5d,%s,%3d\n",p->num,p->name,p->age);2 _# u6 k$ }1 Q6 E
p=p->next;
/ l5 I! z9 s" @}while(p!=NULL);6 K% m$ z7 P6 j0 c: ?: y
}9 V' f7 ~5 n0 `8 ]5 o- ?2 G# f* w

1 X8 \  E1 k" Q7 P; ^& S/ u+ d: N# i16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/5 H* C4 u# Y( {6 v/ K
#include <stdio.h>  g1 m. c5 C, t, h6 x9 }
#include <string.h>
' A: U" P- k% ^2 [/ y0 U#include<string.h>
- A( H5 N! O( \2 C: E" C2 {main()6 q' }2 p( X1 N/ q  ^  ]8 q
{ char s[100];
5 Q* a" o5 x" v0 X7 L- xint i,j,n;
/ ^( G! S  S" Y  I3 j. @8 tprintf("输入字符串:\n");
  C; q1 n; W2 I+ r* ]gets(s);1 ~6 ?1 N4 g% @; ^* |
n=strlen(s);
. x; j6 t, V  X+ y# M' p/ Mfor(i=0,j=n-1;i<j;i++,j--): P+ y8 I9 h& N0 y  x4 l
  if(s[i]!=s[j])   break;
1 m. e3 ^4 o2 ~) Q' Tif(i>=j) printf("是回文串\n");& S9 M1 p& j+ y4 G6 m" p/ `8 p& a
else     printf("不是回文串\n");6 X4 G' K; [3 h" g9 \& R
}
/ |: E5 V9 @* L9 x
' o# t! m, V7 M( x' ], y3 e4 P6 A17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
* a1 x, {) }! u#include<stdio.h>
6 `- X, T2 R- S+ |void fun(int a[],int n)! o9 h' X2 D$ f! P) J" \+ @5 ~
{int i,j,t;+ L  @) O+ w" A6 I; u
for(i=0;i<=n-1;i++)
* `' L0 W- ~/ f/ R, P5 z( x1 G9 Sfor(j=0;j<i;j++)3 D  ~% S& ~, _, a# |
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}- ?5 b, Z* {3 i# A
}" o) ]# ~8 B' n. {
main()- Z1 t& l( j6 k
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
7 W% f# s7 U7 v, D. Q2 P9 bFILE *f;3 |: A! |/ W. ^8 I: U5 W
if((f=fopen("myf2.out","w"))==NULL)
% o' S2 ~1 `5 r" e9 s) q printf("open file myf2.out failed!\n");7 M; p5 x; F( ^9 U2 \. g
fun(a,10);
- F+ h3 }, }4 Tfor(i=0;i<10;i++)
) Q- v( Q. D: g/ \ {printf("%4d",a[i]);
/ B. |' [$ ~, [; L& F" ?  fprintf(f,"%4d",a[i]);( v2 Z9 Z$ j$ _, u4 m4 Y
}0 I6 V3 k: j  x" ?/ w5 }
fclose(f);' J5 z0 t9 k! ]2 s9 C- a
}4 s) Q: c& @; f, {

% K. Y0 W; W9 z. Y0 F0 ?4 V' V18、编写函数countpi,利用公式
2 o$ N. C) [: Z4 K+ z6 _     
2 m. W) K& F" f/ F& L1 S 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
* l( u7 W9 L" q6 p' i7 l#include<stdio.h>7 S1 J; m$ Q! Z1 c1 O
double countpi(double eps)               /*eps为允许误差*/
6 z0 M1 {1 J* v  L% e" c- j6 G{) v% N& R5 O8 a7 b' n- }% t1 d
  int m=1;
  x! i+ q0 v& c2 Q$ ^9 e' A   double temp=1.0,s=0;3 p, H- Z( i* M+ e5 U0 X. V2 o& I' `
   while(temp>=eps)
2 s% ?& V; f7 k7 _( c9 Y   {  s+=temp;
) u1 z3 {9 E3 I' V      temp=temp*m/(2*m+1);! o- d, T& I& q, |$ H. ?5 ~* O
      m++;
: N' r) Q; p1 M# j   }3 V" w+ o* V9 W( ~7 \- G
   return(2*s);
. e3 H9 t8 U$ R}  ~: B; V4 w& b# H* t& c
main()  \; i, W, j6 R0 I0 S: g
{FILE *fp;
* _9 Q7 e* n! `3 Z   double eps=1e-5,pi;
5 J2 _5 A* E9 n$ C   if((fp=fopen("p7_3.out","w"))==NULL)5 v- Q5 A/ T; A7 D" Z( E& {+ a
{ printf("cannot open the file\n");, z* @6 k. l; F& m7 l; a
   exit(0);                     
& f6 C9 _6 C7 s }
2 y+ p3 r3 H+ {6 X8 X0 ~# `- l pi= countpi(eps);. l& I& Y( _2 G8 T- `
printf("pi=%lf\n",pi);
- F1 K, R' X! k9 v) x6 N& _+ @. G/ Dfprintf(fp,"pi=%lf\n",pi);! C% T9 R4 ]" S2 q4 ~8 }
fclose(fp);
, L$ `/ e; M. B0 Q# o}
分享到:  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 | 只看该作者
感谢分享4 |, A' b# H8 l; a

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, 2025-2-2 04:52 , Processed in 0.063242 second(s), 32 queries , Gzip On.

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

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

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