找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
; N1 ^" T7 W- s$ f
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
9 E# b# ?1 T+ c1 t. d#include "stdio.h"
9 I$ y; b1 W5 I$ Q/ imain()
+ p  ^0 j( o0 N- e4 L$ K{int i,j,result;
5 M  H3 c( U; X7 {: H' ^for (i=1;i<10;i++)
3 g6 s! r2 J  K  [% u9 Q { for(j=1;j<10;j++)
6 W) I4 ^$ s5 H8 K8 o     {1 b/ {  \- B: }4 q5 N! e) r& [
        result=i*j;
: }" c0 ^3 d% o0 W; i        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/- z% A( _: Y3 I7 y  d' J
     }' b8 h& k6 b+ H) o
    printf("\n");/*每一行后换行*/$ \  ^& O: h; K4 V( E$ ]/ l3 f
}
" T! H* h; f' z+ b}9 Z% o+ m- n+ w
! z7 _& @  E6 j. a% A% J; l
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
+ h; b' a' y7 @& G. @! g4 t兔子的规律为数列1,1,2,3,5,8,13,21....*/
! _( S2 O: _! n$ Z5 G9 K% rmain()" d7 O" Q' P& G& m' j2 b
{
3 s& @% x6 x+ P1 `% Z  o# along f1,f2;
# R, C$ j. Z1 Q7 m  d% {int i;! h, L4 J, j9 v7 D( a3 R
f1=f2=1;
6 N2 G! U+ j2 c2 R+ sfor(i=1;i<=20;i++)
* M+ Y; y4 j, D) q0 H. a+ C; e{ printf("%12ld %12ld",f1,f2);
  W6 w) M) s. q& U3 T8 j   if(i%2==0) printf("\n");/*控制输出,每行四个*/
2 m! o; B- ]6 e. ?2 ?7 f   f1=f1+f2; /*前两个月加起来赋值给第三个月*/
- w" i$ O+ p4 w$ d7 S% C' }7 y   f2=f1+f2; /*前两个月加起来赋值给第三个月*/% ?2 {8 {  f4 H4 w7 Q% D8 I9 w/ }: f
}
' Z% |9 v9 c9 _}
; }! Z! _9 ?% M/ ]( G2 }5 ^. i9 x0 }+ b* P% G2 @
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。" i0 j3 O4 h. t: ^, i4 t
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,0 H- C+ C* H! n/ Y! ]
     则表明此数不是素数,反之是素数。*/
, e! ~, w' w4 w#include "math.h"
# ?4 j, I/ k8 Q, ]2 x7 Ymain()
# m5 N; X8 c( I- v4 ^  s( z: [{
0 s) w( k+ r. ^" {- B! L1 dint m,i,k,h=0,leap=1;8 m8 s+ z2 _  }/ n8 u
printf("\n");# r0 U' v3 }3 M- _7 i8 C
for(m=101;m<=200;m++); k; ^0 w  B+ X$ n, i) b
{ k=sqrt(m+1);% M, W6 `- \/ N; r6 M8 b
   for(i=2;i<=k;i++)
8 I; U/ H2 K8 N: o. g( p     if(m%i==0)$ c/ T# _9 H, ?( K' D' s: K
        {leap=0;break;}. |2 p$ ?( c, p( {. {. q1 V8 D0 u1 a
     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
# u% m! s" H6 [: m        {printf("%-4d",m);h++;
* ~  V  W) D1 ~% c& x         if(h%10==0)1 x# q/ A7 H8 w& i' P
             printf("\n");
  _. m; R* {+ J        }4 ]. U; ~! W5 P. q% N2 d2 C- @
   leap=1;
) V+ A$ `2 V) j3 E }/ K2 n5 v) ~/ K
printf("\nThe total is %d",h);
2 a' [7 h, j7 N8 ~3 y}
4 v7 t$ X: y' F3 W0 D9 U
& e% l, u4 e6 \$ f' ~* `( V4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程" e. S8 d- r  O) r5 L3 m
   找出1000以内的所有完数。*/* E2 y6 U# `" u* g8 t! S
main()( F; e/ l' |+ ~; P* R  ]- `
{1 s9 J  f. N9 F, K
static int k[10];% L/ m/ A) t) P2 R2 b2 e& d
int i,j,n,s;. }# b$ N5 R' E. ~
for(j=2;j<1000;j++)/ C9 f* ?8 m* n; Q
  {
; ?; ]3 r1 ^9 a  S, G& c   n=-1;% `. C  ]5 x# v
   s=j;: B4 h) R0 b3 Y, ?! ?+ E% p  m
   for(i=1;i<j;i++)
0 \% O! M4 A3 j, P     {if((j%i)==0)# Q. m) V( w( r8 w
        {  n++;
3 x! D$ W1 j1 y" S9 r           s=s-i;
3 [) D/ R" |. R& U1 n           k[n]=i;& j  l4 D# ^5 \4 S2 R1 i
        }9 r0 G9 h. I7 a$ R* X/ G
     }0 W4 Z) F2 L2 s: ~, x8 [8 t
if(s==0)
/ d; b2 i, O0 P; x* m {printf("%d is a wanshu:  ",j);
; J. a3 q: u! l+ F  for(i=0;i<n;i++)
2 |- R- d; d' W  d$ |  J" v      printf("%d,",k[i]);: z0 x6 Z4 E3 Y& u7 P$ P. @
  printf("%d\n",k[n]);
" J2 ]# e5 P* Q }
* W$ L% P6 K6 e0 \1 v  @}( l6 C8 L7 ?$ q
}
$ T2 I0 w' I9 K) b4 ]
) A9 d8 i( A: y7 `7 x' d* B5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,0 D  s( o5 p' x  h7 g' S# Q2 `) s& P
请在空白处完善程序。*/8 f( n; n2 e: U4 P3 C& Q# d) x
main()
" L+ S, i$ Y/ z{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/
$ K; p. j, ]4 |8 z/ U% L printf("input 16 numbers: ");
2 x1 q: t4 C  p/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/  U5 M2 B! o8 e) P& k; o
for(i=0;i<4;i++)
' X8 J* c/ T9 a: m7 }! |$ z     for(j=0;j<4;j++)
: X0 Y9 M- ?" v     {  scanf("%d",&a[i][j]);
2 l; q. @9 I( C& C' u        b[3-j][i]=a[i][j];( ?. v, e- l2 q& i. [& V
      }/ o2 @  _" a( S" O) }$ \
printf("array b:\n");; }0 p" t- I* B  I7 Y7 A# V4 B" ~' x& p
for(i=0;i<4;i++)& Y' p9 W, |3 v: p4 p9 V
    {  for(j=0;j<4;j++)" I2 g; [0 n3 O9 N
       printf("%6d",b[i][j]);
% U4 M) ?$ |1 d       printf("\n");
0 s+ H" h% j$ w/ _     }
+ t* A$ d) p0 }* V8 `4 q  f0 w}3 Z% a  v( I: _! C

" x% j/ b% O  j* g1 Z. p, p6、/*编程打印直角杨辉三角形*/
/ X! ~; c: E( T/ O2 @9 a& F+ Lmain()0 `* S! ]. U* _4 |* C$ C6 I
{int i,j,a[6][6];
; g) _# o$ C2 i& R6 W/ x+ r9 ], xfor(i=0;i<=5;i++)6 J* L" g3 J1 d/ r  X& [
{a[i][i]=1;a[i][0]=1;}
3 S4 [: v7 e9 {2 R7 s& Y4 ~for(i=2;i<=5;i++)
* Y- U! B# z8 w! d% S  for(j=1;j<=i-1;j++)6 b+ L) L7 R, ]3 \* G' _
   a[i][j]=a[i-1][j]+a[i-1][j-1];
! Q7 ]( ^, P" u+ [2 yfor(i=0;i<=5;i++)
# z( w' `. U7 y7 Y  {for(j=0;j<=i;j++)
: a) n- [( a2 R      printf("%4d",a[i][j]);
# i+ M2 d; g: m9 v9 U   printf("\n");}5 U$ H0 N) D* }$ A, Q1 h8 q
}
* Y+ }5 l5 C$ @% _( K2 v
! X' e4 B, q3 {! B1 i7、/*通过键盘输入3名学生4门课程的成绩,
3 v+ d% ~. R& J+ L  B; x分别求每个学生的平均成绩和每门课程的平均成绩。
. f! }( _7 S9 c6 m要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
, Q- r# X/ C  x& Q* G1 m9 A其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
. A) @# c! i0 o# A#include <stdio.h>
; g( F: i+ T0 n#include <stdlib.h>
! L5 R% @+ f5 F2 q& kmain()0 U0 G  @" ?, }" T$ a, U0 ^0 u
{ float a[4][5],sum1,sum2;
: F' @* L# z0 h: a* E2 ~) Z  w5 aint i,j;
- _$ _" W4 ?: |7 m, p$ ~. Rfor(i=0;i<3;i++)
2 j( |' u9 O& G1 R  for(j=0;j<4;j++)
1 b. ]! R# Z' |1 ^* f4 z    scanf("%f",&a[i][j]);" L2 K. D) t% G$ Z  q1 _* o1 W
for(i=0;i<3;i++)2 v# u# j" o5 s" C. J# q2 L
{ sum1=0;# o5 r$ O% G! o
  for(j=0;j<4;j++)
) M9 F  G, r, F& ^! x( y* ?$ ~6 q    sum1+=a[i][j];: f# B) O$ e& e' I6 _/ `4 z+ U5 F
    a[i][4]=sum1/4;' F  ]/ {- W" R; p: j2 ^9 c
}
! Z# z7 K+ {4 X9 \; L1 Kfor(j=0;j<5;j++)9 X: V& I9 n" S$ B
{  sum2=0;; ~% d+ L  S3 u. X
   for(i=0;i<3;i++)2 n, ?( W  h/ y/ K8 T
     sum2+=a[i][j];
' `' Z9 K8 P  d9 T  J* Y5 ?     a[3][j]=sum2/3;. _: d% J) A; `4 w& Z! a; S% e
}
; X: y' Z3 o, A) t8 {1 \ for(i=0;i<4;i++)! W* e: D9 F* T# f# K' _
{  for(j=0;j<5;j++), I2 L4 u7 L) W. e$ p, P) {
    printf("%6.2f",a[i][j]);  I6 M6 W2 e0 ~: [8 k2 C
    printf("\n");
% h) e9 N3 E) L" @! g/ L, R& B, ^ }
, O. j" ^' N- h: ~9 z. D, D}! Q) C% q! G+ q  o# {

/ `. e7 H% F9 i6 A8、/*完善程序,实现将输入的字符串反序输出,0 w3 Q$ r/ o0 _: N9 l" _- E. X8 v
如输入windows 输出swodniw。*/, ]8 T& [) O2 m& p5 A! g' A
#include <string.h>
0 B" S+ A* z0 |main()8 p% ~; b+ G0 C# ?
{  char  c[200],c1;* A% C8 ^  f# K7 S% ?5 t& }# _  e# B
int i,j,k;
* e# I5 ?' ~& R/ S, Y printf("Enter a string: ");
9 i6 `* t: M2 C; V  H$ B- b; R9 f scanf("%s",c);
7 T" T! H5 V: V8 o5 H k=strlen(c);% Y& h3 U6 j. K* Z1 p3 q1 A
for (i=0,j=k-1;i<k/2;i++,j--)2 ~. ^  l, }1 g4 r" X  F
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }9 Y1 C/ c, v5 l) K$ @
printf("%s\n",c);        
! h0 P, u$ ~) x2 m3 }4 ^" n& s}/ M( s2 x( r* L
指针法:
  e3 ?$ U5 Q1 nvoid invert(char *s)2 I* V2 ~7 k! H0 }. R7 G
{int i,j,k;
! \6 O+ t' o$ O) q4 N$ v7 W; gchar t;1 |  b. C3 L& d- y
k=strlen(s);
. m, g  D! Y( n$ vfor(i=0,j=k-1;i<k/2;i++,j--)
% D+ M4 [7 R6 _7 Q2 E{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
; W8 ~( y% X! e6 @}' T- f" h% ?9 L/ [3 y0 M  f
main()* ~( U( [( g: L
{ FILE *fp;: X; x- X: x! s8 n* E$ \) p( x
char str[200],*p,i,j;2 A. H) v& j$ \3 H) Q
if((fp=fopen("p9_2.out","w"))==NULL) ) l2 T. v/ u' s  @2 Z
      { printf("cannot open the file\n");) \6 C; z( ]/ c# D9 M3 `
        exit(0);                       6 \# W9 S1 z- [4 j+ N4 s
      }
% R7 f% q) p" x- [+ P/ g  p printf("input str:\n");
: B; z8 e7 p! F3 b/ l. ugets(str);6 ?% ]0 s* D, {! B5 a
printf(“\n%s”,str);- A" |( x. `! W( V3 u; @" K( K  W
fprintf(fp,“%s”,str);8 g' r; z/ V+ u( u2 u4 m. ]
invert(str);! b- s9 Q. C4 s( E5 l3 Z
  printf(“\n%s”,str);0 l/ k$ i1 G& `
fprintf(fp,“\n%s”,str);' T; o# n" ^9 E0 h' W0 I  W
fclose(fp);5 O% K+ S/ m# W6 V  y8 T
}
" f: ~# ]+ B# u
: Y  m' e7 ]  {5 }9 R: Y9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
8 G0 L1 x* l! h8 {- d#include <stdio.h>
3 Z4 p" O  K) w: xmain()
6 P( c: {+ r6 L; J6 G% ^{  char  s[80],c;. S3 {) c5 u* ~8 R7 [! Q2 G
int  j,k;
. c! C; b7 f% i6 S printf("\nEnter a string: ");. D2 g5 G% a; Z7 l8 o
gets(s);
( v( V! J  q% ^' T/ ? printf("\nEnter a character: ");9 F/ t0 ?) U8 f& b5 \! u
c=getchar( );* ~+ d0 K# [2 G; v9 T
for(j=k=0;s[j]!= '\0';j++)
& O* u9 Z! X1 {/ c/ v0 _# w8 q if(s[j]!=c)# c$ C4 V7 o! z/ k
    s[k++]=s[j];+ L! D' G7 k& d" I' ~( `
s[k]= '\0';
8 z" q4 v+ w. i% {  |  G2 c printf("\n%s",s);' {: h5 v: R3 w: x# C9 W% Y
}
0 W- g5 J1 u6 T
2 r$ E% m; W3 `7 h# s3 @; Y' U% {" E10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小4 k% ?  U( e" o3 [% w! k; A
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
, ~+ O: W6 r" m7 q5 N. r- Y  B#include<stdio.h>, [- U6 e8 |: o3 B
void sort(int *x,int n)
$ }9 p% f, X% t* X{' a% X) L# V1 R8 v! c) F
int i,j,k,t;
$ r4 K% d" t: g. S( i! d0 `for(i=0;i<n-1;i++): C' [4 O1 v) l# x: V- {
{' r. ]0 d, o8 f) G, n
k=i;! o2 W0 l4 v2 K
for(j=i+1;j<n;j++)/ d6 ?5 M: }. Y' g
if(x[j]>x[k]) k=j;
& T4 a) N0 X' q. J if(k!=i)
0 y& v" ?: ]9 z {4 D. x$ A, Q' R3 h) e
  t=x[i];1 f; p: s: n) c3 C, s* N
  x[i]=x[k];! p' k7 u  z- O- W8 R
  x[k]=t;
2 ]- G. @. i; @2 [2 R }3 J+ G' f3 ^& u: f% A  A
}
4 {/ d1 E" q" b( q. b}- Y5 G2 M; Q# v) j' g5 j
void main()8 e- `% t% k9 r5 I0 \) B
{FILE *fp;2 q& g( s+ D' C+ z+ J
   int *p,i,a[10];. f; Y6 k' l5 S
   fp=fopen("p9_1.out","w");                     
5 ?# J: w; i, n: ^5 X! I5 K  p=a;
; h$ x1 N) z) N9 D: W  wprintf("Input 10 numbers:");
# ~1 v( l* R2 t! h3 Tfor(i=0;i<10;i++)' N& a* E/ ]! F! Z( x+ l
scanf("%d",p++);; \$ i1 e+ M( l% |
p=a;, O  F; z; E5 t" w* A# b6 M2 m
sort(p,10);
3 \1 j$ M7 A5 C, wfor(;p<a+10;p++)
+ N* H' [9 V) {- N" E{  printf("%d ",*p);
) h# X/ S- ]: r8 k      fprintf(fp,"%d ",*p);  }
* r( A) ?0 _  n+ ]( S+ T" U" }      system("pause");
5 C* S, d. g. C4 k, v  fclose(fp);, l) }0 }, s* A5 X0 q/ F
}
+ X+ y6 z, S2 E. a; R  a, f7 }2 j* m
& z# O. l8 X7 P# d1 S9 h3 i11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/) c( N+ i4 s: F. [1 \# v
  main()9 G( j: k1 E" S. k
  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/
8 W. y* N9 Q# \( U# P2 m     int  x , i, j=6;                         /*j为元素个数*/& |& _+ e- d9 E. `
     printf("Enter a number: ");4 ^5 l5 }( E# W/ x4 x$ n
     scanf("%d",&x);
8 M+ l: D* X/ G' @/ x     a[0]=x;. A+ n# x9 [+ b: v) Y3 s
     i=j;                               /*从最后一个单元开始*/3 w) w+ b  T" N; S
     while(a[i]>x)' e* z/ g* I' z) @8 M2 |1 C  U% D' _
     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/
) t4 J1 h% L5 ]# R6 s: R3 _7 p     a[++i]=x;6 t7 o: p) W8 N! ]& p- T- u
     j++;                       /*插入x后元素总个数增加*/# g3 o) h% `# G
     for(i=1;i<=j;i++) printf("%8d",a[i]);2 N+ O: I7 u1 F* o- Z. r/ G
     printf("\n");
