找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x

2 k$ b! a" n  K$ C; w" ~3 h3 p1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/+ U2 }8 ]7 T4 l
#include "stdio.h"
5 O8 ?! H: }, H0 [5 N1 D/ z3 H2 {main()
' u8 J% m3 N5 Z$ J* f{int i,j,result;& F) G$ o: t5 }& G7 L" T9 H
for (i=1;i<10;i++); |1 Y5 x" u7 C6 D0 C; U/ g: \
{ for(j=1;j<10;j++)
1 }9 @! k# S, D+ |2 v     {" o) }0 \% B2 V/ Y6 \  K) Z9 T
        result=i*j;1 a; d4 \; k- ^: b3 t5 l. y1 O9 O3 t
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/) ?3 m% C, d  X" F% @' c$ M
     }' _" ?! U. m: V  `
    printf("\n");/*每一行后换行*// V1 W9 ^* e) Y
}
" W; X" J& w: {. f$ J}/ B: t) {5 `  n* ~

9 W5 {- x6 N* j8 @2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 H; q6 u9 ]/ [3 U" _8 p# a兔子的规律为数列1,1,2,3,5,8,13,21....*/8 W& |8 ~3 _4 f4 a* F
main()7 b* S8 J3 k# h1 R
{0 Q4 X( Q! \9 [, O; O$ O: Z
long f1,f2;- y( W# _6 a8 d& y3 J
int i;
3 ]2 t3 D2 b' C# g8 b( D# sf1=f2=1;
) S* Z7 f: S9 J/ T: Jfor(i=1;i<=20;i++)9 b; J3 w* U0 r# j
{ printf("%12ld %12ld",f1,f2);
: M% ^# T9 V  [6 I4 D- ]  Q0 a   if(i%2==0) printf("\n");/*控制输出,每行四个*/' h4 q+ w8 g, n1 z8 o: W
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/
- j; ~- i5 W% K& S0 V$ h   f2=f1+f2; /*前两个月加起来赋值给第三个月*/
3 f& Q$ Y9 P" @9 J# w }) G5 {5 A# Z+ e. h: \
}
* K; g2 [# z) |/ ~
' z# u8 E; A! L+ A3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
: a$ S9 w1 x& n  A% P2 X程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
6 o. y* r' Q9 A' n     则表明此数不是素数,反之是素数。*/9 a6 i# m6 N8 n6 H2 p1 f% m
#include "math.h"8 M4 o: x, l& S; W1 V: t3 n/ q
main()
. s# x/ u1 m' e  C# \{
9 h& x/ _5 |; j6 n5 C! W, jint m,i,k,h=0,leap=1;+ Q7 t8 F" v5 a- q  G/ Y
printf("\n");( }+ C$ {2 c7 s, Q. y0 {% c$ L
for(m=101;m<=200;m++)6 o# Q0 ?8 A& {+ P5 h1 S! H1 U
{ k=sqrt(m+1);( D+ w1 ^0 Y8 k  ]! c7 P) [( m
   for(i=2;i<=k;i++)+ r* G( [  m5 M2 {: @; c
     if(m%i==0)
/ M3 S# }1 E. g. O# Z8 }# ?0 i        {leap=0;break;}
4 y$ @( O. A! w9 `1 u     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/' ?, t4 F4 X  `4 j  o
        {printf("%-4d",m);h++;4 W' O) R0 l( p
         if(h%10==0)
: N9 Y1 ]+ P% `) `8 l             printf("\n");3 ^3 y1 Z4 q' J7 s: q
        }
  U- N$ |" |. W   leap=1;
7 C) o) S% q2 g9 K }9 \9 `. [* M! q4 Y
printf("\nThe total is %d",h);
6 [, b7 U  h$ ^  M0 R- }# p9 ]: j}! J% h: X: y, |/ c! Y" g4 [
7 K& H3 D) J9 N* R0 I. {1 N0 N* B
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程/ b) S! q/ r* s. L
   找出1000以内的所有完数。*/. g/ @1 U2 B; ]7 i4 z8 g: n
main()2 j* T5 @* ~2 o4 `4 A; E5 J6 x5 W
{( l) ~' X3 U, o1 s
static int k[10];
& I# X" l4 f6 h+ h, E+ bint i,j,n,s;
3 R$ f6 k3 e5 @) l. P9 l- Z6 n; Lfor(j=2;j<1000;j++)
3 r2 l( _0 U; G3 @" F  {
& |" d) R6 ~; @/ Q5 i4 O. R- `   n=-1;
/ _8 ^8 t* }7 e   s=j;8 W8 s$ O4 |: m7 i. Q
   for(i=1;i<j;i++)
