找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x

) s- L* |1 V5 M" a* h, ?2 [1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
: b! R( G% w7 q! X$ }1 `, e: Y#include "stdio.h"
$ E4 n; W/ J7 ]$ F0 L; zmain()$ g" l  D2 V' k- K
{int i,j,result;$ x/ k! q+ ~1 A4 k* L* b# m9 [# n
for (i=1;i<10;i++)' @; g8 A' f. g0 a* P
{ for(j=1;j<10;j++)
1 W; h' ]: q, M  K# K5 n     {
9 \* p* W2 ]$ ~; {5 Q0 B; @        result=i*j;
6 `8 @' z$ J5 M+ U# b; K/ X$ t; |' R        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
% _" I+ D0 A- O& _  G% y4 `! Q, R     }, [$ ?2 r7 Q2 }  |) Y
    printf("\n");/*每一行后换行*/
# {& s8 r' v; c6 X4 y }5 `* v( P- M& s6 h  k1 {7 o( @8 q, _
}
; P2 p# D; a' J$ o/ |$ B' M/ h. d9 G! X" ?
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?6 U+ A6 P& F8 [& a9 j! H& Y
兔子的规律为数列1,1,2,3,5,8,13,21....*/
" Y1 K. @+ _! s; A5 j/ i& T" B! L- Fmain()% x' ?- J" U$ a1 m! D
{& B0 g: H' b0 Z) z" a3 A; g2 \
long f1,f2;
/ `6 Q9 q. c% w; l" y+ Nint i;( W# B8 k3 K1 V/ X7 D
f1=f2=1;
; H) P" w; o0 h. Vfor(i=1;i<=20;i++)
- ?9 B  c( T$ h  a1 }2 a{ printf("%12ld %12ld",f1,f2);$ q0 v0 ^7 z+ w7 T) H8 X
   if(i%2==0) printf("\n");/*控制输出,每行四个*/  d6 D% W( G, q- s/ z4 ]2 Q
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/) J. R0 I4 m2 u  z2 v& K# W9 P
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/
& @  n# ^; ^' M' { }- ^8 N. Q# X) V, I
}; n- }/ m* B! z* ~4 G8 q4 m' Q
% v, D! D* x6 n( G9 j2 A: K
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。1 Y: b2 v$ ~; g
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,3 }  l# o, @' L! |0 R6 Y
     则表明此数不是素数,反之是素数。*/$ p6 H5 y9 E7 L7 m0 M+ a
#include "math.h"1 A: a5 ~% q4 X' F- Y5 w1 X
main()
+ b1 `  p, t% `! I7 G" X$ j{
5 @. b* y2 J7 O/ q, cint m,i,k,h=0,leap=1;
/ }3 t+ W- F0 `' y( V" Iprintf("\n");+ _& ^" q3 `" i8 U, h0 t
for(m=101;m<=200;m++)
" b' {( ~3 \) K4 e) w; H { k=sqrt(m+1);
$ l: i* X) M3 A( i- U& L: p   for(i=2;i<=k;i++)
, z7 H3 J" @! G( Q0 z2 X: f& G     if(m%i==0)8 x" V5 K5 a4 e1 x! y0 h
        {leap=0;break;}! }% X) u0 V- N! m: Z' S: G$ h
     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/& b9 {- O0 I! Y$ D- `
        {printf("%-4d",m);h++;
0 {. z' d6 s" i         if(h%10==0)
) g" m7 }( S5 |6 p& r) P  G7 u" c' G7 V             printf("\n");; t* H! Z+ J1 W: r8 p
        }
1 [$ f" G# @4 }& b) ^, h6 V# t9 i  |   leap=1;/ g* D$ Q8 ^3 Q& @; ]
}
4 \: I8 `; ^) z8 n' u5 [printf("\nThe total is %d",h);) X2 p% W. Z3 T) A' I+ Z9 L  j, }
}
" `/ b% g, m, V8 o/ x! }9 W7 @9 |- K
. J) X6 U! T( O  y; k* R; y4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程- j- D% ~$ p  H! \8 O6 {# h) K
   找出1000以内的所有完数。*/* ^9 k( R/ X& R  O* _* w
main()
7 i) |7 A0 ^1 Q. P) l{& ], I! }, `/ r# r$ E
static int k[10];5 b3 t7 l+ t) O1 M- j
int i,j,n,s;
5 T; E0 x- g4 e2 P: Q4 kfor(j=2;j<1000;j++)
  w$ k( A0 g  A4 R4 b  {
8 R- _- }6 q" W   n=-1;
4 m$ Q( c# U4 ]2 D7 I5 {& s3 ~+ z5 b   s=j;4 Y! H2 B( j" Z2 P* e1 [
   for(i=1;i<j;i++)8 D" U- H9 Z' Y& A; x* Z# s4 I
     {if((j%i)==0)! b2 y4 j0 s) [8 [1 b& j" t! ^$ T& C
        {  n++;4 x* D) Q/ u8 J8 M' E% Z8 _& a
           s=s-i;
3 n" Z  T* I8 p3 j; {6 l; a/ \           k[n]=i;
6 r3 j2 d# U8 o8 M- B; J        }
8 W2 R- K1 m2 b1 `     }
4 ?; j% \) H2 ~& d7 A  E) R% `& D. uif(s==0)
. B$ b' `4 h( q5 S# C( Z {printf("%d is a wanshu:  ",j);" n* J+ k# _$ |# @  _+ J
  for(i=0;i<n;i++)) }( @1 n$ P! `4 z" A
      printf("%d,",k[i]);# Z, I, D; N: L. m
  printf("%d\n",k[n]);- [" S3 Z# }9 o" H8 ?; z% i
}
+ ^, f* s1 ^  C' Q. o}9 \* B# c$ K& D- j
}" z2 \# i) L, j4 q5 H! Z5 h) y' `
+ w" Q) A- m: s( o1 P9 ^
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,3 c" D  \1 Y, M: i2 u& B
请在空白处完善程序。*/% w7 N% j9 r5 H7 A
main()
" [' t* Q8 @3 \: n9 v3 b{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/
* {$ F2 `' g% v- z0 v0 s/ ? printf("input 16 numbers: ");
) p1 f7 w" w$ P0 L$ K0 p$ z5 p& Z/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/9 h$ c/ t  F/ f2 ^0 u/ J* v
for(i=0;i<4;i++)& e" Z5 ?; G' {- o+ J3 m  C3 y! A
     for(j=0;j<4;j++)$ M/ m' j/ {7 b5 J  p' }
     {  scanf("%d",&a[i][j]);
- n" p( x( N2 v7 ]+ ?3 x        b[3-j][i]=a[i][j];7 ^0 s) {! X5 ^/ n+ P, e
      }- [* J' W% [: C9 C! Z5 f
printf("array b:\n");
# v5 z4 b0 j4 A! q' N& y for(i=0;i<4;i++)* j3 ?' X' G2 i' e
    {  for(j=0;j<4;j++)' Y+ ]  Z- ^7 j8 D" }, W
       printf("%6d",b[i][j]);7 O+ t0 H+ r1 M! s( F
       printf("\n");
: u" D, N  z( r/ j* z  r     }1 Q9 i( W2 s* E& S% j) T- e
}
6 o1 Y$ c; D9 _9 a) r, ~/ _; @$ @/ l! C, ]
6、/*编程打印直角杨辉三角形*/
: f- d+ n9 v' ]; z) _main()/ c/ C( Q) G9 `9 P/ M5 _) v
{int i,j,a[6][6];' @4 S1 X* D- F; ?
for(i=0;i<=5;i++)' a% a0 J9 k& D: I. j/ J
{a[i][i]=1;a[i][0]=1;}. W0 S9 ?5 V3 `* k
for(i=2;i<=5;i++)
- M1 b3 a+ x% c! M  for(j=1;j<=i-1;j++)) [# e/ t# u  L% f
   a[i][j]=a[i-1][j]+a[i-1][j-1];& s8 {1 `( r( U8 N" K& o+ P" b
for(i=0;i<=5;i++)
% z6 z7 ~% A: `9 y% ~- K  {for(j=0;j<=i;j++)! G4 N  o1 f4 |: P5 z
      printf("%4d",a[i][j]);
" o8 Q8 h, z# P( `" v   printf("\n");}
- D7 ?1 ~! g1 J3 u}
; g. k+ I1 ?" N9 @6 G
9 ~0 ~9 |. a% ~$ p  ^* X& `7、/*通过键盘输入3名学生4门课程的成绩,
6 a( p9 D) u2 v分别求每个学生的平均成绩和每门课程的平均成绩。5 |* g% c  k8 K& B- H: l, e( s* h7 @8 B
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
9 V" ^% f- a( N3 S# `) p1 k其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/$ ^0 f9 Y3 r  c8 b: M% X0 v
#include <stdio.h>/ C2 {( A5 f* l4 a- p
#include <stdlib.h>  T# A9 j( p  T2 a' L0 f
main()
6 B' J3 h: F2 [4 L* Y$ z" U8 b0 C{ float a[4][5],sum1,sum2;
, V# ]5 e% U4 yint i,j;5 a' q" T9 k6 G& w
for(i=0;i<3;i++)9 i, L6 @& s1 K, ~0 O
  for(j=0;j<4;j++)
( P! I6 M2 w( S' E    scanf("%f",&a[i][j]);* L) ^+ n7 H& l3 \
for(i=0;i<3;i++)
+ {. I5 z1 Y% r% H* W{ sum1=0;
6 s; O' B* d8 C  h" ~  for(j=0;j<4;j++)0 b) n2 u& n4 N6 ?2 s- Q# Y
    sum1+=a[i][j];
8 Z# n6 T1 [+ l. ~9 R% l    a[i][4]=sum1/4;
, i& e6 o  R$ R7 J9 a+ x  Q}
' I/ s1 X) q! F4 ?for(j=0;j<5;j++)
6 l* |2 T( z, N7 T& N  Q+ i: A" `4 _{  sum2=0;
8 F* k4 r% q& N* ?* C   for(i=0;i<3;i++)
& @. D- E' c1 R# t% ^     sum2+=a[i][j];
7 |2 |% v) J& ~5 v# r$ _     a[3][j]=sum2/3;
7 @6 `4 h( w6 _" ? }
0 k: z: h$ i2 A for(i=0;i<4;i++)
, R7 j4 j6 H4 c: J$ F {  for(j=0;j<5;j++)( s, }2 b; h) q, m- @  Z8 p. g! \
    printf("%6.2f",a[i][j]);
/ W% k4 U+ ^( @. o# c; [' L    printf("\n");
- T0 {$ x) @1 s7 ~& p }& X2 ~) @$ t) {: W6 Z
}
- |% b7 T3 a5 [( E8 K* s
: R0 S5 ^6 G/ y' ]' i4 M8、/*完善程序,实现将输入的字符串反序输出,
; J( c9 V4 d3 S6 V) O如输入windows 输出swodniw。*/7 ^$ ~) ^. V, }) t" w
#include <string.h>
" t+ K3 e+ k' L3 K. `; G: W) jmain()
/ V: G$ {$ g: K7 o+ k{  char  c[200],c1;- X1 u1 H: U2 J- T9 Z
int i,j,k;) @- Y. h) f( H- q
printf("Enter a string: ");
5 g: r% D. Y+ t1 [; L scanf("%s",c);, ]; n+ w5 K7 o$ _
k=strlen(c);
, ^/ u7 M8 _+ e, X# E for (i=0,j=k-1;i<k/2;i++,j--)
- R1 l' D1 |) J& V   {  c1=c[i];c[i]=c[j];c[j]=c1;  }4 J: k8 f/ W$ Z: P: |0 K- t8 d
printf("%s\n",c);        
  h% z5 F2 E/ C9 R. T; b}
) B( x  M( C. r指针法:2 H$ G% _& u1 i' H! y
void invert(char *s)
: h: a0 e+ N4 J{int i,j,k;
9 t- `2 h3 C/ i8 `: s6 achar t;
1 h7 p! Z% w! ?3 z: n1 N( ]/ Q+ t5 Ek=strlen(s);$ w' R1 A8 A! J3 X2 f3 E' _5 Z
for(i=0,j=k-1;i<k/2;i++,j--)! O* w0 \: _! p6 I1 M
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
4 \7 S+ P' i: Z* e- y; z5 v( P4 q5 M}2 c4 ?' z8 t9 w) p/ G+ _
main()
! R" x3 s' W6 B' _5 R& b{ FILE *fp;0 I/ @7 b) r3 \
char str[200],*p,i,j;2 ~# @* U! n$ L1 t
if((fp=fopen("p9_2.out","w"))==NULL) ! b' L) l0 E) O! ?  I0 R; M, J2 z
      { printf("cannot open the file\n");' A# e  h$ h6 y: o4 y/ [/ y2 ]: {
        exit(0);                       2 ^, D0 B9 q3 _3 I: D7 Q
      }
* Q) ^" w; S- ^ printf("input str:\n");
4 W' @7 x$ g) bgets(str);9 Q# r& o6 J3 v4 t7 L4 r
printf(“\n%s”,str);
0 O8 T9 q( u& {5 G: Ofprintf(fp,“%s”,str);* {9 X/ r& `5 U/ E4 X2 Z* C4 R) A; P
invert(str);
& ^) [  f5 ]- g2 i- J2 U  printf(“\n%s”,str);. e$ I6 [9 g4 o$ ]3 L$ n
fprintf(fp,“\n%s”,str);
, r' J! S$ I! R, }4 p/ efclose(fp);
  S6 p% S& |, X}
2 n3 a  e1 X- f
- D9 @5 |& E; x7 R9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/) _) q  M  Q0 V3 m' a: o  ?$ p
#include <stdio.h>$ j3 S! ?$ t8 V( m$ c* _7 c8 r
main()4 o4 P7 \- l, h4 N
{  char  s[80],c;2 ~* j; u, V: F  p! O% M
int  j,k;
8 W" M" w& b5 z printf("\nEnter a string: ");
. R9 q4 ^9 v: S  {- w8 J) i3 f1 A gets(s);
9 f0 N- F. N8 ~/ V' c. S printf("\nEnter a character: ");7 S% B0 z! C- ~- i( P  n
c=getchar( );" b8 v; c; {! F* V' R* a
for(j=k=0;s[j]!= '\0';j++)6 {; M& _& I  r
if(s[j]!=c)
! D$ g9 k/ k, e% ~5 V" D    s[k++]=s[j];
; L: G' i/ R( b1 @$ ]3 C s[k]= '\0';
! s) o# M4 }% e2 Q printf("\n%s",s);
) ?9 ?# Q) ^2 U6 h3 Y$ j: x, V2 F8 j}
3 X3 j. ~( R  t8 a& F0 d* d6 l( p; W: |7 C
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
8 G! U6 ]2 e+ M9 U8 E" {5 }排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
5 j: r0 a$ X2 @; g6 N  P- K2 j0 e#include<stdio.h>6 r" _7 W# ]0 [- n+ g% ?5 z
void sort(int *x,int n)
$ V* e) a6 _  d6 Y( L{
3 B3 s8 ^6 U# P6 k" iint i,j,k,t;9 o5 a, X! R" o2 s8 w3 C, k0 X
for(i=0;i<n-1;i++)
/ c/ [( C+ |* a5 ~( x$ j{# d' I) g# P, u4 r/ x4 f9 d1 |( U
k=i;
3 C) o* _0 m3 d* C; ufor(j=i+1;j<n;j++)5 k- R+ j0 {4 @4 R" d5 s) d7 Y
if(x[j]>x[k]) k=j;% Z2 B  {# K* t1 z" [* \8 n/ i- F3 K
if(k!=i)+ F/ m& ~; V0 E9 g4 _! g  ~' ]$ N
{* h. e: [$ O  @4 ]
  t=x[i];% N3 ~% m" j: I7 R: o
  x[i]=x[k];! |. c$ X3 U4 U/ D3 U+ q6 V
  x[k]=t;
. Z" R4 y+ ~2 z, t! b }2 G7 `# n, T0 D
}+ x' ~6 x2 _# Y* N0 A+ P
}' D  Y, W" N7 P% g* z4 G9 I: C
void main()
1 N) }9 d7 ?% \4 G* G{FILE *fp;1 c# H8 y$ ^) b1 }# C/ }/ t; o! ^
   int *p,i,a[10];
' p6 \& Q0 @$ {) g! I   fp=fopen("p9_1.out","w");                      * b& W) _7 _3 }: H# G+ w
  p=a;0 w7 _) `" \4 _! c6 `  V
printf("Input 10 numbers:");
: |& l. `5 K% S# w; t0 V) ~4 [7 dfor(i=0;i<10;i++)5 Z) W  ^6 j$ f4 M' R) Q8 i
scanf("%d",p++);
9 q" ]8 a* J; Z2 m6 \" R5 p+ ?p=a;
, r) M% \. Z' H/ m6 c$ H) r9 o: I* Fsort(p,10);; |  w3 }& g; Y& }2 l8 C
for(;p<a+10;p++)
" c# `, D; L8 k/ I: ?: m{  printf("%d ",*p);  }1 L$ S6 Q' A$ C0 {
      fprintf(fp,"%d ",*p);  }3 s6 y* Z" u) t! Q) W! C
      system("pause");
( h$ C; r3 m4 g" w, o6 M! O/ r  fclose(fp);
0 s' \1 [5 x8 L, c# h0 I}
" @4 [! s. g6 D, Y5 }! ^
4 |' _$ a( T& F! M& X& [11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
7 Q' w* I; B( x8 q+ x* b5 b  main()
9 N/ p# g2 k$ X7 g# S$ O: n( h5 s  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/
  }) y4 x2 Y; Z4 X3 I     int  x , i, j=6;                         /*j为元素个数*/% @# v* u' ]5 L% s+ X9 h* L
     printf("Enter a number: ");8 |* u" i& k; [' P
     scanf("%d",&x);
0 ^9 k6 W: [' n; Q     a[0]=x;& L* v4 v1 H) a; u( a' y
     i=j;                               /*从最后一个单元开始*/
% d: x; l- h% H, A  x     while(a[i]>x)
6 T$ O$ r8 Z! X     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/) R& x& f$ E8 B3 k
     a[++i]=x;0 Z7 a/ ^3 C1 F( W) y3 L' H* i
     j++;                       /*插入x后元素总个数增加*/' R! u7 I7 i! X) T. |
     for(i=1;i<=j;i++) printf("%8d",a[i]);
9 N3 K7 W! t+ s8 u3 `5 y     printf("\n");4 i' M0 p6 I/ Z4 C0 o/ z% W
}6 y$ [; x7 @* ?. W8 s
! @, w) D# N) K* t

. p; j2 x* u: M# p12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
( o+ T4 {+ r2 C) c2 u2 g#include<stdio.h>! P6 x; f$ ~4 W  \8 m, A. M
replace(char *s,char c1,char c2)
/ D, i) o, S" J' R4 M{ while(*s!='\0')* Q0 y1 T! e0 b5 ~. W' ^1 t
{  if (*s==c1)9 y1 T2 L4 N( i
       *s=c2;8 x4 ]6 ~2 M1 c0 k; p+ W
       s++;
9 `2 E0 _+ `9 p' D9 |2 d }
9 j% `  v+ c! n" U# G) q. y+ p6 j" \$ z}
7 \4 U4 L! {( R- O9 r  ?4 Amain()
6 r# Y/ I! B. R; g{ FILE *fp;: o9 e# v# o5 Y5 j  W
char str[100],a,b;+ C; T7 U2 {& Q# n! p$ D& _
if((fp=fopen("p10_2.out","w"))==NULL)% o% Z& C4 v* L/ I! \
    { printf("cannot open the file\n");: v( `. D. r0 l
     exit(0);                     }
2 m& }' M: w( V& X3 s6 G" f printf("Enter a string:\n");
- t8 N4 j% f( s( s: i$ b" f  gets(str);
7 L1 v( _! x3 H( l6 m  ?3 N  printf("Enter a&&b:\n");- B, e, Q" N" \6 a# J
  scanf("%c,%c",&a,&b);9 p7 E$ n8 Z: |. L
printf("%s\n",str);/ ^* t/ K/ K& k& ~
fprintf(fp,"%s\n",str);% g4 b$ V2 i" F3 j7 t0 d) l
replace(str,a,b);
' w4 X3 i2 h: M" s- V# oprintf("The new string is----%s\n",str);
9 V7 s" E9 x: V, x8 W" Pfprintf(fp,"The new string is----%s\n",str);+ x: b/ Y9 A/ z% c& i# o
fclose(fp);' S" i- V$ u/ c1 e7 `: L7 o3 d; R0 s
}! F& Q+ V" \8 n

8 s; d( ^) v( m& b13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
- L5 b$ I/ V+ U9 G; ~0 Z,不存在则返回-1。*/
  ]1 L4 ^/ \1 Z. z! hmain()4 K# `- N  u- p; G9 r  h
{char s1[6]="thisis";char s2[5]="is";
& V5 A# O$ O  k4 dprintf("%d\n",search(s1,s2));
1 ?; Q1 p& Z8 K. ]* ~system("pause");1 j. d# {  q* {" b: O% ~
}
3 Z  D( p. w" g/ Tint search(char s1[],char s2[])
. |2 \3 e( r# P2 w! o4 z* F8 Y" O& s{int i=0,j,len=strlen(s2);. Q  _8 [; X" ^7 [  q+ j1 V1 P- ?
while(s1[i]){5 O4 P( i1 V1 O, A
for(j=0;j<len;j++)9 I' D1 o2 F9 ^5 i5 p
if(s1[i+j]!=s2[j]) break;+ [, s# b) S8 l* C. j9 r' Y2 t
if(j>=len)return i;5 l  L. Z) t1 U2 x# z- Z( H
else i++;
! v: q/ {6 G4 E+ j}
" }3 r) M+ M4 P, [return -1;
; f: f# U6 w0 e; l. e  _}# ~( d/ t( h4 y3 T- W0 w5 F
5 I. d6 s% t1 V$ M) u. M
14、/*用指针变量输出结构体数组元素。*/6 T; I. y$ |+ B' I7 `/ s
struct student
, a# e: U2 k9 o7 i2 P/ i{
8 {# u3 N* ~( |4 A- M7 F+ Z' sint num;
/ K, g$ C! w9 ~  L' d5 x2 [char *name;
- K1 q6 e. U+ N8 Ichar sex;; S3 _$ B( m# F1 v- ?( J: L2 H* N2 w
int age;' e6 O  {/ }: {  {5 l$ O
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};. g4 E( g, E/ d
main()5 x0 ]; n2 i/ j
{int i;
2 h# N7 b& ?- I- A. r; Bstruct student *ps;
0 C4 |# d6 W/ P* Oprintf("Num \tName\t\t\tSex\tAge\t\n");  0 {8 H5 W0 X* z0 r% F1 c7 z
/*用指针变量输出结构体数组元素。*/" ?6 A0 S0 q- i9 g
for(ps=stu;ps<stu+5;ps++)% n3 j- k6 b  i- b
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
  ?  q; p; b+ b" l! z  n& P/*用数组下标法输出结构体数组元素学号和年龄。*/, E% [+ g6 j, I9 o7 [8 _
for(i=0;i<5;i++)& S- P1 X# D( c3 }9 k7 b# z
printf("%d\t%d\t\n",stu[i].num,stu[i].age);9 T& B& o: q( m" u
}
+ N& x& U: |" |' V- m/ u3 b
$ n% _4 [, ]0 F+ T. Z15、/*建立一个有三个结点的简单链表:*/
7 K' T8 q: |; J" }6 p( t4 B#define NULL 0- B4 |' [6 H  Z  _
struct student
- |) y" Y, o! t" {  [8 n{) c; i: r1 g+ x8 T7 I
int num;
& S# K* l9 C7 x/ \2 @7 schar *name;* I3 ^& a- ~" @$ @! H/ I# C6 O
int age ;
9 E. _3 S) Y+ v/ ^; A' q& |, l2 Wstruct student *next;
- T- g( v. X6 p, b3 t, m};! {3 |4 m' _# q! @6 \$ ^( C" d
void main()
' v+ _6 @0 F' L  x# @% }1 K{, Y4 B/ s7 B2 t5 S0 i' F
struct student a,b,c,*head,*p;, K0 t0 k% C. J5 _
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */
) h9 h8 c% W; @" ^$ |! qb.num=1002; b.name="liuxing"; b.age=19;! L, |, D& I  [& `* E, c" |
c.num=1003; c.name="huangke"; c.age=18;5 R+ c7 n. z# t- }& H5 b# t5 N5 q
head=&a;                           /*  建立链表,a为头结点  */
5 |% j+ W( Y. Oa.next=&b;
# A8 S9 [0 W7 M% t* pb.next=&c;8 d  q( l5 a; X6 O4 V  c* t
c.next=NULL;
. k) b3 V3 m- x" L) r; q: g; mp=head;                            /*  输出链表  */
7 Q/ F4 i: r9 f& Mdo{
0 e/ f& M% |: [4 v) C/ Pprintf("%5d,%s,%3d\n",p->num,p->name,p->age);! p- b! t% u+ Q- P2 f/ P
p=p->next;
, S" d4 p  x* b- ?* Y" w}while(p!=NULL);8 x( x  k- Q5 b$ F
}7 G. \( {+ X$ g, }: x, a+ R1 n
. S6 D0 U% f/ Z
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/: Q3 v) N6 P$ M
#include <stdio.h>
7 m3 F4 o0 q; F; H; x  |: i" T#include <string.h>$ k( e/ p  H& f4 v7 E: r0 h. T. Q
#include<string.h># X1 u6 Y& V: j; b
main()
- ]8 T& }9 [" G- ~# y{ char s[100];
# k8 A4 H, p! m" P$ v9 L6 m3 nint i,j,n;7 h  O. h, `" o: `7 |: U
printf("输入字符串:\n");
4 K2 w+ u' f# P  q! Z5 \gets(s);# y6 v0 x8 ]2 b; R) a1 g) E4 M
n=strlen(s);
7 C! p0 B! [2 u. k8 Ifor(i=0,j=n-1;i<j;i++,j--)4 Z$ K. l# O$ m7 z: X% s: Y7 Y
  if(s[i]!=s[j])   break;
  |3 g" _& N' S6 X+ P6 ?; Kif(i>=j) printf("是回文串\n");9 k+ }7 o' C9 H( t" z1 ?( r% B' b
else     printf("不是回文串\n");
- H# Q- u" x& P6 d" h" c4 Y}
5 L. s8 u. j' R- j& g5 S* O# u- Q
8 H7 ]' E- q5 e! C& X6 Z17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
& ?) R9 Z/ q- E9 G3 Q7 ?( ]#include<stdio.h># }8 n/ x6 E! U
void fun(int a[],int n); Q  o" ^2 Y. h- V
{int i,j,t;
. U9 a" h' L# l. A$ J1 \for(i=0;i<=n-1;i++)7 O* d1 T0 c% P7 t$ a
for(j=0;j<i;j++)
- K/ _& e, R5 a  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}' z* X. E1 j' y1 m% |
}
6 u; l5 ]! s" y+ e8 ymain()
% a* o7 I5 W3 u2 P, N+ g{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;8 s9 w: K: }! q* _1 t
FILE *f;+ r" C# V# h7 V$ d: W  ^
if((f=fopen("myf2.out","w"))==NULL)& o3 f- M# k( C8 q
printf("open file myf2.out failed!\n");. @0 H3 A6 q: `" U* f) y
fun(a,10);
$ ~; K  z. A. {) ~% [' c1 zfor(i=0;i<10;i++)
0 q+ p6 I: v& R& e( L" j3 s {printf("%4d",a[i]);8 x4 P$ F7 u) b) H
  fprintf(f,"%4d",a[i]);1 ?/ L# F) Z* Z, L
}
/ t* m" f' R5 v4 d7 y8 ufclose(f);/ B. V% }: M0 M) }  G; W
}
# L  @0 |5 U- U- Y0 i+ X+ x9 Q  e( Y5 \
18、编写函数countpi,利用公式# }1 z. G# Q1 w& o! f
     9 Q% f& E/ I- Z0 V/ e
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
  b) |. n1 X7 W0 f8 ^#include<stdio.h># p9 n, d. C! E5 E% {
double countpi(double eps)               /*eps为允许误差*/8 d3 S* E2 }1 `1 s& Q) a
{9 J) D! @1 R2 a* T* x; M* k! H
  int m=1;3 c$ c0 N5 o) \# O0 o! U  @
   double temp=1.0,s=0;, J" v, L5 S9 D! ^
   while(temp>=eps)" k" A% Q) o1 j( [3 k; t
   {  s+=temp;) V' H3 _4 ^* y1 W4 Z6 t
      temp=temp*m/(2*m+1);- T( i' N. F5 F6 n. T
      m++;
7 z$ Z7 T' O- q( L8 Z' c   }& o  j/ B3 c4 A  {+ i8 s  z: _) ]
   return(2*s);
( _  ?. _  K- ^9 d1 N! I5 v+ A+ S}# O6 j$ R9 M' u6 G( O/ b
main()
, S0 S8 G. [  H7 D  B{FILE *fp;( Z2 j' Q/ F9 b7 r( w
   double eps=1e-5,pi;2 q$ M- g8 a" k- `; \: n
   if((fp=fopen("p7_3.out","w"))==NULL)
. R! V: J& Q( {' i5 E! E5 p! s { printf("cannot open the file\n");  B5 T5 C0 I& O5 a6 m0 K) v
   exit(0);                        @0 i6 C4 y1 O/ r% L: z0 M, K
}
# I, z4 T2 S6 l pi= countpi(eps);
9 d; r2 Y7 v# c1 T printf("pi=%lf\n",pi);. b; a- t. C) n2 }
fprintf(fp,"pi=%lf\n",pi);9 o! u8 N7 ~: K5 R
fclose(fp);
5 N8 l# g" z$ j! C+ Z* a8 G}
分享到:  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 ~# y  ?1 W. Q+ ?( j; z( q+ \

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-9-19 09:35 , Processed in 0.064567 second(s), 31 queries , Gzip On.

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

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

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