找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
8 z* R/ p( h& i* U1 x$ U
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/4 e. |: O; o+ W; }" n) n0 z* n
#include "stdio.h"+ @6 z! b; s( o) `
main()4 `% k5 D& b+ q7 i/ Z% U1 B
{int i,j,result;
9 B2 |* s1 M+ {. h0 xfor (i=1;i<10;i++)
" p% c8 m% ?2 J3 ?7 P: u1 g { for(j=1;j<10;j++)7 Y" F4 b9 a1 p! r. E3 ]' x
     {' ~, }( B$ \. |' a% W' W
        result=i*j;- t0 z" r$ P8 @4 S
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
5 \* P" B$ |, e9 x- X7 a- b     }( y0 c4 [( {$ ~
    printf("\n");/*每一行后换行*/" y* U% b$ |& F9 K! g
}2 Y9 y# U1 W  u
}
8 c5 w" B3 e- b: V* n* J1 T0 X/ C8 n7 g$ s- u+ l- j
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 V0 N" A3 Q! Q
兔子的规律为数列1,1,2,3,5,8,13,21....*/
% Y6 H8 o% X7 Wmain()
1 ^! N: Q; e3 ~{
" T+ c! A: P! {7 U' M3 |long f1,f2;6 Z$ V$ {1 d$ V7 ?) `
int i;% I9 ]* ~& A; d
f1=f2=1;9 M1 P; s! y: W! [4 Q1 j3 Y9 }; k; \
for(i=1;i<=20;i++)8 ?: M2 [/ P2 v. `8 }
{ printf("%12ld %12ld",f1,f2);
3 ~% J+ V5 h; d/ a1 O   if(i%2==0) printf("\n");/*控制输出,每行四个*/! G. ^5 n3 X# L/ J9 ]; o
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/7 ^1 B+ ^( y, |+ V  E; a. u
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/
/ P1 _6 L: b) ?  S. N7 S7 O }
9 Y6 J" @( T( o3 P+ \0 G- a7 o  q$ x}
9 J( v! {( ~) t, ?
: `6 g% H( J, y+ b- W  i3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。8 b7 W+ C: n3 }9 r$ ?0 c: |
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
$ `" j" N! Y- }. g     则表明此数不是素数,反之是素数。*/
4 n- r9 [" H! }) d0 K9 m7 x#include "math.h"
* t  `; |4 {7 a4 K; @( j9 Amain()
& L) Y* E! Y; a7 \, O{% Y$ o; x& B& q. E% u* I2 E
int m,i,k,h=0,leap=1;
- k$ e; a% ]" |printf("\n");. J& I) l. s" `- X
for(m=101;m<=200;m++)
, L# v. ?/ [6 s: m' E" ^ { k=sqrt(m+1);
& {% H0 L/ Y( ?" y7 B( C   for(i=2;i<=k;i++)2 m  E5 |% A0 o5 ]2 S( f( t0 @
     if(m%i==0)2 C3 v# p" Z8 n" g3 w6 n6 Q
        {leap=0;break;}
+ m0 ]/ M2 g- S     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/& b2 H+ ^8 E6 i! \5 T# O
        {printf("%-4d",m);h++;  t) }! z5 \! X6 P% n6 e& m0 a
         if(h%10==0)8 K0 L  _: t- O% Y" \
             printf("\n");
) U% J1 P% H8 j/ |1 F/ r+ {: H, A5 X# _        }
3 B+ G% b5 c( s* x  t   leap=1;
8 b5 Z/ }4 T9 Q  }7 W }9 l) T/ v7 d4 `6 }3 L: ?
printf("\nThe total is %d",h);
( l8 m" U; n- B+ O}) c/ ]! ^" N: b' X+ l% [7 a' l) Q1 k

1 S1 K7 B0 l4 J9 E& Q+ e2 U( p4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
. j+ ~- {+ {. t' j, D   找出1000以内的所有完数。*/; W9 T/ D. e' x6 O: E
main()
- l  I3 i. i  N* z8 A* L{
4 R* z% F  t( p  X6 }static int k[10];
0 W& @. v' o4 ^9 r9 @int i,j,n,s;% _7 e  c' b5 _* ]! W  D
for(j=2;j<1000;j++)
4 G* `3 y5 {. v! ]" u  {; a. L! S4 N7 p+ [- s! m2 j* d
   n=-1;6 \4 {! y& B- ?% u/ K' t
   s=j;
7 r; u" n! O. m9 \; c   for(i=1;i<j;i++)
. u6 S7 d$ ?8 X/ Q- k     {if((j%i)==0)
7 v  }) L- @& V        {  n++;
6 y) s6 E% y5 _8 t, E6 t9 i4 v0 @           s=s-i;
+ x- l2 G; V5 |- x" [9 E           k[n]=i;
$ d- T# P7 l/ u& f% ^        }
, |, s( n2 j4 _) ~9 Z: _, f     }$ u8 m! O- @( L& N
if(s==0)
# l: ]; u6 p& W* Z" n  n {printf("%d is a wanshu:  ",j);
; ?) P6 |3 w/ i  for(i=0;i<n;i++)
+ C# s% @' i' r8 t  n" m$ g1 F3 A      printf("%d,",k[i]);$ i3 B8 p2 z, [6 D
  printf("%d\n",k[n]);8 B) Z' T4 L7 Q, i
}2 e, t, x/ c7 j1 m
}
' T% [+ |) ^; y8 {1 e$ k}
! V8 e8 c2 c4 w) y* G- h. l. R/ a' O; z$ k! n9 T: ~4 N4 X
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,, m9 X; J5 ^$ W8 g1 @0 K3 C
请在空白处完善程序。*/% D7 z; Y( p( c
main()
+ z  V( n% f! Y2 I' t/ w* Z{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/3 e+ o# x9 P& P
printf("input 16 numbers: ");
# e- Z. i2 z( M$ Q" Q/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
2 |& h) b) Q2 \! L) o" u2 q% S for(i=0;i<4;i++)
+ d0 p# s/ K) c6 l     for(j=0;j<4;j++)
- Z, d, E7 I5 N, v& H     {  scanf("%d",&a[i][j]);6 E% J. K! d3 M0 V
        b[3-j][i]=a[i][j];: d3 f. G2 ^4 e/ N8 t& R. b
      }
; J8 O, l! e( T0 ]/ b0 }& S" c& c printf("array b:\n");
* U3 j$ g5 i  R for(i=0;i<4;i++)' m! m+ U0 a& D$ M+ N
    {  for(j=0;j<4;j++), a: ]6 R4 q8 F# E! N
       printf("%6d",b[i][j]);  `1 G! M3 V" \1 R/ [
       printf("\n");. z9 o& C. E& n3 J; M+ k) P2 L
     }/ }4 W6 C9 d, h$ t8 a5 B6 u5 t+ E
}
$ h3 `9 Q! b! r$ O# X; f( z# o* W7 X% l9 G& T$ ^+ H' J7 h
6、/*编程打印直角杨辉三角形*/$ m+ D0 {4 u! F& e3 {$ ^
main(). f; Q. k& I) m
{int i,j,a[6][6];
% `8 {! d' m4 _- f' Kfor(i=0;i<=5;i++)) ^0 N0 S+ e9 `: d3 }4 h
{a[i][i]=1;a[i][0]=1;}
4 T) {9 t1 U' e/ A& cfor(i=2;i<=5;i++)3 p: x# `2 `9 N1 K+ _0 R3 N
  for(j=1;j<=i-1;j++)
& u4 ^" }2 ^; m# z% Q   a[i][j]=a[i-1][j]+a[i-1][j-1];+ G3 X- n) |* M, e8 S7 g7 `
for(i=0;i<=5;i++)* Q7 w1 R' e" n. c
  {for(j=0;j<=i;j++)
; l! B1 N3 U% l/ Q      printf("%4d",a[i][j]);: S/ f& F1 D/ U: t9 C) |( {$ k: d
   printf("\n");}
/ Q; Q. I4 n6 }5 J}
. Q6 r- i, f; V$ P9 U/ l/ ]& |& e8 S4 w) W* G3 h( J2 C
7、/*通过键盘输入3名学生4门课程的成绩,  |* v% j) o: ^- f# Y
分别求每个学生的平均成绩和每门课程的平均成绩。
' p3 f; _2 g$ t2 B, X  X要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车! Z( o3 R' \7 `: t
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
  J% a# |4 A$ D9 N#include <stdio.h>4 X. `% q" j. J# v
#include <stdlib.h>
6 `0 _8 x+ K" A' _6 ymain()4 o2 t2 F- N* B) I. F
{ float a[4][5],sum1,sum2;
1 a( j: }7 a3 N2 h) O+ J$ Z  }int i,j;
% O! v2 f$ G+ |7 qfor(i=0;i<3;i++)
0 `) S! l! j" H4 _) }3 }: C  for(j=0;j<4;j++)/ A/ |8 j( y0 O5 _: d; ^
    scanf("%f",&a[i][j]);9 ^# |* T6 _, W8 c0 M% V
for(i=0;i<3;i++)
" H+ I! X+ @9 \9 R4 l{ sum1=0;1 _+ ^: b) x: p& r) \/ p
  for(j=0;j<4;j++)" t( B% o; S! ^- ?/ x
    sum1+=a[i][j];
5 F4 @  V. K7 J    a[i][4]=sum1/4;0 p- ]) U; R8 G6 |& X
}
. a6 ], ^) |( T0 afor(j=0;j<5;j++)
0 _; h6 e7 Z4 h9 |{  sum2=0;& d( U/ h9 Q# }
   for(i=0;i<3;i++); ^! t' M2 h* r
     sum2+=a[i][j];
* N8 L; t2 _) l5 l     a[3][j]=sum2/3;
+ |3 m2 i& ?! |' @3 v, x }' A7 i: E8 O9 q; w
for(i=0;i<4;i++)
( Z7 O* [9 a7 y  c {  for(j=0;j<5;j++)7 N+ K1 U4 Q& p$ B! x# T7 h: H1 P
    printf("%6.2f",a[i][j]);
7 X1 q0 q1 b+ g) t, |    printf("\n");1 V, d: q: [. Z6 i
}
) n" ^4 |/ U6 E. a}
! B" D" C- P8 T+ K
- c( I( V& a7 q$ L$ L4 \8、/*完善程序,实现将输入的字符串反序输出,
, c0 a& }% J# u% K0 [2 s7 S如输入windows 输出swodniw。*/
; O" J: r0 j1 r& R1 u) w! r( Z8 r#include <string.h>9 C7 Q1 J2 ^1 D5 d0 B
main()
2 \, q4 q" ?; _7 J3 V+ t{  char  c[200],c1;5 k0 S$ p" K3 v$ G2 o/ S
int i,j,k;
3 U. I- `% v& m' k" P6 B+ w printf("Enter a string: ");
" l/ `* o- g  T5 M- e. u$ j/ D scanf("%s",c);
) s0 }4 }5 E. f k=strlen(c);2 P; t* P: f/ r1 n; V( Q5 L
for (i=0,j=k-1;i<k/2;i++,j--)+ T* j' j" d# F  D8 _! Z# V* q: I
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
, m/ f7 i, u( z printf("%s\n",c);        
+ t  B1 r4 k- Y% m* G}2 C- Q5 u  V( |/ U0 P7 [, m
指针法:% r% n- x. U8 h2 z  ^: V
void invert(char *s)# Y* g* b# z6 B' |
{int i,j,k;
4 b+ q: C; _+ H2 M6 ~/ gchar t;
3 f7 O/ S  Y/ o) zk=strlen(s);  {  @! S: i3 \
for(i=0,j=k-1;i<k/2;i++,j--)% B1 M) d! [; Y! D) l( h( ~) A
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }0 u# D& s6 y$ ~
}
; |% z7 R+ A6 `3 Q3 P3 d7 G' H) Fmain(); W8 o0 {/ w9 I8 B9 q9 R! I& ]5 W! [% `
{ FILE *fp;0 ^9 j9 @* R, O4 p, ^
char str[200],*p,i,j;
3 M2 [5 U* I" b) X if((fp=fopen("p9_2.out","w"))==NULL)
" [/ A2 O7 S+ q* v" |* n# b& S      { printf("cannot open the file\n");
$ I: l7 B( n4 B0 K% g9 P* O        exit(0);                       / d- J, i( E0 k( t. d4 E( @, B3 ]
      }0 Q* s( w" E$ c/ ~7 [  A
printf("input str:\n");
: R: q4 q* X0 t4 D1 p9 kgets(str);; g: i: _0 D. |! K( l6 R- u$ t
printf(“\n%s”,str);
4 g7 S% A6 q) Cfprintf(fp,“%s”,str);* `% `! t; a; R
invert(str);& D9 T- v; p5 s5 d  W6 k* N
  printf(“\n%s”,str);% a  l/ f; Z$ i  c2 g1 m3 X
fprintf(fp,“\n%s”,str);
' h* }' r1 U8 a, {& Dfclose(fp);$ U8 h3 r' x4 v5 E% e
}
2 e7 ]' n' D1 p
  S/ K6 a% m: S8 g& K& E9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
6 h" Y' o1 h( i$ I. ~7 K8 {2 c#include <stdio.h>
  L( o" h; b' l, F7 z: ?5 umain()' T  f/ S2 @& @& r/ I7 ^
{  char  s[80],c;' i# b- L: q, g5 B% x# n
int  j,k;+ z4 P* X% V( g5 T
printf("\nEnter a string: ");
5 G0 U) T, W- @8 O2 g) `$ c, w gets(s);  b" i; Y2 V0 v9 ]' Z2 Z4 m) j
printf("\nEnter a character: ");
6 R0 L/ t+ ~; K c=getchar( );
! Q* _; L7 B; u4 F; z% P$ h for(j=k=0;s[j]!= '\0';j++)& h: ?# I5 L' R1 v
if(s[j]!=c)* d2 R# }: l. H, A
    s[k++]=s[j];' b6 K5 K3 u: h4 D$ A6 x
s[k]= '\0';, Z" Y  x* S+ |- j5 ?  [
printf("\n%s",s);
; Y+ q; p2 x0 V3 @}
% q3 J5 k$ f8 U4 @0 X# Y  l# C$ \% r. a8 [
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小; Y& M& H6 ?) Z9 R3 [" C2 G
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/: P" Y: X' s$ `/ k8 h1 W
#include<stdio.h>, ]0 e8 B, F, O+ }( F0 e
void sort(int *x,int n)* `# I9 Y( \; a3 z1 B% K
{
/ g( Z- Y; y' Y* _9 a) E- @int i,j,k,t;
$ H, S& t+ c. I" Rfor(i=0;i<n-1;i++)
$ \4 w" H6 {% ]- [* x{
# b2 L8 W' @8 kk=i;
9 ]2 z/ I; ~) V& e1 i8 k- ?for(j=i+1;j<n;j++)
! f/ V2 a/ Q: W# `  M( t if(x[j]>x[k]) k=j;
' Z- b( w& y+ p if(k!=i)) ?4 o+ ]  {4 d3 F6 ?
{
7 b# F* `* }  M4 T6 s' R" J  t=x[i];
! d( I4 a  }6 V3 h" u- F. H  x[i]=x[k];
, Y+ b% ~" h2 x/ V3 {  x[k]=t;8 \6 X" {  l- x  A0 X
}
, H6 x- R' b, `4 x! v& P' F9 G. \9 E3 V}
' U6 H5 P* g9 f* s" D/ V; ?, r' c( g}3 D  _$ O+ \+ u* [' a' I& t
void main()8 d% r9 F% w4 _1 j& C! {" z
{FILE *fp;3 c+ |, P( V  Q2 \" b
   int *p,i,a[10];
& A, Q# {6 }- ]$ x' O* f1 R9 V   fp=fopen("p9_1.out","w");                      & X  J7 ^% [: y8 U( h
  p=a;1 A- D( H3 _' j* s$ g) v  c: j
printf("Input 10 numbers:");/ X3 Z$ @& c( @, O* f
for(i=0;i<10;i++)
$ K+ E7 G+ A  `scanf("%d",p++);
# ^% I# m  Y6 E& h5 \( B4 r9 G0 N. ?1 Ep=a;; C+ P2 `# A; w/ h7 X
sort(p,10);
& A7 I8 e7 W% v! L' g% qfor(;p<a+10;p++)" ^  Y$ q  T1 [1 U' \9 q% K5 h
{  printf("%d ",*p);  R( n7 t7 }' v* d5 K: y
      fprintf(fp,"%d ",*p);  }
& e, t1 k6 `6 u      system("pause");" R- C, _/ L( m! g" t. z
  fclose(fp);( k, `4 p5 a( }, D9 _/ |
}) D1 w* y4 w8 \. q: V7 T+ j" I

& r; [# a) q5 n& m1 ]4 K) i11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/9 a! O9 }, _# |; y1 S
  main()
4 x& d' i- |8 x  P/ ?  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/
% J- c) n4 j; x3 U1 Z& L     int  x , i, j=6;                         /*j为元素个数*/9 }; P' L5 _+ W: A: j' a* }
     printf("Enter a number: ");' V+ A2 |0 F* C& N% y' w
     scanf("%d",&x);) \7 X, N8 p" R" k; L
     a[0]=x;
$ r! H  z3 u  q2 a2 ]     i=j;                               /*从最后一个单元开始*/
" `# E" V; j1 U8 I     while(a[i]>x)4 t4 C/ v' ]& C5 |( E
     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/
, C3 G8 m/ M. e  @, \$ n     a[++i]=x;- h8 h* b+ L! D5 V6 l
     j++;                       /*插入x后元素总个数增加*/: r: m1 j6 y/ p" J' I
     for(i=1;i<=j;i++) printf("%8d",a[i]);
' U; n  M1 b7 r9 S" a  ]! Q! ^     printf("\n");
' _  [+ o0 q, [0 {2 C2 S. Q( M}' W) [3 o% V; z/ q8 o
, a: ^' x# V9 }% Z$ l" ^. |
% C/ u2 W, R2 c4 D$ k
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
" j2 Q! H, W: D; ?& U( p#include<stdio.h>
1 c. W  R; d6 yreplace(char *s,char c1,char c2)
2 r1 [0 E, V' J8 x, T{ while(*s!='\0')! {; ~7 {* T; m4 N9 {) C: M+ O- U
{  if (*s==c1)2 b) t. N4 N: X1 M
       *s=c2;
1 j, b' W( d/ T8 x( T; r       s++;: W# F+ n1 }0 G/ S
}
$ W* y3 h9 L2 {. c2 [9 x}
+ N( }5 ~. A' A7 M% ~2 Nmain()0 R: E! {# _; J. J8 `  m& ]
{ FILE *fp;
8 W5 {0 R- m, u+ [8 N1 Xchar str[100],a,b;
# A& i# J& {) }& k) t8 O: k  H if((fp=fopen("p10_2.out","w"))==NULL)* h/ d  @4 Q) [# d* k
    { printf("cannot open the file\n");
7 v3 S/ B( t2 a9 M  B6 `( n     exit(0);                     }8 @5 u! F, Y# Z9 O! @: s
printf("Enter a string:\n");" e9 T) A2 X4 j
  gets(str);
- N2 l; N) g8 }5 P0 O# a0 Q  printf("Enter a&&b:\n");
( ?" S) o1 ^6 Q8 i, c1 \6 B  scanf("%c,%c",&a,&b);
$ [4 a/ B: s7 }/ n6 A2 bprintf("%s\n",str);
# t' C( |1 X# a& ], `( j& j! afprintf(fp,"%s\n",str);3 m* [. a" W/ O. m; ?) @+ u& }, ?
replace(str,a,b);
( a1 m6 |/ T. r' kprintf("The new string is----%s\n",str);
- e6 Z4 c7 v4 v, ?$ V/ C. f' \fprintf(fp,"The new string is----%s\n",str);
7 p8 `# s0 F# Kfclose(fp);$ G5 G4 z( K7 ^% V% u
}
, u9 l3 `# q4 Q5 @  Y& ]  R$ n/ d  [. F  [  B
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
# J7 ?2 v! d/ V- Q# a% {$ u8 O,不存在则返回-1。*/
# c: M& q6 [' i+ D; lmain()
) U7 M' W+ A# S; @4 z! Y; i2 _# X{char s1[6]="thisis";char s2[5]="is";
% J0 t. d- O! H& Rprintf("%d\n",search(s1,s2));
8 s0 b/ u3 ]1 G+ T2 Fsystem("pause");/ r* _9 G5 A" F2 e8 J5 q
}
) H5 a* @$ |1 v0 z1 ?int search(char s1[],char s2[])' k3 n0 D  }* A/ T6 f
{int i=0,j,len=strlen(s2);
2 T3 S% u: p: Pwhile(s1[i]){
' x+ D; Z8 @# E9 j! b" S7 i. l9 vfor(j=0;j<len;j++)) G, @, e5 I( x( d6 e4 ^
if(s1[i+j]!=s2[j]) break;4 H7 v* y, h8 V: C
if(j>=len)return i;: T( S9 P: V+ M! m. f
else i++;
% d4 T# W  P" e4 i, z$ u}. y; ~0 U# N" q2 m* y
return -1;
* f. L. R# K6 F/ O}: o, C4 l# o5 C, y8 V5 l9 i+ q! r$ K
' U9 t( U2 l/ Y  r! `
14、/*用指针变量输出结构体数组元素。*/
3 u8 ]3 `' m; Sstruct student' U; K6 S0 a9 C/ B* \% g- a$ B& i2 w
{5 }; q: G, M( M, S
int num;/ b# s# m& T4 `
char *name;
4 v; q( S+ k& T; B' d5 K1 Ochar sex;
8 q9 O- T/ {3 Y# X' o9 V* ^int age;
2 I" G0 _5 E: x% s8 }}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};/ r4 }8 N/ z2 p3 r% b- j
main()& I% T. l# S2 ^$ i5 }& D
{int i;
( T0 W7 h$ \- x; C" l/ j1 y  G3 @struct student *ps;: J- T0 @1 ~) T
printf("Num \tName\t\t\tSex\tAge\t\n");  ) b! C, O1 {' L  H
/*用指针变量输出结构体数组元素。*/
( n7 Q' x; `' Y+ E$ A5 n+ ~! Hfor(ps=stu;ps<stu+5;ps++)6 x! s" _' P, M9 c6 M: t2 \
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
, z& J, C3 l$ w& ?/*用数组下标法输出结构体数组元素学号和年龄。*/( g. y  F' Y7 _) g. r
for(i=0;i<5;i++)
$ Z# D0 X. V- l) T5 J$ Hprintf("%d\t%d\t\n",stu[i].num,stu[i].age);
; t0 M4 i& Y% q+ o+ d" ]7 T4 D}" g3 P6 H& l  ]) F# ]( E1 n
& \  j0 H  n$ T* f' U" l
15、/*建立一个有三个结点的简单链表:*/+ r- H" t8 _: N6 t% Z3 m. ^) g( e
#define NULL 09 c9 U8 |0 ~; Y
struct student6 K7 x3 u, y2 g) ?- o
{# d- [, A! E* }; ?, I# x" c6 |
int num;
* j1 v- B2 a# @" Wchar *name;
9 d% z4 c4 m3 O3 tint age ;9 Y! B" ?% Z- b
struct student *next;4 f9 _6 o' f! G5 r
};% W2 G+ y* r' L) H8 D5 O9 h
void main()( h  y. X  y0 _2 l
{6 C% A4 J# ~. f
struct student a,b,c,*head,*p;
, U; O( T! S" \a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */
( N* @7 c( l0 |! z, sb.num=1002; b.name="liuxing"; b.age=19;
. M9 A, O8 ]5 W' ~c.num=1003; c.name="huangke"; c.age=18;
5 b  @8 b0 T: ?# M7 l! b9 a( Lhead=&a;                           /*  建立链表,a为头结点  */
! A  }: d$ j. ]* A. Pa.next=&b;) r3 _4 `; T8 w* n: d
b.next=&c;2 \* z9 v6 M* B' l9 {
c.next=NULL;) y1 b, J, N) r! N# q* I+ m, ~  V
p=head;                            /*  输出链表  */2 ^: i9 o) a! D5 g+ N( T1 t2 @6 @0 Z
do{* v8 E+ P1 h2 G5 v! }1 d
printf("%5d,%s,%3d\n",p->num,p->name,p->age);
  J+ e" X# t: I# Bp=p->next;
$ j% s& d/ ?) P7 H5 ~}while(p!=NULL);: r$ p: t8 G& v) k8 ~
}
  H) o6 H5 B3 {6 i  k3 o$ l& D* Q
3 p- f( S2 q8 Y$ V; j: [6 b+ R' o/ O16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
5 D1 T) X' Y2 R9 Q( p1 k; @#include <stdio.h>- l3 a  L3 N4 Q& P
#include <string.h>
$ N5 U4 ^( u$ k8 M. Q#include<string.h>" t. Z( M$ S* w
main()( O- ~8 V( @6 a$ P7 _; B
{ char s[100];  N7 e" K: k0 W; n0 r1 y
int i,j,n;
' }- T2 @& j. i3 j" aprintf("输入字符串:\n");
4 n/ S4 {* K1 s2 a5 _( Sgets(s);2 f1 N' q( r+ P
n=strlen(s);9 p/ f7 f9 s5 D1 n& p
for(i=0,j=n-1;i<j;i++,j--)
* m8 I( B' t7 u" @  if(s[i]!=s[j])   break;
% W' v8 z5 H! `; s+ e+ ^: H3 Z; bif(i>=j) printf("是回文串\n");, k. x3 R# R  o  N
else     printf("不是回文串\n");  k8 F! ?: `7 O9 Y$ ?/ m
}
; F( x. T4 b) p/ B1 E, B0 h
, ^: d- e! l; S1 O0 y$ K2 a17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
6 r' s6 U) S9 g: |3 D; G#include<stdio.h>
3 h% n2 @& i( N. }' vvoid fun(int a[],int n)
6 x+ w! K6 A6 P{int i,j,t;
8 o, A2 D* w* X# ]for(i=0;i<=n-1;i++)
( i% X& I+ E5 Z( f. ?for(j=0;j<i;j++)3 Z) J: {5 ]+ v; O( @( V( H
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
) B2 [7 ?( @7 x}. i/ K+ T  ]: J5 ?" f0 f0 ^. Z
main()( b/ D1 H8 D0 V3 G) i3 l
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
& ]# U, [- f4 z1 Z+ Y, I/ EFILE *f;! n) D4 P5 t* Y2 `
if((f=fopen("myf2.out","w"))==NULL)
2 ~2 k! u+ E6 E+ O& m) \5 j printf("open file myf2.out failed!\n");
0 F  U$ A& s( F; A$ dfun(a,10);
5 A6 m# f4 k' M1 i6 n: k, nfor(i=0;i<10;i++)
' I$ V4 D% ^) p2 m" \) n$ Z {printf("%4d",a[i]);
/ X9 j6 A  u3 ~  fprintf(f,"%4d",a[i]);
1 |$ W' ?5 c& }- b+ _7 U }4 P, l: x& T, D4 b8 {
fclose(f);
# H- s7 `) O  k. \+ C+ K}
+ b/ e4 {. h& m4 x' M1 S+ _
% r+ @; r6 h3 t9 i' }18、编写函数countpi,利用公式
3 c" l- L9 t0 N     / d5 F0 r9 \/ A7 x( @5 f% L
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。. P9 |4 h5 ]5 T% b: t! S
#include<stdio.h>/ L: E1 Y  k" E5 B' S6 n+ ~' ^8 w
double countpi(double eps)               /*eps为允许误差*/
6 C/ j; F9 C. X6 j: i{; F/ q/ t4 H0 {9 H' j& n" n2 I
  int m=1;
, [% p; M0 P# N# X+ j   double temp=1.0,s=0;
+ E0 j0 H9 N( l9 t$ F   while(temp>=eps)8 S  l4 }, o7 I5 z9 Q
   {  s+=temp;/ p, D* {' C2 N& }
      temp=temp*m/(2*m+1);
+ e/ }8 G+ U! ?' G8 l      m++;
  d/ E+ ^0 A: l' i. U   }
' t/ o: ?' e8 e5 {; b2 R   return(2*s);- s( m  X# [- v+ `' C+ s
}5 _; P, g& A% L! [' B2 W6 @
main()
7 T+ C* H3 K: i( |  v% D0 B{FILE *fp;
- p. c2 B$ Y# i0 c; Q6 i   double eps=1e-5,pi;+ x, j" D$ A* `8 p
   if((fp=fopen("p7_3.out","w"))==NULL)
6 M. m  g3 c/ W/ t* q! D5 G { printf("cannot open the file\n");
4 O6 W$ R) o3 A   exit(0);                      ' I" m2 q% V( A: F9 k8 h
}1 g5 n, b: v" G6 [) N* W
pi= countpi(eps);
4 D. }& W! Y# K( i& q3 K) @ printf("pi=%lf\n",pi);# B+ h! `- A. X2 \9 i& D5 m0 a4 W
fprintf(fp,"pi=%lf\n",pi);3 H% T$ x# B# L" x
fclose(fp);
( Q4 _& a0 H7 L& t! X}
分享到:  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 | 只看该作者
感谢分享' k! s- H  M; y4 m6 ^: k& T  Z, P

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 18:47 , Processed in 0.066585 second(s), 31 queries , Gzip On.

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

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

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