4 S7 a0 q& Z/ _* ^# D% P     {if((j%i)==0). c' _% W% [/ Z% i
        {  n++;
; }) z6 X' D/ d; {7 T" [+ I           s=s-i;
8 b& A( C: o- a& G! I7 D           k[n]=i;
8 p# t6 U: P) P* t" J6 R* P! G1 I        }7 p# B- ?4 C6 t% d2 U
     }, r' |! w7 O+ X! _; a% p1 z3 K2 M0 {
if(s==0)2 s) j  w& L. ~2 r; k
{printf("%d is a wanshu:  ",j);. q1 c1 B+ K0 J6 p- q: P
  for(i=0;i<n;i++)% \" _5 r- @1 b# Q' x5 H
      printf("%d,",k[i]);: f3 D+ I/ O& i/ I7 b
  printf("%d\n",k[n]);
! l+ _0 s! W4 C0 ?/ t9 w; \. M }; Z$ F! V* Q* F$ v% l5 T2 S4 h4 H
}; _9 d, x! t8 {1 v9 i
}1 n/ n/ [- S  f# W$ ^! c( R
( _# k1 y: a( p/ \
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
$ ^; q4 Z% }4 c% C6 V  y$ g请在空白处完善程序。*/  Q1 W+ Y4 h9 h5 v3 A
main()
: X( Y1 m0 K0 U1 V! n1 X{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/; |$ g, o5 V( F- q% p2 \
printf("input 16 numbers: ");" p& ?5 n0 b8 y( l# k
/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
) {  S2 h! G  J/ t4 R for(i=0;i<4;i++)
( y0 z+ L2 ?+ }; B0 Y     for(j=0;j<4;j++)
  J( v: Q& |% a& f/ K5 }     {  scanf("%d",&a[i][j]);$ j* w  z' l- M/ F4 v8 I
        b[3-j][i]=a[i][j];6 P, }  V" e8 H. j( }
      }5 }0 _+ O# t3 T. B
printf("array b:\n");
# S& h1 X, k  g  y for(i=0;i<4;i++)1 }4 X; r6 R1 [: m
    {  for(j=0;j<4;j++)
7 Q! Z5 }5 q& }* U7 i5 O       printf("%6d",b[i][j]);0 I: g. S  i5 {2 P! a
       printf("\n");9 Z* T$ e. f( O" t4 v
     }; k' R# n6 W' {% f; {6 a$ o2 U9 Z
}
3 b: _8 _6 Z6 x9 l. |( U% D' D* c+ t, J' a6 T
6、/*编程打印直角杨辉三角形*/6 y1 r( q% q+ ^( [0 m
main()
$ N" @1 {& X) K{int i,j,a[6][6];
7 g/ Y! Z# j2 I6 }7 ]0 U/ efor(i=0;i<=5;i++)
2 v, s" D6 a# }{a[i][i]=1;a[i][0]=1;}6 s/ \1 b$ [0 X) }, N+ {9 @
for(i=2;i<=5;i++)4 y: h* _  R; _: X
  for(j=1;j<=i-1;j++)" Z4 h6 i' G- B7 X/ N
   a[i][j]=a[i-1][j]+a[i-1][j-1];7 c9 N* c  X5 l) y5 W% V# v* ]
for(i=0;i<=5;i++)
1 {8 |2 N; x% x( p) F. E  {for(j=0;j<=i;j++)6 t( f" Q: a  @) N0 M( [! Y
      printf("%4d",a[i][j]);
; b5 K; Q9 A5 i9 z   printf("\n");}* v/ H4 p. |/ U; M4 D0 X) P
}
( o% |# k7 e- G; S4 b
& q) ~" E; H, q* @7 L6 |7、/*通过键盘输入3名学生4门课程的成绩,( Y0 o2 B; C0 E1 @! N) g
分别求每个学生的平均成绩和每门课程的平均成绩。
1 i( w% w& L2 P要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车2 a& W- H- `: k* n4 R
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/( F* e: M  Z' p4 c$ z
#include <stdio.h>& a+ y) N; M2 Z  z6 c. ?
#include <stdlib.h>
9 u7 O# {- h& f" }. p8 T4 f& |% Fmain()
& j# D& j, i- w4 ]& W{ float a[4][5],sum1,sum2;
( h: L0 z0 }. b+ }" fint i,j;
5 x, n# G4 w0 b6 n; d! j5 @for(i=0;i<3;i++)& Y1 w1 u- k) ~& m+ s
  for(j=0;j<4;j++)- T; S  r* n6 i- f$ O
    scanf("%f",&a[i][j]);7 O. o4 p7 q0 @. g
for(i=0;i<3;i++)! ^1 _8 t* V! p* n" ~! V9 R
{ sum1=0;
8 i! m9 _2 ?; m$ h+ A$ a  for(j=0;j<4;j++)
$ k  Z$ _; H6 h    sum1+=a[i][j];+ \0 C; A: B% f. I9 d
    a[i][4]=sum1/4;
2 w, ]- `8 L1 |& h}- h5 I! E& K9 a6 H1 k4 X( F
for(j=0;j<5;j++)
4 v2 m: `" I4 {, S, {$ F: W4 g{  sum2=0;3 z* {# R& b+ l# k* N
   for(i=0;i<3;i++)7 [& o5 d' Q- H" W8 C* n0 j8 `
     sum2+=a[i][j];" h- g( A1 M* d& o; G. b% w. y
     a[3][j]=sum2/3;- h6 \4 j( [4 V  ?. }  a
}7 r8 U6 U1 P: Z& s( G* ~. M1 N) l
for(i=0;i<4;i++)) `& ~1 t9 m6 g' |
{  for(j=0;j<5;j++)* p% m0 N5 k, g8 l2 w2 l
    printf("%6.2f",a[i][j]);4 N  Z( b1 A- Z9 N2 p
    printf("\n");4 C8 i4 \3 o8 n/ L: l0 x+ U
}4 D& Y4 U; x. n0 {6 d6 q
}
* Y& `8 ], m: J, l. c% `5 z( m) E/ n1 y+ M' v
8、/*完善程序,实现将输入的字符串反序输出,
- s' ^5 z1 m2 X% M" R# x如输入windows 输出swodniw。*/6 n9 [; |" n: A- W) |" F" Y
#include <string.h>
, _  [8 a: D$ d) `2 Bmain()
' z% E, w3 K% `6 b- ?. I8 k# c{  char  c[200],c1;5 w- A; C  A- {7 ~
int i,j,k;0 {6 J0 `" y7 P
printf("Enter a string: ");
4 I3 _$ z1 d0 T( Z  ~ scanf("%s",c);
5 W, a5 W  U) V- Y. x; ^ k=strlen(c);
! a; W& \# U, b+ |, c! ~ for (i=0,j=k-1;i<k/2;i++,j--)" m& N/ }9 C* U! \" B; [: O
   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
- k. T# f7 O8 M6 Z6 W printf("%s\n",c);        5 l# p" ]  g, W: b
}6 {" D* v1 x2 J) C& x+ u
指针法:8 W; P/ l  C  f9 D( k7 u8 U3 v
void invert(char *s)+ y; [% x  o% |! K2 R7 n
{int i,j,k;
$ H6 w  C1 U$ u' i6 `char t;
( _4 l& K6 a9 p3 T$ u5 O% h$ E$ ek=strlen(s);1 e( S/ L+ _& `) ^7 X6 V! d+ f
for(i=0,j=k-1;i<k/2;i++,j--)
2 I; g5 z  G- U2 y1 p; O. }{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
! b2 ~2 b2 W5 u# U" S! G1 ^" K8 S}
5 l4 W( f  k# F/ imain()
- z$ l) r$ c4 }3 R- B{ FILE *fp;. w! X3 x1 V" R- {- U
char str[200],*p,i,j;' W& J0 Z: \  k6 X  f
if((fp=fopen("p9_2.out","w"))==NULL) # e% Q6 h& {: ^4 _9 @8 H! _; [7 E+ A
      { printf("cannot open the file\n");; W$ R0 _- B# v9 f. c9 A% i% w2 c4 i& ]
        exit(0);                       
0 O' T* T+ `' Z* C' w* @& Z) P      }8 j7 A9 t+ D( }- f
printf("input str:\n");- r# ^% Y/ p0 [" M" o/ s- i
gets(str);
6 i5 o0 v6 |* t2 h printf(“\n%s”,str);/ w+ A1 Y$ J/ @5 ~! |" \# I! k
fprintf(fp,“%s”,str);+ r8 x* W( \' r
invert(str);  v! [" t$ A) ~8 I0 c: D1 ~
  printf(“\n%s”,str);/ [9 `0 K9 t: l; I! h
fprintf(fp,“\n%s”,str);
9 I/ _7 m7 V. a: u* E1 O3 T, c' ~fclose(fp);4 O9 e1 {+ z8 N& y' h$ l% f3 h
}( T0 V' X4 m# k( ]" D# W3 q
  k: [, [! u' k* t
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
2 k4 @. L( j  I( \- z* G#include <stdio.h>) s8 V1 r$ k0 l
main()' f# Q1 B4 G4 {% y8 \9 R5 u. U
{  char  s[80],c;5 y4 P" T, y! y8 E1 _0 c
int  j,k;6 h. R. O7 s2 K+ d# N; e
printf("\nEnter a string: ");
. F( A! p$ z1 e: @, h gets(s);
; z2 `* s, p/ G# Z printf("\nEnter a character: ");
( J" J2 K& l; m* ~- g; ` c=getchar( );: b9 x) w) ?8 t6 c1 R0 y
for(j=k=0;s[j]!= '\0';j++)
" G7 u/ l5 _: E/ x1 A if(s[j]!=c); x, n- c4 m. W6 h+ ~6 v
    s[k++]=s[j];( a, p- |4 ~6 Q; ?) l# o7 d
s[k]= '\0';# p3 U7 Q& E% B: a& V
printf("\n%s",s);6 S$ L2 o2 y" Z6 U* N* R8 w
}
" x( @+ u! O+ P
0 N& g! W/ i' ]: {$ d10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小& L# ^6 u& r! |. @6 K  M1 m& F
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/4 m1 ~3 ]1 q- [
#include<stdio.h>7 B' k$ _1 T' H! y" {1 R
void sort(int *x,int n)! ]! p# z/ @4 R" l6 `" \$ v
{
( ?( r/ J& k) `' H* Q4 Hint i,j,k,t;; o- S; c. ^  u* t, H" a
for(i=0;i<n-1;i++)- U8 V7 ?+ E" T) J4 M
{
. \; ?) G9 [3 u0 {8 Kk=i;! L0 l- d+ h6 |: \: p  P1 i
for(j=i+1;j<n;j++)
' @& P; h7 ^0 d if(x[j]>x[k]) k=j;6 A2 F) A& R7 e0 B5 ?0 f! Y
if(k!=i)
- X! }+ X  \% f/ } {
, e& r. A( |; J9 u5 U! q  t=x[i];5 h& W- [5 ?3 ]; K
  x[i]=x[k];1 @7 J4 Y6 ?; e
  x[k]=t;
- j/ ^1 d$ ^' O) \- ~8 [$ q }  f. x4 y: H; n1 s7 b7 @3 O$ k
}
- c7 D/ ~# x  _; s}, X* a- v. q" I
void main()* C8 e- t) R7 F, d* v3 F
{FILE *fp;
( Y& a4 h$ J+ x/ ?   int *p,i,a[10];! B& d/ a7 Z. x+ h  |
   fp=fopen("p9_1.out","w");                     
: c3 Q+ @1 X) c3 j+ W" ~. r  p=a;5 Q2 `1 h5 h* v% E4 y
printf("Input 10 numbers:");: w/ f9 M2 y7 K4 c- w
for(i=0;i<10;i++)2 \' D6 X  W! h- Q# h6 g
scanf("%d",p++);
4 F8 u: \$ K/ c9 N- |4 [p=a;
# Q! S2 ^9 _. O4 g+ u+ `8 T$ psort(p,10);
- U' E  f/ W, s- bfor(;p<a+10;p++)  u0 X" b- r2 f$ Q3 \9 h+ u- S- d
{  printf("%d ",*p);
7 @) ^  }$ y* w& @      fprintf(fp,"%d ",*p);  }
0 J2 }0 B; S, L6 h7 y      system("pause");! H; [4 n" b& t6 ?
  fclose(fp);2 x, B) w! _4 E+ s! D
}" F' O, W9 {% u' [) b
( A/ L3 v% \! @8 n' i; K6 L& C) i
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
$ k6 w0 `' G- Q, I+ i  O8 u  main(). W( e7 @( S- y6 Q: O
  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/. O* I1 K& t3 s; A3 |- h
     int  x , i, j=6;                         /*j为元素个数*/5 `) y2 x. o* O8 ]! \- H! r0 B7 P
     printf("Enter a number: ");
3 Q0 _1 o: ?1 o- T     scanf("%d",&x);
! x3 V& Y8 ~0 n3 N     a[0]=x;
% ~* e) M% ]/ l) k5 {, _     i=j;                               /*从最后一个单元开始*/# Q* V' R5 m) \
     while(a[i]>x)
. h- r6 x# @; W8 Z6 ~5 u     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/
7 a# z: g  x+ f" \) \7 P     a[++i]=x;. |; T) Y3 ]' c3 L* Z" O
     j++;                       /*插入x后元素总个数增加*/2 @! p7 H: r  z. w0 P3 E4 s- f
     for(i=1;i<=j;i++) printf("%8d",a[i]);  w& n! b2 X9 k' ^. w8 z
     printf("\n");
7 o! l: I, c: M8 v" O6 O}
  ]+ F* E. g: h: v! w  F" Z1 N' k% w9 G# X9 f0 ~

4 A3 m) {) m* a, V) z* I1 l12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
5 {9 V9 n0 G2 k: t* y#include<stdio.h>
! U3 u& b& ?4 c  l" P0 k+ Xreplace(char *s,char c1,char c2)
) h" }5 `2 Y! y; E2 r" I& Q{ while(*s!='\0')5 |" i' P) O3 h2 g4 G+ Z
{  if (*s==c1)
  ?2 S0 C# {- T7 v2 D  j       *s=c2;
; s+ y/ Y. j9 a4 j& T8 B6 K+ g       s++;
! @  {: F' R. q! s }" C! H7 g! y( v# G+ `: j
}# o4 w' U8 Z& E. e3 v3 N( j
main()4 `* p! f8 n3 `! r& G
{ FILE *fp;
) p1 t4 ^$ y- D' w0 ?. {( q1 echar str[100],a,b;' a! q6 `- ^7 J4 C
if((fp=fopen("p10_2.out","w"))==NULL)
* A  O: j& U! A( ?: D) T    { printf("cannot open the file\n");; ?: o! M- e. ~2 [2 ]
     exit(0);                     }" `* e! a9 X+ e
printf("Enter a string:\n");
& u5 n6 Z$ o: C  gets(str);( S* m, J& K' m. M# K
  printf("Enter a&&b:\n");) E* I% G3 k, K! L
  scanf("%c,%c",&a,&b);
* H1 ]$ z$ i" _' wprintf("%s\n",str);: D' i, C: m0 Y: ]! W! J
fprintf(fp,"%s\n",str);
0 p6 h- K- W( ?  Z' Breplace(str,a,b);& p! y! t7 v$ w- u5 ?9 L1 @
printf("The new string is----%s\n",str);+ j% x. v( P! M- T) V/ S( Q
fprintf(fp,"The new string is----%s\n",str);
7 M( Y7 P5 r2 c2 |fclose(fp);2 t3 R  j4 E0 [3 {5 j" v0 G
}
# J$ h, L: h9 _
: M/ K' a& z5 j8 H6 D13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
% ^% r4 `1 h5 h$ p& h* w,不存在则返回-1。*// `+ g) S/ E6 k
main()) B( Y! ]* c! I: }. s  C
{char s1[6]="thisis";char s2[5]="is";+ K: ~* U5 Y% g, R" {
printf("%d\n",search(s1,s2));
# @& D  u$ b& q0 i, {+ Q" psystem("pause");
: s# t0 H8 n/ N. j! D& O) H: p}* [; k! L5 t: o  [0 D
int search(char s1[],char s2[])
/ \+ Z/ d1 [5 o* x0 b$ c{int i=0,j,len=strlen(s2);/ E* a; W( Y: J, f% e
while(s1[i]){1 @, x9 y0 B2 d( ?- v! R; _" J# m
for(j=0;j<len;j++); O; g$ F% Y5 Y% _  U
if(s1[i+j]!=s2[j]) break;, d2 J1 ~& N* c  _- ?5 B
if(j>=len)return i;
1 ~% ?- L) V! E* h& ?, A+ H6 Uelse i++;2 |$ T# z& R% i1 C
}/ r/ j* k6 X$ u
return -1;
" L8 Z% A: X0 C7 p}5 @/ T! ]8 F8 ^; F1 a

' [4 b+ U/ V$ Y14、/*用指针变量输出结构体数组元素。*/
9 x8 Z1 w/ Q% v) E6 x- |6 U0 istruct student) D' b0 R* |" n4 X, f% D) D- ^+ a
{
/ w+ N0 B7 J8 f$ Y8 t1 [6 Kint num;0 j! `; a7 \: ]+ ]( M
char *name;
3 s/ D5 |; T: u5 l, Bchar sex;
+ a- G' L* Y/ l: [$ Q6 W, nint age;2 B9 _. u) \5 t" l# I5 c  E6 z
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};8 G, E. S* m4 m) h; ]
main()/ i- S4 ^  I, b$ c7 c# g/ t4 M5 m1 i6 ^
{int i;, Z; M  F6 E8 \  l& S" @) ?
struct student *ps;" o3 n' H. f% }3 t
printf("Num \tName\t\t\tSex\tAge\t\n");  
; Q7 y; I  F3 P+ b% u# D/*用指针变量输出结构体数组元素。*/) {# @3 F0 m5 a# M
for(ps=stu;ps<stu+5;ps++): ]: G: K6 m: u
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
$ n# [# @& v$ b4 r% d1 q/*用数组下标法输出结构体数组元素学号和年龄。*/& `# M4 i2 y) x: }
for(i=0;i<5;i++)
. p# i1 e/ X2 i8 }0 x0 |- Q. B: wprintf("%d\t%d\t\n",stu[i].num,stu[i].age);4 a% A6 N2 k3 [, |' I& i% [
}/ H3 {+ u# U& Q$ \3 f% K0 U  K4 j4 ?! c
( }5 {- t, {3 S6 K
15、/*建立一个有三个结点的简单链表:*/. E. r' t/ _0 W3 s1 [5 C) V2 ~
#define NULL 0
  x3 e9 e3 a( ]struct student! @9 u3 B1 X+ W& b; U/ T& s; T6 z* Q$ b8 Y
{% U; ]/ g# w2 ?' f1 ^
int num;
; W  G' f1 _0 D8 J0 P# I) k2 a0 Ochar *name;1 C+ D, T1 H9 h" D' g1 ]8 i- P
int age ;
2 F* r* e' y, Ystruct student *next;
0 M. `/ Y+ X6 M) g* y/ h+ ~};
3 ~4 x5 w6 x  j6 |void main()
  R8 z# v6 d2 S+ e& M{" _5 t6 C2 U% c, f
struct student a,b,c,*head,*p;- H6 O9 l- }) S. g
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */) j" u; H& s5 J# \3 I6 c  q/ K
b.num=1002; b.name="liuxing"; b.age=19;8 J2 @) Z. T* @7 k4 S4 }, M7 E
c.num=1003; c.name="huangke"; c.age=18;
+ z" \- T; t% I' U0 g, X+ Khead=&a;                           /*  建立链表,a为头结点  */
, j( M  y: E1 X, `8 w- i5 c/ ya.next=&b;7 |9 ?" u# R4 [* G' M9 e2 ~
b.next=&c;7 {4 ]0 G  G0 W; l' Y& [2 ?
c.next=NULL;
- ?1 l6 M" z- P. mp=head;                            /*  输出链表  */
! L/ F. d8 ^0 L8 E; ~/ J6 ]( edo{/ X3 D4 V7 C; Y' b; \
printf("%5d,%s,%3d\n",p->num,p->name,p->age);
+ @! s: j% _; R  r( }p=p->next;1 O  l7 m* V. Z7 R* s* q
}while(p!=NULL);
) t  l9 r; X( J( P5 f3 [+ J$ G}3 c; ^9 x7 W! j* |; ^! N, q8 {. V
: S1 X% @! C' a, W7 }
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/$ h* y8 F8 R$ ^, ^
#include <stdio.h>' }8 O2 Q" ]5 P; x
#include <string.h>/ t$ O, S& p: g- {" w9 t' b. R
#include<string.h>  c. S! {2 N+ j, q9 x9 N
main()$ o1 ~* q# w5 P% n0 D. Z4 E
{ char s[100];
& b% e2 z& {) N9 Q$ r4 `- j6 [8 e' f  {int i,j,n;
* B1 I+ o* b" o" uprintf("输入字符串:\n");
9 f. o3 s4 x3 z2 l$ M7 Igets(s);
3 _4 t5 _) @( q; k! Xn=strlen(s);
( G1 r7 H3 w  T$ ]$ Sfor(i=0,j=n-1;i<j;i++,j--)
- {9 n  J# |5 {% Q+ d  if(s[i]!=s[j])   break;
1 [0 ]8 w4 W2 R7 `if(i>=j) printf("是回文串\n");
: D5 a5 d! K: J2 |) aelse     printf("不是回文串\n");
  E, g9 S% T$ @4 a2 p  E) J2 Q}
, l; k. S# C5 Z% d! D; V
' v0 o  N- ^8 z, _* z' ?: s4 k17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
$ s% R! H6 V) b3 f#include<stdio.h>
7 f/ w7 d; J* }6 q( Dvoid fun(int a[],int n)
( n% s  s# Y/ |# b) \6 D{int i,j,t;7 f) a! \: l+ H9 ^
for(i=0;i<=n-1;i++)1 J8 ?/ C& n9 f; Z
for(j=0;j<i;j++). F5 F) W/ U9 d7 n
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}$ T; u* `% b% M, o! v
}
& S8 c! E$ C: h% A6 Q& A7 k3 v- `main()
1 P6 _$ k" O6 M( \  c{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;9 V( X6 W& }: k9 @# ?- j
FILE *f;
3 q! U' F! ^0 i) Q8 F! s* gif((f=fopen("myf2.out","w"))==NULL)/ j0 j4 K4 x7 I( b4 g% s
printf("open file myf2.out failed!\n");
$ E. Y+ E7 `5 S" t  V4 b4 r: B' lfun(a,10);
0 V9 A  y3 F2 a; y, Y2 D: Vfor(i=0;i<10;i++)
; t5 q  k1 H/ D% O& i {printf("%4d",a[i]);
7 A1 e/ i/ C5 q0 {  fprintf(f,"%4d",a[i]);7 V% Q4 G# Z- K# c) H
}4 c  Q7 i8 Q& U) ~" j/ c9 ?
fclose(f);
  B' Z3 g2 F* q/ G6 m% e}' {1 [1 m6 X! t! t- P7 D" i) ]: a7 y% H

% ^  C3 Z: D- j5 I# z18、编写函数countpi,利用公式& X! w3 l: `# Z9 p
     2 _9 J4 G3 v1 B$ S+ F1 v
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。* K/ y, s* z! t) Z* [  h4 d
#include<stdio.h>- l) X6 {' B5 I, f- `  |% q
double countpi(double eps)               /*eps为允许误差*/0 c' S3 f: S3 ~8 h0 Z- m
{, z& t! ^0 {2 [4 z5 z3 k
  int m=1;
' p; F( p6 G. l# ]3 L; f# P/ J: g5 e   double temp=1.0,s=0;9 e& h% b& h& }4 y' S
   while(temp>=eps)6 B8 L  i0 t1 S+ n) e& }
   {  s+=temp;
% g6 v' f2 \0 F4 ?1 l7 }4 q7 o      temp=temp*m/(2*m+1);5 A. N0 {+ p% ], C
      m++;# B' s% a7 B& m( P: f1 F
   }; [6 V, ?7 ^0 M1 H) W& Z/ o
   return(2*s);1 @/ \5 K7 a! I! a
}% T  E7 V" [9 `, d. A
main()2 E% y; B4 @7 i! F4 {8 ^/ I
{FILE *fp;- q2 \" f8 u; N( _! f6 m9 ~
   double eps=1e-5,pi;
) u: I7 t& \. A5 D: @9 f! ~: }   if((fp=fopen("p7_3.out","w"))==NULL)0 E9 ~) j. ?8 o2 P
{ printf("cannot open the file\n");1 Q7 t) W1 s" X- v# W' W5 X: _, h
   exit(0);                     
: U6 s9 x- N% Z* z- } }5 I7 g1 a8 y* i+ I$ O' l/ Y
pi= countpi(eps);6 A" h0 @, Z# ~( w' q: h# @' U
printf("pi=%lf\n",pi);1 |8 g0 D. F& l- I$ P2 b; |
fprintf(fp,"pi=%lf\n",pi);' c+ q1 ^8 d6 |6 Y6 `
fclose(fp);
0 e+ Q9 N6 d) Y7 u5 ]8 v7 S* S}
分享到:  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 | 只看该作者
感谢分享
, s3 K5 o; D( F2 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:40 , Processed in 0.076169 second(s), 32 queries , Gzip On.

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

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

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