找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x

- X' V( J0 A' V1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
1 l/ r1 Z3 g; K) U) J#include "stdio.h"/ F0 n- R% g. ^4 z2 S# }
main()
' g" d2 r; z0 E# _/ c{int i,j,result;
1 l$ H( S2 o2 I0 X! Nfor (i=1;i<10;i++)
  {4 ^, ^# g. @6 R) m& o { for(j=1;j<10;j++)
, P! t8 V5 z6 y6 }" x  t; d6 X     {
* _2 q3 r9 \  f: g4 E3 Q: w        result=i*j;/ L0 b. d6 t* V0 P- s
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/# B6 w+ ~0 ~$ x* c
     }
& ^( J  \# x' [/ W4 c( X7 N/ n    printf("\n");/*每一行后换行*/
! t4 Q/ S5 O. K9 [6 e3 ^5 w! y2 h }1 o, L+ e$ g: ~0 z
}) m9 k5 R. R- j3 |- t
* t7 m7 W* ?4 J- `( s$ o
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?8 @2 H8 a* E4 M2 Q3 m% W
兔子的规律为数列1,1,2,3,5,8,13,21....*/; a" i: a, l8 ^) k: W! z
main()" n$ l4 B% x7 m- F* O4 M
{
2 F% e8 _/ X) D, k, Slong f1,f2;% {, S2 r" j2 Z+ J' q  n$ l
int i;! j" E6 `4 C) K) R3 s" |: b4 X  Q
f1=f2=1;
6 O6 c' S8 R/ h/ N1 a5 q1 P1 E% ifor(i=1;i<=20;i++)* e# o- g, m8 s# Z: G6 h3 B8 h0 b9 M
{ printf("%12ld %12ld",f1,f2);
6 e2 [- v6 s- K  ~6 R   if(i%2==0) printf("\n");/*控制输出,每行四个*// V( r) h( l; B' Z( U0 u: G' }* U
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/
$ n/ J1 z% z" v( n   f2=f1+f2; /*前两个月加起来赋值给第三个月*/; p# g7 N& a6 m! `# C/ m5 T; `- _
}- g" `& s* s8 \+ {+ H
}
- A. g% b( N8 t1 k6 |
+ E( C- j. ~' h2 _) a; K) `/ T1 G* w3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。3 w& B8 T7 [* s# d# p
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
; s& z6 V6 q; h" ]     则表明此数不是素数,反之是素数。*/
, m1 Y1 V1 I5 e' Q( u8 T#include "math.h". E- J3 \  P. V, m( _& B2 y
main(): e5 J. i  k+ m  ?" Y
{
/ e) C0 J" l/ Uint m,i,k,h=0,leap=1;9 h$ o; d' f$ z! Q* \; v6 H
printf("\n");7 H9 ~  \7 A6 B* W3 @2 j; _
for(m=101;m<=200;m++)
& A9 K& C/ i: P3 \ { k=sqrt(m+1);* j% N4 l% i* [1 u( X; s7 j* y
   for(i=2;i<=k;i++)
# i% x7 ^- d- O' `, |& G9 J2 h     if(m%i==0)
* W+ t+ s; {9 j4 R* w' Z$ o        {leap=0;break;}( q) v0 G% @; |0 j. P
     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
! f" n5 R1 w; p! E        {printf("%-4d",m);h++;( j" k9 r) @& ?; S& Q
         if(h%10==0)5 o4 y% D, D: o
             printf("\n");+ T4 O" d+ F8 O; y0 \
        }3 q4 v! x9 T1 S. ^5 H
   leap=1;
$ ~. ^: F( d) N" w9 S }) Z8 H( n" K8 `, ^  j  e8 b/ n+ q1 N. ^
printf("\nThe total is %d",h);
1 U" |4 {! ?& ^8 K9 d+ f}
! M! {! A% p( {7 r6 f
$ \( v" |" x/ o9 {3 h1 c: P- D8 r4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程9 I5 P4 H4 I3 p  t& \% A& I+ r
   找出1000以内的所有完数。*/9 b0 M2 e1 b& H4 t
main()
; ?0 T- d7 J9 ^; U{. U* h- O+ B1 z9 [1 m! y6 i: b
static int k[10];  ~! P2 m( R5 q- I; I
int i,j,n,s;4 _! d$ K8 U3 q3 B4 _1 a( K
for(j=2;j<1000;j++)7 M6 i6 r8 _, ?& s3 u# E8 B
  {
. ?+ X' ~; R3 n  s& r   n=-1;
- r2 s3 u. T! Z7 e4 o# ^   s=j;$ _* b& t, x/ @  @
   for(i=1;i<j;i++)! d# ?& ^9 i4 U: B
     {if((j%i)==0)0 h; u4 Y* ~' I% e4 G
        {  n++;
* `2 j0 w- a6 \2 ~) O1 N           s=s-i;  s1 y" x2 ~0 z+ g; t
           k[n]=i;
9 V  l# X/ T3 b0 T9 }* a        }; z9 L. B2 r4 d
     }: g3 ]( ]- g, d6 ]
if(s==0)! Q/ h1 ?% Y& _
{printf("%d is a wanshu:  ",j);3 g( w9 l' `+ @9 W6 `4 W2 v  c
  for(i=0;i<n;i++)
& ^% x+ L7 B( N9 j" z# T2 I8 o      printf("%d,",k[i]);
% P4 v% ]) p0 y& b  printf("%d\n",k[n]);
8 O9 \# E3 y5 Q2 }5 T/ [* f }
* d' g# A. H% b3 }/ v& |# E7 Y5 g}
! C- Q: i# t  H- w' a9 O}! b, v+ H7 O4 ?3 {; i

$ B  `  D/ N9 l  s/ d) l  v5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
/ b! E% e$ K) z请在空白处完善程序。*/5 B2 R+ W" h! Q( \1 Y$ K1 k' ^. `
main()0 {- H* y! Z4 s- D
{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/4 E+ s+ \8 d  u' a) y5 Z# u; ]
printf("input 16 numbers: ");
/ y( B- Q; v# B# Z2 e  @+ I/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
+ |! P3 u8 q) K for(i=0;i<4;i++)
5 T5 X8 @" g( g9 {7 ^  W. i8 w+ G0 c     for(j=0;j<4;j++)1 r  \: ^& E# q9 a# G+ T
     {  scanf("%d",&a[i][j]);
! y. Y9 X; s& q8 w0 g6 t& y( J        b[3-j][i]=a[i][j];& M% \; W& ^  X( `. z
      }! u" v+ r; ?6 ^" P2 F. T
printf("array b:\n");4 Z+ L" R" F- e, @. w/ \
for(i=0;i<4;i++)
' k' U7 F* ?! n; O3 h3 {+ U& w) y7 h    {  for(j=0;j<4;j++)
2 W8 ^; D7 C$ h7 Z6 E: W/ S7 _       printf("%6d",b[i][j]);( Y; s1 K% M% P! y( J
       printf("\n");
; s" ~, E$ L8 ]* ~2 V" W& A: V+ p     }
4 {2 C9 u% o& M' H- p}& i( n( M3 U5 O$ n9 l3 w  m
; g! ?0 X0 e+ c' L
6、/*编程打印直角杨辉三角形*/
! C; Y2 x7 a' ?) v2 Z$ S0 v2 o/ _/ Bmain()
9 k5 E3 s9 M5 z' z{int i,j,a[6][6];6 r/ L7 P* ^9 _7 P2 }/ W
for(i=0;i<=5;i++)
- b9 @% ~" d) g) k- N{a[i][i]=1;a[i][0]=1;}
5 V+ ?0 f8 |6 D% Nfor(i=2;i<=5;i++)9 \3 J1 e- X  h5 ^) b( M
  for(j=1;j<=i-1;j++)
0 K6 h5 C2 ^" ?8 x   a[i][j]=a[i-1][j]+a[i-1][j-1];+ V" @+ k/ i1 z! d9 H2 J
for(i=0;i<=5;i++)# i- R7 u/ u! {: d& h
  {for(j=0;j<=i;j++)0 ^' ?' i+ d7 k3 b% V' |3 Z
      printf("%4d",a[i][j]);
( f! s3 G2 `+ U& i/ o& C) I   printf("\n");}. G7 H0 q& M0 L: e% H
}
8 E9 W: h7 z% P2 z  y0 l. B* `
& k8 P8 O( a8 c6 I' s8 t9 J; R2 M7、/*通过键盘输入3名学生4门课程的成绩,* i- ]+ I) M5 Z$ `: @  Y3 w3 Q
分别求每个学生的平均成绩和每门课程的平均成绩。
6 x% R8 W1 K4 I要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车* `4 T+ e! V5 `! }
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
& A, }# v' ]" i: p#include <stdio.h>
: F$ u! K0 ?8 [/ r' {#include <stdlib.h>
* E# W- }7 y  B6 f/ _. s. mmain()
% J0 B  T) e% P7 C  V{ float a[4][5],sum1,sum2;
$ n) ~  V% I7 ]1 Y3 Kint i,j;" E+ x% R6 d; R& V2 D8 O8 s: _
for(i=0;i<3;i++)
% y3 `8 b- S6 U! ^3 @5 A3 V  for(j=0;j<4;j++), f( s5 {) i+ w$ t. R! o
    scanf("%f",&a[i][j]);
0 q  I% Y5 F/ r- Ifor(i=0;i<3;i++)
: L* M" q; |; Y3 C3 Q8 w{ sum1=0;
' w6 m( N* {0 u  for(j=0;j<4;j++)8 c1 Q# W9 ?- X6 y1 E+ [# t9 N2 r
    sum1+=a[i][j];
3 r- @: A3 f! D& E4 t    a[i][4]=sum1/4;
3 W1 x: t% P6 F" q}
3 _& w+ |4 w9 Q2 M3 b6 n6 J0 ~1 nfor(j=0;j<5;j++)7 f) u! M  Q0 P2 F
{  sum2=0;
" P6 \0 `- q5 Z9 b* g$ U   for(i=0;i<3;i++)
( A/ [# _- g6 T9 d- V% t     sum2+=a[i][j];
& P. ^4 N. }8 Z4 q, [% ?3 W! X2 p     a[3][j]=sum2/3;! G- l" e* a- ]( k) }$ X
}
" K( ^" w& S! T9 C# u! j for(i=0;i<4;i++)
0 ~/ l4 L3 q+ i! I {  for(j=0;j<5;j++)
1 ?6 {( h+ y2 f) X8 v# r    printf("%6.2f",a[i][j]);
2 r6 G, T2 r8 ^, \' @: r    printf("\n");
6 ~; j. }, }7 f: R9 H7 Z) y }; S# K6 I; k( O: o
}# y$ A9 J; M/ G

