找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x

% O1 Q; H2 p; x: v+ N2 r6 h3 w1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/4 i1 c( v/ c( ?: h; ~3 t5 M- E
#include "stdio.h"1 q2 T* }5 a" X
main()3 f& A. Y( w" @4 {4 o
{int i,j,result;
% T7 A7 V! g$ v- B; ?0 \. F; d3 t$ W3 bfor (i=1;i<10;i++)
  s* ~2 Q' V# l7 h2 k  `0 X { for(j=1;j<10;j++)
1 s/ M3 V' y# ?* s     {4 H" p9 n4 G$ d* M) `8 G
        result=i*j;
+ e" \. N. ~6 a+ P        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
7 c" E0 G: O5 l1 z4 }' f3 V2 S     }" R2 \' p% W+ w" @2 K% Y
    printf("\n");/*每一行后换行*/
& U, e7 ?) i0 K8 H& L }4 R2 _3 X7 u0 s1 H* p6 K
}
) \8 y0 K5 l; y- t% o% t! C$ [
- g" t1 f, M7 q7 L# m2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?( s8 G3 p" O$ }4 `: c+ a) j1 {2 Y
兔子的规律为数列1,1,2,3,5,8,13,21....*/
% J3 C" T. F- ~, R: wmain()% h4 I% h7 t+ f( Q3 [9 S& S2 V
{* F: S2 S& X8 O
long f1,f2;
9 v% {+ T$ G/ y/ V* uint i;
/ T; K/ ?* k0 af1=f2=1;
- \7 N* K2 S+ v* X5 s9 D4 tfor(i=1;i<=20;i++)
1 S1 d% o- F% o1 b7 w3 F{ printf("%12ld %12ld",f1,f2);
7 @3 p8 u7 H3 }# I2 q   if(i%2==0) printf("\n");/*控制输出,每行四个*/; H$ ~! R! f6 Q& r8 b
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/, ~+ q5 u- Z4 E
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/
  _2 D$ W( {9 U7 v }
- r, N3 V- S9 e% R5 @) w0 q/ f: h}
* J1 m( ]  Y2 B0 y' W; W$ _: g
" I. ?4 f. G( T0 w3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
5 |0 c- X7 _6 X* x  [' M# A+ X- _6 s- F程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
* G6 g- \: [1 W+ z% Z) M$ O  B5 A; I     则表明此数不是素数,反之是素数。*/
/ `* ?3 y2 g$ X#include "math.h"7 i2 i" G8 t, |2 W, d# u
main()
- ?& {5 [' Y* b# e{  C3 i1 A9 m. r! s! _
int m,i,k,h=0,leap=1;/ Q& i5 U) ^& \5 ]
printf("\n");4 F" g( I+ v# @% j
for(m=101;m<=200;m++)3 |( g4 |! O+ V- m+ z* T
{ k=sqrt(m+1);0 C) ]0 A/ {$ k1 m
   for(i=2;i<=k;i++)3 n* S; B5 D& N, z, u/ s
     if(m%i==0)
$ Z, M9 s' G2 o- S  `        {leap=0;break;}9 u  Z+ S: Y4 [' O* N
     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
8 W, I, V2 o2 r7 W        {printf("%-4d",m);h++;
- G, ~: @( b4 h1 k+ N& b3 M  G         if(h%10==0)$ @) U4 _% X8 `& e: I
             printf("\n");# c% S, r# q+ o# D$ j8 N
        }) s$ g# {: z8 H/ y0 O: V3 Q
   leap=1;- U. t* N  w% C3 s# ]
}
/ _' B5 s/ W- Cprintf("\nThe total is %d",h);
7 Z+ A/ O5 E$ u" I1 _3 m7 H: p3 y}6 l( b9 O+ L7 X3 f% @) B
$ L. m% z% ^" a5 {' X
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程) |0 k# m) Q* P, I7 i3 r
   找出1000以内的所有完数。*/; _1 L. D4 q, T6 u- F5 a( \( p7 M
main()! @8 P4 A4 E/ [' q# ~' ]  b
{
# n! e; \* M7 t% ]9 J$ v) V9 _. d6 wstatic int k[10];
4 G! f: J6 E/ r- v7 ~int i,j,n,s;
& M& z3 F$ \* Y+ r) L; zfor(j=2;j<1000;j++)
8 i9 B( D/ p' D3 q4 T! Y  {; [8 t& t, {5 T$ ]
   n=-1;
3 g  D" s. M) W   s=j;* A( j9 W  ]! ^# m
   for(i=1;i<j;i++)
5 W* t+ A& W( `( R+ \" k     {if((j%i)==0)3 I  H$ Q) K4 H! {+ V) z
        {  n++;
, u# Z- E9 \- @4 E7 r5 s4 p  G           s=s-i;8 H$ ^. E6 H6 ?  w. v4 J
           k[n]=i;
2 L! o- U) \  `1 G) L5 C, t4 |% j( y        }
: D9 _1 E" g: w     }6 \' B3 t( l- d& j
if(s==0)
+ T& D# A! U$ I( f {printf("%d is a wanshu:  ",j);
# L$ U. D  C* Y6 j4 A9 U  for(i=0;i<n;i++)/ K3 X7 Y( k  u* A3 s) I
      printf("%d,",k[i]);
/ e# Q# R  h* @& ~2 v  printf("%d\n",k[n]);
# N( Z. w" ~) T# I  p6 v }; o6 c: P* W6 _8 T. x
}6 p( d( {+ i7 j) F0 Y! z
}2 O5 w& n+ L) H5 h, K4 D# y: n1 B
4 p" d  P. {+ s9 n: M! T+ S- L
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
( a0 N& @. `, m; m- ^请在空白处完善程序。*/
8 V6 _. t) T% ?. o8 X0 m5 u# Amain()' ?5 y8 w$ h/ W" `; U8 V% C9 {
{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/- m: y6 s5 P+ p3 L& j
printf("input 16 numbers: ");
* b' _" }8 _: r  Y, Y/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/" [8 C/ p- K, S9 E9 ^
for(i=0;i<4;i++)/ ?" Q, @6 P9 ~" A  ?' K
     for(j=0;j<4;j++). L; D: O/ ]' N* }( k" F9 L
     {  scanf("%d",&a[i][j]);
- u3 {8 b: B7 i% M, W; _        b[3-j][i]=a[i][j];% |& }9 h1 W0 u2 h
      }
$ q3 x! a5 a$ X$ Y printf("array b:\n");
! g, E4 O3 c- N' ?5 a0 f+ ?8 M for(i=0;i<4;i++)
+ v- z: J' c+ r, p$ p! T    {  for(j=0;j<4;j++)2 W0 d: U5 _+ o: d5 N" Y4 V
       printf("%6d",b[i][j]);5 n# R  Z; G- I$ Y- q8 M& E
       printf("\n");' S# w/ R, M2 Z" f' h
     }. _- ?7 ~$ j+ k9 g+ O
}9 p4 I" A5 K  ?% {" U1 a