" I) u9 ^3 Y* i) E6 m8 a}
( ^4 X6 T8 P. u, i! ]7 \1 \6 b0 k; G! c5 l0 z# w
3 a/ {9 }" g, A2 h" M; _( k) K6 d- ^
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/1 U9 V6 J- |  y& Q' L1 d2 F
#include<stdio.h>
; j! m" s5 R5 _5 n4 y* n$ ?8 T# Q5 |replace(char *s,char c1,char c2)
0 }% P& m% J; N; ^{ while(*s!='\0')
/ v( v& \/ k: Z {  if (*s==c1)
# g0 m4 K/ j+ m. U2 m       *s=c2;
4 d, [* u# h+ _" z' G       s++;6 T1 ~* C! ]4 U
}
9 R+ R$ d( H$ Z+ O5 w9 X* G}
8 Q5 `8 q8 s  z9 M# Fmain()0 g' F! A4 Q. E) Z) U/ o6 E
{ FILE *fp;
8 y; M. h0 u. s) M+ Echar str[100],a,b;
1 @) z* n1 B) z1 @1 s if((fp=fopen("p10_2.out","w"))==NULL)" g$ S6 D2 S- {/ B8 n
    { printf("cannot open the file\n");: {+ x3 M. m) r$ `& s
     exit(0);                     }9 C, u* P) ]; `2 i/ `