! _# R- I6 [1 k. e8、/*完善程序,实现将输入的字符串反序输出,
: p5 @2 Z3 w) r. R! g  J如输入windows 输出swodniw。*/
- t; }& K4 R) ]  }- p#include <string.h>" M! y3 v9 t/ Y/ m6 ~  x
main(). r, h( m$ T% f# J8 s3 W4 w
{  char  c[200],c1;
- P0 s( x8 n+ l2 N. i int i,j,k;
. A- [9 d0 V% S$ V& P7 Y2 I printf("Enter a string: ");& F8 ~8 e# ]& i& f: d
scanf("%s",c);
: M# E" V/ N, X# s& s/ v# @ k=strlen(c);% p. J2 W) ]; ~2 R; v
for (i=0,j=k-1;i<k/2;i++,j--)
8 b9 Z, S8 W, @' \   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
. N  }! v; p- D/ l, a printf("%s\n",c);        3 o: ~, F  `) |! y6 ]( v: N
}
5 z  c+ ^) S% x" Y# p指针法:+ n& q% u1 m) y  B
void invert(char *s)! x5 K0 u0 M* n$ p5 i3 v* s5 z% j
{int i,j,k;- P; ~  A- V7 c
char t;7 e0 ~& b3 F# Y5 D: o
k=strlen(s);
9 {8 I4 E% W! \for(i=0,j=k-1;i<k/2;i++,j--)3 s; m1 ]/ P! m: j# N& i/ d' O
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }; @* z% n( p2 M- R
}
1 w4 A* @  t& A2 N+ fmain(): ~0 F' H% F# L6 k: j, Y: H
{ FILE *fp;. @3 h1 r# i/ Z
char str[200],*p,i,j;9 r( b! o  h1 l
if((fp=fopen("p9_2.out","w"))==NULL)
0 Z$ [! I0 V" K0 y+ ~2 M& L      { printf("cannot open the file\n");" ?0 }7 g9 ^8 O& u
        exit(0);                       . S$ `9 V: K1 z2 Q' u
      }6 K6 P3 E% T. ^$ ^3 H; ^" R
printf("input str:\n");
. Q; y" H8 u$ q% vgets(str);9 X/ r) a4 `% e0 b
printf(“\n%s”,str);6 l3 `# `. o1 w- [! B
fprintf(fp,“%s”,str);+ X5 e, E& a/ q
invert(str);
8 F0 P. x0 Q0 Z  printf(“\n%s”,str);
; r* \/ }2 i0 Y0 D- b4 P! o# Ufprintf(fp,“\n%s”,str);6 `* R1 G8 J: Z' d/ I) g
fclose(fp);
, W- r! z5 l4 j3 O8 q; K}) q6 T3 @% @; j7 w* y, i
( s! U$ g8 J" E
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/4 E7 W; D8 V* |6 l" _7 O6 y4 C
#include <stdio.h>
3 V+ g0 n" W6 w! ~, H: zmain()/ b& a5 h* Q7 M2 U
{  char  s[80],c;( S  _& u: w- Y& Z1 q9 Q  \- V
int  j,k;
2 l# f& u$ ^$ n% n$ X9 ^( I printf("\nEnter a string: ");
( B/ s$ h* [) S gets(s);6 D$ ]: R8 l0 S& Q# V; _
printf("\nEnter a character: ");2 D5 n6 D+ \6 v- X3 C
c=getchar( );- r$ u  o9 Z) l8 E( a4 U" o. }
for(j=k=0;s[j]!= '\0';j++)
: }1 s$ Q* ]  }: i/ x; a if(s[j]!=c)
* z' G7 L5 C2 V- E' _* e8 ~- n( Q    s[k++]=s[j];$ R; R0 j3 Y/ R( [
s[k]= '\0';
- `  @+ D0 D$ m3 c printf("\n%s",s);
: f% F& {( q3 `0 H! E) \7 N}" ]: x  L9 G4 ^7 I: _* q$ O8 r8 Q% l
* u& t% B6 X4 y  f/ Y0 P
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
& X, N& K, ?: r: h/ q. _8 ^排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/9 c. d6 z3 |& ]8 J' H' ]& u
#include<stdio.h>
: t1 N8 }. R. ^8 Z1 Wvoid sort(int *x,int n)9 L8 P- a% j5 F
{
0 \5 h, [5 @9 U6 H* fint i,j,k,t;+ v  @* j0 k5 {$ d  Y$ O
for(i=0;i<n-1;i++)
! d3 a$ ~9 z$ F  a{- p9 x. S6 p9 a( q4 ^: A1 V: P
k=i;
5 E  @1 Y" [2 b0 R$ Q' i' hfor(j=i+1;j<n;j++): E! x% {( _/ F- N+ H
if(x[j]>x[k]) k=j;( c5 ?9 I' W3 M  V9 [* U( A: A
if(k!=i). q9 W' r5 d* f. h
{6 M" ?% T% b9 X/ b; |- J3 l" A0 [
  t=x[i];
2 O1 t9 [2 r7 I' D8 S  E. d8 ^  x[i]=x[k];
) f8 I0 J6 p( b  x[k]=t;  ~4 p6 w$ i; v/ u* H
}) U6 v: V5 w* p  U, P9 u$ r- G
}
! K6 i2 q5 v; @/ |+ e}
8 Q3 X3 D8 a( ~$ s2 kvoid main()
* n) g7 E" \6 t- j2 N7 s{FILE *fp;* y) G0 a# k! @" t; Q1 i8 O) \, s
   int *p,i,a[10];
2 T7 l( v8 _: L6 v9 u2 J. b1 f8 ]' t   fp=fopen("p9_1.out","w");                     
7 K1 }( T8 T) X6 g  p=a;$ M2 ^0 C1 _, J$ _9 H# g
printf("Input 10 numbers:");  N* ^& |  }# D. M' n" o
for(i=0;i<10;i++)) R1 `" p. ]$ H9 Y8 O
scanf("%d",p++);
5 g' o* d/ n2 d+ g) Cp=a;
+ j  U: _. m) j' c2 g& P+ h+ h" Xsort(p,10);
4 G$ t! i4 O6 E6 O5 Q- [for(;p<a+10;p++)9 S4 y+ g4 a+ D# L
{  printf("%d ",*p);
, b( h$ v. B; T      fprintf(fp,"%d ",*p);  }
- h0 X/ _8 m7 o      system("pause");
- X* c8 E! M5 W" A$ i! L( h  fclose(fp);2 j8 g* r( _% j4 f: C, }+ x
}0 I0 S& R1 N6 J6 I2 H3 u

5 |' t$ [) g+ s5 G% S3 I11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
& H6 ~& `' J7 b, Y& p' ]# T; C  main()
$ [  A) e8 I* I7 z, t  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/% @( S- G% _- ~9 W( N( P
     int  x , i, j=6;                         /*j为元素个数*/
% k+ N+ E! j! ?2 x     printf("Enter a number: ");; v- a. \4 }6 D; L2 b9 c
     scanf("%d",&x);
8 @7 H" K  k# Z7 P3 \     a[0]=x;& ^( V' d0 U# L/ u$ [4 O- J1 I3 T
     i=j;                               /*从最后一个单元开始*/
; L: Z) [$ k# ~     while(a[i]>x)
8 c! p( @2 w8 f+ x; e3 N0 k     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/4 _( Y% L+ ~" V. ~; H
     a[++i]=x;, r  S( C/ c9 C+ |+ R9 i
     j++;                       /*插入x后元素总个数增加*/% ?0 h0 n  q, x! M7 B# b
     for(i=1;i<=j;i++) printf("%8d",a[i]);
# \' c1 ]/ I# d) m4 [     printf("\n");5 y4 R+ U' A( i2 Q
}- O0 b$ Y7 O5 z/ q6 O
7 R/ u1 L$ u- q, i7 ^+ ~8 l
! Q! Z0 e' d: o. b7 J* ^
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
/ u9 v7 t  |3 O/ w4 h#include<stdio.h>* ?" S- X. x' p/ X) }* M' o
replace(char *s,char c1,char c2)
$ C8 f  U. N8 p) J2 ?{ while(*s!='\0')
" O1 ]( @( K0 ^2 Z! {: }4 v$ J {  if (*s==c1). b9 j7 ]2 ~  T- q" M! C& W; m
       *s=c2;
+ c2 P# {+ H& ?! e* {       s++;
. B: `; A6 d: T/ b5 z* ^ }
7 k4 i& L  K8 c, ]' G6 V}! B+ v3 \) z) \# f% ~
main()
( b1 @( W+ O4 ^{ FILE *fp;/ k0 O+ v2 g/ ]
char str[100],a,b;- ]' W0 T9 b/ x2 Q) d# }
if((fp=fopen("p10_2.out","w"))==NULL)
  F4 q; w5 M" m/ Z, M    { printf("cannot open the file\n");6 M9 N: J2 N/ P" }( I
     exit(0);                     }
6 a' }: |- D, p# I printf("Enter a string:\n");9 s% ^: W4 M7 H  p3 {& n2 d
  gets(str);' ^6 q9 ?5 m/ X1 `
  printf("Enter a&&b:\n");
1 l( L: K: Y- U  scanf("%c,%c",&a,&b);
; t+ W! J7 W# C  Z  F! |printf("%s\n",str);, X9 n- a3 J6 w9 @! l5 w& ~2 l  `
fprintf(fp,"%s\n",str);
0 G3 h( F# c5 X! w1 J! Nreplace(str,a,b);8 _- K  l, [9 O% I4 M
printf("The new string is----%s\n",str);
* Y& ^( M" l; _1 c4 A1 _/ V/ Z0 Rfprintf(fp,"The new string is----%s\n",str);2 G6 k  w) e) Z7 N1 c* B
fclose(fp);: o. n; Q# J8 J& d5 r
}
( u1 i  U( t+ B9 J$ c+ I+ T2 X( e0 ]: R( C
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置# ~9 l6 ]* i$ Y* a! g! A
,不存在则返回-1。*/% z6 ~5 @1 `" _6 _, c
main()
% g* a( Y5 r$ |6 Z$ G{char s1[6]="thisis";char s2[5]="is";
8 B* F) N8 I7 r6 K- _4 n# Mprintf("%d\n",search(s1,s2));3 G% Q* Z" y/ [# m# A) ?
system("pause");
2 X* z& ^- ^2 ?1 C& p}; S, @) H$ Q$ Y) T
int search(char s1[],char s2[])
; G" q* c3 t9 q6 E: T{int i=0,j,len=strlen(s2);
. S6 y' Z+ c; i; E+ B- D6 qwhile(s1[i]){
6 t3 [1 D; o0 Y& v3 O# t2 e5 Pfor(j=0;j<len;j++)
1 p# [( h; Z+ Y( ?0 G! ?' Bif(s1[i+j]!=s2[j]) break;
4 C+ c/ Y6 C8 \2 H4 q( Hif(j>=len)return i;
9 |8 O! J! L8 T( Q! n& Jelse i++;
: [' R/ N" ]: w- g4 Y3 x- P$ P}
# T/ F! Y7 I1 hreturn -1;4 I+ ~9 v) I: E( w! ^6 b5 a
}
2 g( b  ^* V7 F+ J7 p& m* @$ |+ a6 f( e: ~5 q
14、/*用指针变量输出结构体数组元素。*/
  {8 u, I9 ]( x, k2 Ustruct student4 H$ q: _" y/ e) K/ g4 n. D
{
- [+ x% d1 Q& r" K3 c+ yint num;; c; D* }- T% F3 B/ S" h& H
char *name;0 b* h. j: r* W8 t  R& ?0 V
char sex;
$ N) ^$ C' u) L, n# o* [7 D- gint age;$ ?$ W; X4 H4 u8 N
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
6 @$ {$ ^/ u8 T- @2 Q/ w$ m2 tmain()& m6 q# W  |: H, f0 @
{int i;; t' j8 v9 l  x/ O4 n
struct student *ps;( Y8 p. o+ y4 F' Y- [+ h3 l- H
printf("Num \tName\t\t\tSex\tAge\t\n");  ) g- n+ t! E2 k5 h$ j
/*用指针变量输出结构体数组元素。*/
0 Y) [& T( `8 T7 w) P5 d% _for(ps=stu;ps<stu+5;ps++)
+ J+ I( x3 S) V* }& tprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
& k$ V  ?+ I3 h8 j& G% I/*用数组下标法输出结构体数组元素学号和年龄。*/! C* Q( x5 H, m5 {0 F. h1 y; |8 l
for(i=0;i<5;i++)3 j' e- u3 `  C1 L" m1 X0 ?6 Z( Q, I
printf("%d\t%d\t\n",stu[i].num,stu[i].age);% i( E" x2 v$ f- O
}  @. \- }6 N/ {

( E' e& O, X0 p1 I. }8 Q/ Y' V15、/*建立一个有三个结点的简单链表:*/$ B5 A/ l0 ~5 i/ c$ v: U
#define NULL 0
/ c& b/ z% S# F! w+ R6 k& sstruct student
& P. y, b# R( \7 t2 y+ ^8 V{# Q' @& Z& Z. W2 I% A* q
int num;5 h. F5 s& n9 E" h2 I9 |
char *name;
% {6 B' ?, v7 [8 Vint age ;" A9 E8 Q# g7 m( a7 o
struct student *next;
) ?* W) y2 I" t  ~* y};
' S$ ?8 `5 }" a  R* E; Rvoid main()5 z1 |8 f( A* k" b& O
{
% o2 \& H* A$ ]' m6 L2 X5 Istruct student a,b,c,*head,*p;
8 k+ A: ]0 u+ X4 I3 ba.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */
, e+ C3 a9 F; [" y0 Z7 F. a3 o8 sb.num=1002; b.name="liuxing"; b.age=19;
+ Y8 R% ?- T6 j; F/ D( [) mc.num=1003; c.name="huangke"; c.age=18;6 t  W# B9 z7 a8 S
head=&a;                           /*  建立链表,a为头结点  */: d# a+ h1 z+ V
a.next=&b;9 O- }# H) E% C+ t0 Y2 ~# j
b.next=&c;
, e. e/ v6 a& s% d# X6 vc.next=NULL;& p4 H' Y7 n$ t
p=head;                            /*  输出链表  */, _8 `9 r/ Z3 e1 G! x4 b
do{4 p/ [; F+ R( k; E5 k
printf("%5d,%s,%3d\n",p->num,p->name,p->age);8 p( b) v. V0 j& n! W
p=p->next;
5 N7 G: ]. H; }5 z}while(p!=NULL);
  l" V. V0 u3 a8 s0 Z+ e}1 X1 B$ A( `7 k; S+ }, Q% V0 G: K

% C( P. x/ X  ]. v' S" c2 R16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/$ |# F4 g/ n8 P2 t5 Q' v
#include <stdio.h>
8 Q9 h8 ^, Y1 R4 g! A+ z3 ?#include <string.h>& s& x- P9 E- I! U( ?
#include<string.h>
  i$ `$ u" [7 H7 amain()
/ T: m/ P, d! a* ~9 `; _{ char s[100];3 j. _% H, A) k; r  ^  {1 `/ s
int i,j,n;
  h( G. x1 p. r; @" p+ Uprintf("输入字符串:\n");
+ }" A0 O# K+ ]  Igets(s);
: f6 B! j( Y4 F  Fn=strlen(s);
4 c" \3 k" a  s8 Z) u; I! `for(i=0,j=n-1;i<j;i++,j--), m% g: p; }5 d! m( S
  if(s[i]!=s[j])   break;
+ h0 d: Y: |2 ~! g& w7 P$ ]) R. ?7 [- ]if(i>=j) printf("是回文串\n");5 |( F/ @7 j7 T8 D3 n
else     printf("不是回文串\n");
% U4 U$ A  D0 {5 m# h$ q}& f2 G; n$ W4 }  R+ I) X) S

$ H  ~7 E7 W4 o8 b17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
0 B9 d3 m% Z+ w' t5 v#include<stdio.h>7 [# N0 r3 F, x, ]
void fun(int a[],int n)! l8 I# i! Q, a5 M
{int i,j,t;$ H/ P) C. e5 i' t6 r
for(i=0;i<=n-1;i++)& f9 e& U+ L6 A3 N+ m% q8 c; U
for(j=0;j<i;j++)
% _7 o5 `2 j+ x/ w  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}! M! Q$ W+ s# W( g$ B
}; I9 [) `# ~4 R  m
main(). ]4 m$ m. x. X' }6 k
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;& m# j! [4 y" O$ s; |
FILE *f;
& w" T( [, i5 R3 ~/ Yif((f=fopen("myf2.out","w"))==NULL)' p7 n- U. D: ^
printf("open file myf2.out failed!\n");. V  Y- J2 O+ O7 m0 Z) p
fun(a,10);6 Q, g1 Q2 V% N, M( ^
for(i=0;i<10;i++)6 ^; z  t- `0 J. v; X1 L
{printf("%4d",a[i]);
* L% B- X$ b5 a1 C8 i  fprintf(f,"%4d",a[i]);
" o0 f5 T+ c4 V: k, _' j }
  K6 S& ]: E) a. l: I# ^fclose(f);
& D% ]6 I( C& ?8 l0 d3 Y) y}' C. l' D& i! T8 c! w/ z* [1 K

  J2 G2 v  Y+ r, x& D% t18、编写函数countpi,利用公式" x' d  v) u$ F: J
     ( O# [5 }% E0 M! h+ R
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
5 V/ `# P( L6 @8 r#include<stdio.h>
9 f7 K# c) \) X0 C( b9 {double countpi(double eps)               /*eps为允许误差*/6 \/ p5 n! M" G9 g, @% D' j( u
{
  B2 l. |% J4 R0 h" i9 [. ~  int m=1;! b3 ^+ a3 [7 b
   double temp=1.0,s=0;3 v7 [; r  A; v9 b6 Q* V
   while(temp>=eps)
9 U& k, h4 _! p+ T) u/ j   {  s+=temp;/ ^9 _' c3 W/ b: t% \
      temp=temp*m/(2*m+1);
! V! S% I8 ]7 L! J3 M: G) a      m++;
6 ]  p% J' U8 O8 |0 }5 d   }' v5 a/ U- G$ J
   return(2*s);
( p9 X! a# E9 F+ h& _& p& ?1 Q}
% T, d) e' a* Y7 A) ~. a4 e# ?main()1 F8 l5 ^" `7 P$ Z9 I2 Z( `4 |; e; y
{FILE *fp;
( d) g: g! u3 W! b( J   double eps=1e-5,pi;
( R) d5 w$ |5 E3 l1 i: W9 ?3 i   if((fp=fopen("p7_3.out","w"))==NULL); i* F' ^3 ~& k0 \: }) X2 Y* @! |
{ printf("cannot open the file\n");; R0 O2 a9 D- ~; R
   exit(0);                      . c! J) A" M9 Y1 O+ o) O1 Y
}$ \3 ]: h/ M5 S8 c' Z8 u
pi= countpi(eps);
% _! ~5 u. D, c+ A8 W: e# p" V/ P0 V printf("pi=%lf\n",pi);
+ z- f5 i- `+ P( Hfprintf(fp,"pi=%lf\n",pi);- |8 J7 j' M! g1 N2 A1 K
fclose(fp);
9 F- M" N+ u3 L}
分享到:  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 | 只看该作者
感谢分享
+ Q3 Z! [$ Q# C! y3 o

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 01:45 , Processed in 0.065809 second(s), 31 queries , Gzip On.

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

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

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