/ H( f8 w* e' ]. x3 I6、/*编程打印直角杨辉三角形*/! i; Q$ t, t" t. c7 L, W
main()" M  P! z. E$ \. Q2 d. f1 I; r( n
{int i,j,a[6][6];9 F+ b9 I- G4 q! ?; c0 U# ^
for(i=0;i<=5;i++)
5 G/ K4 L0 Q' C2 w6 o2 a, b{a[i][i]=1;a[i][0]=1;}
' }- ?5 H( l  v1 z' zfor(i=2;i<=5;i++)
' Y7 r( c. h4 W, W' g  for(j=1;j<=i-1;j++)
# ?# Y- J4 n9 Z2 C6 C9 d   a[i][j]=a[i-1][j]+a[i-1][j-1];9 {" _1 T9 P/ _; k4 Z% A& V6 e
for(i=0;i<=5;i++)
! y" [% ~  y$ n  {for(j=0;j<=i;j++)* r  ]0 D* r/ _& m. h  I
      printf("%4d",a[i][j]);
" I$ c2 C2 G: b- ^6 v% x# L3 [   printf("\n");}- I) p( v) w$ ]2 ^) E
}" a# x$ |5 U/ g' K' c3 v* q

1 r9 Y! l0 ?' J* P7、/*通过键盘输入3名学生4门课程的成绩,1 c" E4 Y% t& s$ y9 M* b4 C
分别求每个学生的平均成绩和每门课程的平均成绩。
# L; A$ I8 \: a' V: v! L. _要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
% `4 z' u3 A' m& L5 Y其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
, N, a: `& J; R6 F; q' F) I#include <stdio.h>2 a& S& Z1 s7 D
#include <stdlib.h>' t5 x  j) O- W9 t4 n
main(): _7 P! ]+ J3 {2 C
{ float a[4][5],sum1,sum2;
/ n( P4 s7 Z2 C  H- F' vint i,j;9 |- C# ]3 F) H
for(i=0;i<3;i++)5 Y8 z2 ?0 Z7 [/ x5 H! w- X: l
  for(j=0;j<4;j++)$ s2 p) k  Q2 H. ^
    scanf("%f",&a[i][j]);
, |2 }9 u) x) b% z6 G, }: Q( Q' Ffor(i=0;i<3;i++)& M% m5 M0 J' ?3 c  d
{ sum1=0;2 }3 z4 p7 C. @8 H3 q- N- C* W( B
  for(j=0;j<4;j++). b) R/ |0 _, K0 M7 i% `4 Y
    sum1+=a[i][j];" i! Q, V$ l% G  s+ r3 m7 ^
    a[i][4]=sum1/4;
. l8 `8 v6 |, K) L, @) R, Z}7 Y' w. o% X% q  g: x
for(j=0;j<5;j++)
: a7 J9 |. ?7 c) f. {2 r{  sum2=0;
+ r( A* W1 P: }   for(i=0;i<3;i++)
8 R# Z( N* m3 g( J' v     sum2+=a[i][j];
% j" V* n+ U& U3 |& W) I     a[3][j]=sum2/3;
9 }1 f- w, H' f0 h }# `6 _/ O* W0 Q& m
for(i=0;i<4;i++)
% D0 b; r5 B' x {  for(j=0;j<5;j++)4 G9 ?* P9 e; R& M5 s4 w
    printf("%6.2f",a[i][j]);- ^/ L1 ]& ^1 x0 O5 s
    printf("\n");1 M9 j9 o$ ^: R" k* M( u0 ~5 d8 Z
}
0 d( [" H  ~0 k/ d}& k" h. ]8 ^/ Q% G! x# \

8 n: g! ?) E! f7 Y$ d& D8、/*完善程序,实现将输入的字符串反序输出,
" c. D& y* z2 y* E. N* s如输入windows 输出swodniw。*/' D! N9 O$ [/ k( ?! p
#include <string.h>, F9 K3 k- O" |( v5 P$ [8 D
main()9 {0 h/ m6 m& I0 T1 v
{  char  c[200],c1;% c, c* g3 E: \& Z: @: ?
int i,j,k;
/ D' p- W7 K( t' @2 a printf("Enter a string: ");4 N2 F, q9 q" {! u" y' b# M: [
scanf("%s",c);2 s5 v; ]& b7 k
k=strlen(c);1 L+ c2 |) f5 T& o9 S
for (i=0,j=k-1;i<k/2;i++,j--)
0 T/ Y/ f+ ]; F/ P% |   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
1 u3 q2 M. m) } printf("%s\n",c);        ( D( R" X# x4 q0 h( a8 I
}' R1 Y1 C: _& M) t
指针法:* R8 {+ d& \9 q  e0 r
void invert(char *s)/ i2 t/ ^! H1 [3 L2 q" ~: K. x
{int i,j,k;- l+ c4 E" ~8 X& z. I" h
char t;
; j5 l( @- ^+ n, {k=strlen(s);
+ E: N3 Z4 [' q  Mfor(i=0,j=k-1;i<k/2;i++,j--)
, M. e$ k6 g8 C  i" \7 \{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }
/ `2 _0 `6 I) D8 [$ x}$ j$ t5 p+ d3 O  \
main()3 d  c) U0 f* F4 F7 s
{ FILE *fp;
1 q% K7 U$ m. T( e8 R! b" `$ } char str[200],*p,i,j;
  U5 K4 I5 y( F: q" ^ if((fp=fopen("p9_2.out","w"))==NULL) , C& G# D8 y- U4 a/ x! {
      { printf("cannot open the file\n");
8 {- E# v3 H: z* a- l1 a        exit(0);                       
/ `- q1 G. y  D1 l. k; b      }2 X" [& ]% G# y/ l$ v9 R4 t* l
printf("input str:\n");7 A( a( m8 x* z; N1 d
gets(str);, b  N& Y/ K, y6 x# s# g
printf(“\n%s”,str);
; F* I: [- d( ?- xfprintf(fp,“%s”,str);- b0 m8 c+ H" j( H  L) p
invert(str);
9 L6 t9 K7 A! z6 v  printf(“\n%s”,str);8 K8 }2 h# l, d: l! y
fprintf(fp,“\n%s”,str);
: z% J& \1 {" k! D6 A& {8 lfclose(fp);( |8 n, B' o6 D" ?/ w5 W
}
( H2 |! g- F; A; V
0 n) m# m- e5 R' T. h, n6 D9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/3 L) c& }' \, V* h
#include <stdio.h>
; u1 o4 |0 F' N" f% ?! g# zmain()+ n. i4 S% W( w4 B$ X
{  char  s[80],c;
! X+ a7 R7 O& t, K int  j,k;
2 q& Z5 _* O( q- K) R( h( I# w1 p& h printf("\nEnter a string: ");+ L& {1 s5 b; h
gets(s);9 R% |+ ^& [9 c! P* I
printf("\nEnter a character: ");
6 v3 p8 x! x0 c3 w c=getchar( );6 c$ X8 t/ I3 G/ U- X$ v
for(j=k=0;s[j]!= '\0';j++), y. z+ E0 O! k- C8 T) k7 B
if(s[j]!=c)4 \/ ~$ z- k1 o( S# f3 U
    s[k++]=s[j];7 M3 M+ t. U8 w, D% T9 n
s[k]= '\0';
: @3 n: u; C; Q# } printf("\n%s",s);8 f9 F6 O" D0 f( J
}% a/ j( d+ F1 n, c3 Q( t0 ?' ]
" M8 G( G1 ^# D% k9 X' F/ v, t5 ^  C
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
% a6 E. p. z: i# I排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/, {  _* p/ f0 }3 V. F0 S
#include<stdio.h>' k2 }9 S2 N) q2 ?! f; ^' N# k
void sort(int *x,int n)
+ s6 b* M* A) O{
; F( b, k5 Z* c6 `/ _+ hint i,j,k,t;+ \' Q, v* e$ X2 _1 A: ~
for(i=0;i<n-1;i++)
( T; d2 z* L. w( W" W7 a{6 M2 M! z' X+ D9 P4 h2 H' ]
k=i;
; N% x" X+ D( k4 F. S1 Xfor(j=i+1;j<n;j++), V# o- F/ b0 ~
if(x[j]>x[k]) k=j;4 C! V# D* J  ]
if(k!=i)8 k- |, _9 ^. `% @* }
{  Q  s: N9 {0 a. d- U; a1 ]+ V
  t=x[i];) r' I+ v$ F. s! [+ |# m: O2 k
  x[i]=x[k];
4 D- h1 V& s0 l  w# Z$ N  x[k]=t;. h1 a, S- q: U+ d
}
9 m7 r2 {; j) c* ~" F( q3 V}
+ x$ T1 j8 c' q8 [}
7 a% }; v- g1 M8 E0 Evoid main()0 s& w, c; R& W) }
{FILE *fp;" Z- w% v, c' v
   int *p,i,a[10];
. A/ p" o; w2 `- w. D" v% R& y   fp=fopen("p9_1.out","w");                     
" d6 a4 U- |( L# N; [  [  p=a;
9 [* ?: e0 m1 s0 L- V+ {* Lprintf("Input 10 numbers:");- r7 }) m$ [5 S
for(i=0;i<10;i++)
. F2 H6 @( t  v* O- A6 gscanf("%d",p++);/ A( i: B8 M. F4 t" a& t2 X5 J
p=a;1 v2 J6 O: ^& h( w! k" E
sort(p,10);9 J5 C0 F' O; ^0 b$ u/ r1 C& D
for(;p<a+10;p++)/ |: }. n( u: j. i5 i# O" |  V
{  printf("%d ",*p);; @" ~# f+ V( g3 A) v4 w
      fprintf(fp,"%d ",*p);  }
+ v2 ~7 ]% E- c" X. Q5 h* ^; z- N( |      system("pause");
+ N. W- y; x; o- v  fclose(fp);& D+ b0 X1 {) R5 A4 J1 o
}
& U4 R9 r4 S/ A7 G: G1 T  `
( p8 E# ], J1 k' ]) P, U11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/6 D$ [: R0 B( _& ^6 A6 m7 U& ^* a
  main()
. Q+ b! P: b5 y3 s* Q8 D3 L  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/* d8 ^! C7 v% u5 y3 O
     int  x , i, j=6;                         /*j为元素个数*/+ s. }! G+ V- r+ @' p
     printf("Enter a number: ");* H+ ?' G& u) j8 \- U& b- T& h$ c
     scanf("%d",&x);
% N3 G' [8 v3 o0 H     a[0]=x;
( E( Q! r1 `! ^; n( H, Z     i=j;                               /*从最后一个单元开始*/+ H$ i8 n3 q2 l% g3 d& [# K4 [& m
     while(a[i]>x)  x4 y) y& A' J  I( I- u2 e+ X% B
     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/- ?" h9 ]8 Z# K( X# n8 F
     a[++i]=x;# L0 Y# e; C  p" x! P- D7 |' a5 j1 }
     j++;                       /*插入x后元素总个数增加*/  u' S; w/ U/ p% o3 C
     for(i=1;i<=j;i++) printf("%8d",a[i]);
0 U+ P$ p- a" n9 b% f( n     printf("\n");
( M/ @; [5 ^! F" C8 i+ Q* y; w}
! k3 |0 o. V) d6 t- e% W, T
1 X7 ~" K- h3 I# S& S
: S- M  ?& p# V6 m/ ], }12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
5 P5 K" C/ H7 H9 [& ^: z+ r' \#include<stdio.h>
) A( x3 Z1 `1 Y( T4 h# S7 h' wreplace(char *s,char c1,char c2)
. ?# a  Z7 v) s4 {/ E( z{ while(*s!='\0')
! s5 a2 Y; c) k- O. f {  if (*s==c1)! ?/ w$ C# w3 O& [6 c* {
       *s=c2;' M1 X& A- Y% f1 r3 \
       s++;
* K) W7 i) O- L* \0 h }0 m" R& ]. B6 Y; @; S( k0 S- ^- c
}- P6 I# q. H' O0 t* w( a- i
main()4 T* d2 k( W& ^5 S" i8 ]- O
{ FILE *fp;" [6 F& P$ @9 X
char str[100],a,b;
# |( Y$ e- R1 X" ]( x0 _5 W if((fp=fopen("p10_2.out","w"))==NULL)
9 \4 |4 d: A8 R2 ?* X8 S* A    { printf("cannot open the file\n");
5 g( _' D; Y/ N9 B4 Y: E     exit(0);                     }
6 u% x* V! i0 u/ ^& o printf("Enter a string:\n");
( t: J8 i1 A$ s4 B! L; R2 d) ?/ [, K  gets(str);
3 g( Y9 i4 q. `$ R$ G: g  printf("Enter a&&b:\n");
( {0 ?6 C9 z& d, ?( \6 _  scanf("%c,%c",&a,&b);
) {" o7 F7 L, k3 B0 fprintf("%s\n",str);
/ Y& `9 ?; D3 ~) p! d! n4 Zfprintf(fp,"%s\n",str);3 N" b6 c* m0 A- |, B; u6 A
replace(str,a,b);) Y+ t$ y2 D  Z
printf("The new string is----%s\n",str);
9 |+ Y* M/ k4 Q4 g+ @fprintf(fp,"The new string is----%s\n",str);: m( t$ c" `/ w' R
fclose(fp);
% I) Y2 z8 I5 `1 l+ [4 Q* @. ?: W}
& p  c+ f- N4 k2 |* F7 ?
) O/ i' d/ e+ x* ]* @5 ~13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置; H5 {; K, [% U$ h1 U
,不存在则返回-1。*// n9 N- l5 w) N+ {3 j1 h* w6 {
main()7 F9 _0 Z" K, {1 f" i
{char s1[6]="thisis";char s2[5]="is";
& e& z' _/ p' X% a' K1 P; [printf("%d\n",search(s1,s2));
/ D8 n, O, T" o6 L  asystem("pause");: h/ Y9 h; v: f9 T# `
}& y0 U" g& s/ I; N/ m( v! W2 }; d
int search(char s1[],char s2[])4 Z" D# c6 I7 @# w. W
{int i=0,j,len=strlen(s2);4 z7 R0 j% ]. y* `
while(s1[i]){
( i; \& [( H6 S1 h% Jfor(j=0;j<len;j++)! E% S( z6 m  B- f. L% E
if(s1[i+j]!=s2[j]) break;
0 [5 v, |- G( s. ?2 Iif(j>=len)return i;, L9 O$ Y$ ]# K7 {& h' ^9 I" C
else i++;  B& G+ _0 p- |
}6 V2 l& U! `$ ^  ~+ Z$ v
return -1;
( J# P8 B2 W, q: Q; x2 G. Y}
+ l" f) a; M9 v! g5 G7 W/ o0 f* F, ~+ x1 q- ^1 S7 J8 z; D
14、/*用指针变量输出结构体数组元素。*/
) o5 z; L- U. b3 u5 S% {  tstruct student$ n4 n" C9 A' r
{- s) z$ ?& j. l* K' F
int num;
' u8 Q  m3 h5 K1 g& fchar *name;
" |7 E7 l  c! b# mchar sex;2 f) H" e3 C6 Q. M3 B
int age;, X/ }0 q0 A$ K* f
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};$ ]2 o1 a8 c# ^5 W
main()
4 s/ {( }) @5 y+ i8 N% @4 f' M{int i;
& ?- E5 w- z; Y5 p/ Gstruct student *ps;* E3 b. [; i. y1 K
printf("Num \tName\t\t\tSex\tAge\t\n");  5 e; C& g/ F# t0 G
/*用指针变量输出结构体数组元素。*/
) u7 N% Z. N4 D" r3 q- n& g+ Nfor(ps=stu;ps<stu+5;ps++)
6 ?" K# t# I) b  |1 z. Rprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);/ F. ?- T. z/ T
/*用数组下标法输出结构体数组元素学号和年龄。*/
6 J, _* F9 {- C5 N3 s8 _- sfor(i=0;i<5;i++)8 K/ d# Q9 n% G
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
+ m* h) Y. P- g% J+ d}
7 p% m# D3 Y7 c! Y+ e
' }4 {8 `) S  `4 H9 o: d0 m: t% i8 z15、/*建立一个有三个结点的简单链表:*/
1 c) {: L1 J3 b6 L, Y#define NULL 0& Z* E1 _: F& T7 G" h1 t# L" F
struct student/ R+ w/ r4 ~2 g- p4 A
{5 e$ ^0 \1 v- M
int num;
. u0 M3 V: h6 E8 y, N3 G5 ?char *name;, O. k! e( ?8 s+ p
int age ;3 X0 K2 t$ Y5 N$ _5 P2 P: I
struct student *next;4 q& E5 y$ S/ ]- {% p0 u
};  m) A: a# O+ J* ?
void main()
" X- U6 v4 T. e7 Y{
0 j9 y+ d7 x( Kstruct student a,b,c,*head,*p;, L1 ~% n: s9 H, T
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */7 n, t7 ~( m& {( A) j/ J0 u
b.num=1002; b.name="liuxing"; b.age=19;
5 T5 L) \2 V& ~) b/ u5 qc.num=1003; c.name="huangke"; c.age=18;
* x3 w# H! a% a! {6 Chead=&a;                           /*  建立链表,a为头结点  */
+ V( ^& }& [5 @9 X  Va.next=&b;
; R( H& @2 w+ Ub.next=&c;' y/ P+ N' f* B& v6 |
c.next=NULL;
) A% `: v- D2 Y2 g& @( Up=head;                            /*  输出链表  */
: h1 g7 _$ n" l6 A  |do{$ z5 W* K0 T3 `, d$ j
printf("%5d,%s,%3d\n",p->num,p->name,p->age);' Y; Z. ~- g$ K4 a/ H2 N1 C1 |& D
p=p->next;
9 d& @/ U, i; N7 D% E+ ~}while(p!=NULL);
0 U5 G* R( f9 j, n4 E5 ~. I}
$ W4 v6 ~2 c  T! Y' w4 m
+ W) x; G2 ]* h4 X9 Q, Q6 H16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
2 [, M+ t4 p6 b% ^! j( c/ h$ p#include <stdio.h>1 v/ }( [# i! e* N' V
#include <string.h>
5 x6 U7 C8 ^/ N+ P8 W$ Z; w1 L#include<string.h>5 [) W& C: k) L2 e  [* `" n# Y
main(). S' _7 b+ \9 U2 P6 ^
{ char s[100];
: ~2 n: s" z) D  n# O, o; Zint i,j,n;
. D% U6 w' O( i& tprintf("输入字符串:\n");
5 p0 f( K/ E: b/ N# f6 \' k# A% Hgets(s);
  e. A" \& |% a% q0 i- ?4 Cn=strlen(s);
+ {4 g9 B3 @4 ^& d- R9 ~$ q. Nfor(i=0,j=n-1;i<j;i++,j--)2 U% i% b2 c. T4 J1 U+ Y
  if(s[i]!=s[j])   break;
( `, N! T% f- o6 Nif(i>=j) printf("是回文串\n");+ Y1 h& u) `+ G. e1 x0 P) F
else     printf("不是回文串\n");
6 b/ B% e- y; }}) ]2 F; k" H/ [, [2 E
7 k$ `0 G5 x/ g! D. B& p( W
17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/3 {0 L& a# }1 E9 V  W
#include<stdio.h>
6 `. x; n% u. xvoid fun(int a[],int n)
: L8 D, ^  E1 Z; {{int i,j,t;4 {2 x* ?: L8 T' K
for(i=0;i<=n-1;i++)8 E  W/ @" W* K1 y9 \! C
for(j=0;j<i;j++)
6 R7 |# x0 a* }4 b$ q* U" \% Q  ^1 D  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
7 T5 t& S+ B  J; W- b6 l% A}
- j* j6 W2 ~/ P- @9 A. Wmain()4 j, i5 @$ E# I* U: \& _. a7 V* F
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
" C  a" @4 k( W  Y) \  xFILE *f;
( r( A3 f' p2 c3 Q( L1 Q4 jif((f=fopen("myf2.out","w"))==NULL)
9 E1 n! A* w$ g1 Q printf("open file myf2.out failed!\n");+ y7 S" L( i) ^7 |. }( t2 W) i
fun(a,10);
. B* N$ E3 P/ U5 }. Gfor(i=0;i<10;i++)9 Z6 T8 ?: R. H- ~7 k2 ]; Y
{printf("%4d",a[i]);4 z* J! W$ B  ~5 b' Z2 p
  fprintf(f,"%4d",a[i]);) e3 u! n4 v, A! f1 d
}2 V7 g* P; x, W3 l& `6 I; n
fclose(f);9 O$ j3 ]: j6 D' p& R% I
}$ d  N- a+ p+ z9 C, r  T

! X) K; L: k& t, ?$ J7 C, x% J& Q! W+ n18、编写函数countpi,利用公式
2 ]4 J( R- q5 c0 [6 C' P     ( b& X! s9 X5 C% A
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
; [2 h) l) u$ Z9 H9 l#include<stdio.h>* N$ N9 k  l) G8 ?
double countpi(double eps)               /*eps为允许误差*/
" S; }- z0 b; @4 h( r$ e& v{
1 j8 u/ ?6 Q* k' d: U5 m  int m=1;
7 G( B+ E: k* I" l5 a1 v/ q   double temp=1.0,s=0;
2 ?- K0 s& C% X9 t8 g   while(temp>=eps)
, u6 Q0 b! G6 k& I/ U  K, o   {  s+=temp;$ w0 w, v6 X% s# w+ e
      temp=temp*m/(2*m+1);% ?" R9 q* k# k+ L
      m++;
1 e" G/ u. Q8 o   }
1 m" |+ s+ l8 g# [5 [! X   return(2*s);" ~  Z" u7 R$ p. M2 c
}. ^4 ^) m2 S8 o8 o) M; P
main()
: K: H  s6 q+ g+ C9 w) p{FILE *fp;
4 n2 k2 J' y1 r+ C& P$ E' m8 D) ~   double eps=1e-5,pi;
, V3 n& i( w( `( a" Y; W" L0 C# V   if((fp=fopen("p7_3.out","w"))==NULL)2 w/ Y& i3 I3 O1 j( \3 Y
{ printf("cannot open the file\n");2 r1 X3 w) X) S( g$ u. I' H4 n
   exit(0);                      ( Z/ V% W/ S2 e2 f
}
- E8 `0 I) n6 S) V4 z pi= countpi(eps);7 ?$ a$ e1 T; ]4 d
printf("pi=%lf\n",pi);
1 W. x% f% u* w( [0 v+ \+ y$ [fprintf(fp,"pi=%lf\n",pi);
1 `" G- ~/ f2 s8 J9 x/ Qfclose(fp);" H7 D0 \. }* p" j
}
分享到:  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 | 只看该作者
感谢分享
6 G& Y0 j6 R' ~% e

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

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

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

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