printf("Enter a string:\n");, }( @! f$ K+ t2 f$ A( @3 P
  gets(str);* ^4 l3 v! \' x& c/ D* S  P2 z& G! |$ A
  printf("Enter a&&b:\n");
; c) X5 b" O! o: F2 f7 b  scanf("%c,%c",&a,&b);7 f. w2 H) X2 N7 l* A
printf("%s\n",str);
6 }  Q9 `, o7 B9 ^5 U0 pfprintf(fp,"%s\n",str);  k/ g. C! n* I: R% L: ~: _8 X* E
replace(str,a,b);
3 Q9 H3 o) z0 v' m2 ^; u( S8 ?printf("The new string is----%s\n",str);9 c- G" H. {2 \% J! X
fprintf(fp,"The new string is----%s\n",str);
! Q0 }( E& s+ g2 X" J4 W6 m1 n: mfclose(fp);
$ B: b# C. E! F. F& k}
5 \9 y3 c1 t. }) d" ], ~7 S
: D" S7 r* ^, T, X/ T: b13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置+ X* Q: c6 N, s. h) A$ `
,不存在则返回-1。*/) B* p4 d4 h$ {( P9 {+ c8 v
main()0 q# r. C' f& U3 D0 ]  a/ T: ~
{char s1[6]="thisis";char s2[5]="is";
8 f) b% s: p$ w) w4 aprintf("%d\n",search(s1,s2));
+ D3 u! S/ p" }* |% s; Zsystem("pause");
9 N7 W6 }, x6 ~- n3 I1 J* N}
  l8 o9 x1 e: {9 A& }3 }& {int search(char s1[],char s2[])" m2 i$ T( B8 [7 A  M. g8 i* |
{int i=0,j,len=strlen(s2);6 L# _) {4 {5 @- D
while(s1[i]){  K1 j2 ^+ `8 L, ?# A* i' z
for(j=0;j<len;j++)
, {5 j2 A: G$ K+ p4 Dif(s1[i+j]!=s2[j]) break;8 E0 k$ j  d+ t" |8 E6 m
if(j>=len)return i;
: l& O3 ?' _; Z0 I8 Helse i++;
. q4 Q$ Z9 \0 H: j! l& ?, |- h& R" R0 M}
1 l9 i+ k' r8 A- Oreturn -1;
9 n4 g2 _6 Q8 b: n: Y! A}: c- O5 `* k- g

' X" p/ `; s: Z0 L14、/*用指针变量输出结构体数组元素。*/
* Z1 e7 M6 V* }) v% ]struct student: @2 V' t( S$ ~+ g, G+ l* g
{
9 x' o5 l; d2 n; Y: \int num;8 [* D: Z/ T/ N7 H$ }6 K# x
char *name;
1 {. R2 t) g' C5 w- r# W8 ]% h) kchar sex;
$ X" |  j% K, S' Qint age;% \" I* |; O% t3 q9 A* S
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
4 x7 z0 m- v& \$ s; I8 Lmain()
8 e% P' [: @% r0 S* E- D0 `{int i;/ u& ^, I4 U8 `/ ^
struct student *ps;. q- z& ?  m7 k& g( q" D
printf("Num \tName\t\t\tSex\tAge\t\n");  $ U5 S0 {$ }" S) ]- E3 ~  }
/*用指针变量输出结构体数组元素。*/
3 l6 d( O; u9 E/ d+ [4 J: ^for(ps=stu;ps<stu+5;ps++)1 o. A4 v# H, u+ S
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);  v5 R3 ]' M% {* k) ~
/*用数组下标法输出结构体数组元素学号和年龄。*/
( |0 A, p! C6 s# P- x' Tfor(i=0;i<5;i++)
( [6 B1 c1 H! C& V; t# Wprintf("%d\t%d\t\n",stu[i].num,stu[i].age);, v! O3 l% M' l( B: j5 C! F
}9 d( {+ H' K, M. g6 X* P1 s

( i# w% @  B% |15、/*建立一个有三个结点的简单链表:*/" U+ P0 m% G* T; T2 d
#define NULL 0
, v" w+ {3 k' E8 \, Z0 N: jstruct student
$ C; X% h& F, i! b& E! B* F8 L- h3 }{( y$ s2 q; E/ \2 b1 A3 t. M; J
int num;8 j0 B1 i+ P! g, h/ x" ?' B( p
char *name;
( }) ]/ x- B4 iint age ;
4 v3 O7 N( R. F* s6 ?0 b& hstruct student *next;" n" f9 ]2 U+ ^( d2 X3 \
};* f; R  w3 e4 {3 T8 g% z5 n7 v
void main()8 \( i0 _% c& }* x
{
% b: h( ~2 y; x- I% kstruct student a,b,c,*head,*p;/ R) h- E6 o- W
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */2 C( q: ?7 i$ C8 ~2 J7 m
b.num=1002; b.name="liuxing"; b.age=19;: ~# B/ j  V2 y. B- N7 }
c.num=1003; c.name="huangke"; c.age=18;  x2 ~6 r! [6 _2 e" @8 ~
head=&a;                           /*  建立链表,a为头结点  */& l( K* i$ W! h# }
a.next=&b;- s# ?9 |  _+ L" o: k5 _
b.next=&c;
+ k# b& I3 U& A' e3 X* fc.next=NULL;3 c8 H# ~1 W. D; @; ~/ M0 e, B
p=head;                            /*  输出链表  */
0 w) l, E. w" _* ~* w6 Cdo{5 [4 q5 e4 `- ^* H. t
printf("%5d,%s,%3d\n",p->num,p->name,p->age);4 _" n. I3 W2 @& T
p=p->next;
5 [, n" F% x1 Q# L  @7 h6 @/ M}while(p!=NULL);
- u) y6 Y2 [, o) l& p: }) F}' Y1 X% k/ n& @
: a  S6 h% a# e1 [. ~& I3 x
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/: b& t% v+ m$ q+ @1 A  C
#include <stdio.h>  c* K9 C  `; p4 a
#include <string.h>$ O3 X4 V( x3 U- N
#include<string.h>9 Z) M# l4 d$ t/ n2 X) L& P
main()
/ o9 m& F: G6 i/ p) Z7 _# D{ char s[100];5 P  @. s- J$ k& s( _
int i,j,n;
' q7 [7 [) [- jprintf("输入字符串:\n");7 \* z' K4 O% V; Y
gets(s);" P/ w% w, ^6 l( G, I9 n+ ~9 i8 r* I
n=strlen(s);
7 A* j$ S+ T0 ]- M- C3 Vfor(i=0,j=n-1;i<j;i++,j--): k0 m* T. K  P8 A1 i
  if(s[i]!=s[j])   break;  v! F& i/ W( s  x& q
if(i>=j) printf("是回文串\n");; n" H) M9 g, b. R( j. Z, G$ w+ o8 T
else     printf("不是回文串\n");5 M$ ]" P. m* q- n. g; E- Z
}: X( p8 G2 Y) a* E: V/ h

+ |7 V' c7 s4 }$ U: z7 ^17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
- D" g8 L+ ?1 h+ i! W- d' v#include<stdio.h>
  U# D: F, e* B  ~void fun(int a[],int n)* O6 B& H& b) D8 ~; C9 M3 j
{int i,j,t;
  f6 b" g0 v6 b9 efor(i=0;i<=n-1;i++)8 \: J6 ]( }, ^' [
for(j=0;j<i;j++)  s' V; y) J1 X( _
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}- M) M' j6 z0 }; B2 r
}
# l# o! N& J! h" \main()) B7 `8 A  C8 V2 F; n% x5 ^
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;- }. _* x: J; J# g; a5 ~( Z$ ^" t
FILE *f;' ^6 W% S& Q* q! M( [/ X; J
if((f=fopen("myf2.out","w"))==NULL)
0 v3 ?5 p; ]9 \ printf("open file myf2.out failed!\n");
: k1 P% m" h1 H6 \/ ~fun(a,10);
; H0 o' M' \. y$ y9 a# B$ C5 n  _: Ufor(i=0;i<10;i++)
& q# s4 s, t+ o7 a2 S* o {printf("%4d",a[i]);
, u  c3 q0 H# E, O& b; b5 C  fprintf(f,"%4d",a[i]);
  J7 c6 n2 u: z }
: j; ^, h" Y; C8 G8 Hfclose(f);
' L4 M2 X' q! P7 F3 {* H+ e}
# I2 e# o0 x# Z! E3 [8 d
5 l. {" w) r& u. I! r5 d# R18、编写函数countpi,利用公式
/ ^$ G# {% R. _4 `: |8 z: J" ?& S     
5 X& o$ Q& e$ i: I/ a+ y 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
* R- e& i, P! T; i" v( ]#include<stdio.h>
$ U4 K- ^3 ?4 ~' P! u% x4 hdouble countpi(double eps)               /*eps为允许误差*/; w, Z! Y3 X( H7 I  E7 f
{6 ]' e5 P5 Q3 B- m) a3 S6 D. z0 v
  int m=1;
% }* l9 x6 a6 H* K   double temp=1.0,s=0;$ H  T) B0 ^  I8 A: A/ y- P
   while(temp>=eps)( G( \+ ^4 }6 H1 H% X' @% b
   {  s+=temp;
2 p+ X7 g9 m: h      temp=temp*m/(2*m+1);# b$ X. Z0 _; ]
      m++;
$ K1 l( l2 k! X1 \5 }   }! ^6 u7 t& P5 o; M
   return(2*s);7 i! x7 E) G5 H% y
}( |! M% d; V3 r. L
main()& P# G5 K) {+ z5 M$ F) {9 l
{FILE *fp;1 R0 Q% b4 x+ _2 ^/ z
   double eps=1e-5,pi;
, P) U+ U& \) e) ~$ c6 J' H   if((fp=fopen("p7_3.out","w"))==NULL)
7 Y$ t1 \1 Y3 {1 u5 p { printf("cannot open the file\n");" i9 G; K# R; L; ^% i7 I9 @! o
   exit(0);                      , i) R" u- V! _& s  }# F  C
}
5 @2 _3 c* z: d) F" k: I) G pi= countpi(eps);& d* S7 D% S# ]& r7 K
printf("pi=%lf\n",pi);+ H2 t0 x) k& q) n  x  d' D$ b! V
fprintf(fp,"pi=%lf\n",pi);: O6 U* f% ?, {/ Q% j
fclose(fp);
' Y' M: R) O/ k$ N* a8 p" 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 @$ A2 B! c8 s

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-11-3 22:18 , Processed in 0.102199 second(s), 31 queries , Gzip On.

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

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

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