找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
) u/ y' Z8 |6 Y- \" u6 d5 _
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/& Z$ r8 f7 s/ Z; q$ J6 g
#include "stdio.h"
9 ~' j7 I* e1 t' Qmain()) D7 S) C. D  p8 d
{int i,j,result;( u- f) B% ?* |! A
for (i=1;i<10;i++)0 J1 l! j" V; |
{ for(j=1;j<10;j++)
/ I$ {' {) J$ F6 I9 h. l% G     {( [4 O; X" F/ _3 i
        result=i*j;6 L% q. ]9 ~4 B) P( j- w
        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/; {& O1 X: Y; N
     }
7 t8 D8 a, d; u1 m, D6 i    printf("\n");/*每一行后换行*/$ a3 t" _0 q, Y9 u# `) W1 x
}/ R% L/ `* \2 t' ?( q( u
}
7 J( ~) t$ q% ^) w- E& l7 A% l: h0 h6 G5 M
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  A. r2 p* _( [6 k7 @兔子的规律为数列1,1,2,3,5,8,13,21....*/
* ]; l% h, b% c9 _; T& x, t; B# Mmain()9 p( Q1 y0 n7 x+ P
{
9 }* S8 X9 Y8 j, Hlong f1,f2;
2 @" J" |1 P) l) cint i;
5 H7 r+ T$ u$ A' {& \0 qf1=f2=1;
( s# \* r2 k2 n6 }; ^& {, i2 pfor(i=1;i<=20;i++)& X/ i" k, ]3 f' j4 p) K6 t7 l: s
{ printf("%12ld %12ld",f1,f2);
" i1 N9 g% t# w7 j: z   if(i%2==0) printf("\n");/*控制输出,每行四个*/0 @3 S6 h: o$ g, i' x
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/" o2 G( p( l: B, ]8 P/ @
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/0 }2 i0 ]4 N* ~& f4 W
}
* Q8 q0 e6 D( }2 F5 z! s  i}  F3 u" E( l( t

: e2 j- \; H% v3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
4 a: ~& E1 J& x/ B程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,( J% E- |# [( G# c
     则表明此数不是素数,反之是素数。*/
( h" L, i" y4 x% N- _; e9 [/ `#include "math.h"
3 H+ g: v# \' Y# p9 Vmain()
' `) e3 n+ j- F/ n5 i{( Y6 R9 q; G9 N5 Z
int m,i,k,h=0,leap=1;/ K/ k  M: k6 I
printf("\n");
0 r, {- e( H0 R3 Xfor(m=101;m<=200;m++)( o  j% C& _) l1 E: o* o
{ k=sqrt(m+1);
) c- h+ R* }+ j' w! K, f   for(i=2;i<=k;i++)
- ?2 K- Y1 b/ h) D4 X9 B     if(m%i==0)
3 R6 q; X3 U' A$ s* j* N        {leap=0;break;}- P+ J5 b& r& Q5 Y5 z
     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/
# Z& O' j% B5 G        {printf("%-4d",m);h++;0 a+ R$ a4 K9 o- h
         if(h%10==0)4 {( m' \/ ^( {7 q  L- g
             printf("\n");0 Q) i+ n. q" l/ d; D
        }2 j; Z* b% ^8 D7 c
   leap=1;
" n/ V* L: h* M2 I9 g }
4 X, ~& D6 H2 k3 [$ E$ D% uprintf("\nThe total is %d",h);8 U4 q: k" _9 e5 @( R% P
}# t1 U6 n* o4 G: u
* w) ]- r- Z4 P2 S; `+ D# b. a. p
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程  {6 k) ~% M& @' D2 ~7 s
   找出1000以内的所有完数。*/
% V* b2 s2 o0 vmain()4 K; g. V, M: t. O6 `* W/ w
{; Z7 g# X0 s5 b2 V% K
static int k[10];' k3 i" e; S) k6 Q; f
int i,j,n,s;+ {1 W0 ?! F( j. o  H- u: T3 k
for(j=2;j<1000;j++)
, j, O8 W+ }3 R% i, s) z7 M& J2 g) N8 i  {
2 j' Z5 r- _: e/ `! v, |   n=-1;
0 l, Q- l. d$ b7 \   s=j;5 y! t; m0 N, j; E- I
   for(i=1;i<j;i++)' P! L. ?# |8 d* f# B9 M: o; b
     {if((j%i)==0)
8 j( I- a+ N3 S        {  n++;
& b' F5 X" n" D- P9 G- P           s=s-i;
7 \7 |1 L# A# \( T" d           k[n]=i;
5 U" V/ ^0 R7 k/ `) {- k6 `# a; H        }$ \1 t5 d6 V: b2 R0 Z6 c
     }
% k% c- z+ L6 G( E5 O1 T% q, ^  yif(s==0)
# \, z& Q+ v+ p# [# o {printf("%d is a wanshu:  ",j);
6 ]6 H" n' @% p9 m" d; q8 J3 n  for(i=0;i<n;i++), `9 W6 q$ m- {
      printf("%d,",k[i]);
# u1 p" H' s! m7 S' y  printf("%d\n",k[n]);  K4 n$ e* G$ T1 C" X% J' K# `
}
$ v$ j* l! R: X/ _' u( X$ O% X}1 G# k0 l/ E* M4 b8 X$ C! Z/ L
}, a! n+ y9 i4 X9 V7 `( {) I
% K; _+ z1 A. q# m
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,) }/ i4 B+ i8 [/ k8 [  p
请在空白处完善程序。*/
: k  Z+ T' n% Tmain()* D. S0 {+ o6 k0 q
{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/5 z0 U4 w" |4 D) O% M8 p9 m
printf("input 16 numbers: ");
# D7 i6 w3 L8 \/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/, K. ?1 f) e' Y1 s  L
for(i=0;i<4;i++)' y# Q+ L- \8 a( {9 A" s
     for(j=0;j<4;j++)- z$ @9 u4 |+ d% m6 E. x
     {  scanf("%d",&a[i][j]);( o' J/ J$ q* W8 Z
        b[3-j][i]=a[i][j];0 p) h  b% U  S3 p+ B
      }
# q- m6 ?8 q+ S" ~ printf("array b:\n");3 C* B: j! S5 K0 y/ f& _. d
for(i=0;i<4;i++)! R: G' N  G  ?# d: Q' W
    {  for(j=0;j<4;j++)
- u3 \2 _7 n1 e; \) j3 B       printf("%6d",b[i][j]);2 b" w7 f: S: N5 L, M- M
       printf("\n");/ G' \" c; e% {" H6 E
     }
, n+ U( p( r% T+ d" z}. k5 p. s* s3 n; R

+ n. V% H2 B1 L4 z. |4 Q6、/*编程打印直角杨辉三角形*/3 w. h0 D! U: |
main()
( e  b6 g, a" c{int i,j,a[6][6];
( q4 Z( M% J$ U: p9 O* a0 E* ?for(i=0;i<=5;i++). |& k" K0 S. f' v& i4 v
{a[i][i]=1;a[i][0]=1;}
, o7 T% g# V' l6 jfor(i=2;i<=5;i++)
( A- N; }3 a' ?4 n  for(j=1;j<=i-1;j++)
( }" H# ]  z* [( n: O   a[i][j]=a[i-1][j]+a[i-1][j-1];
, f! r- \( F* Y- Vfor(i=0;i<=5;i++)
: l- W3 d/ X8 L+ }- m) M* Y  {for(j=0;j<=i;j++)
' q$ J9 _- D: N7 h      printf("%4d",a[i][j]);
+ O8 b* _3 T. g  Z   printf("\n");}! y* k: C- x' k1 ~  ]
}) x+ p0 J  g  [. M1 ?
/ @" Z: i7 e, a8 n8 L
7、/*通过键盘输入3名学生4门课程的成绩,9 C) {6 E1 K" _
分别求每个学生的平均成绩和每门课程的平均成绩。
( Z) F- j0 {9 n9 J9 E5 q要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
  C, g. Y- @7 w: Y! [! I其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
- R" ?" P! y: W: o#include <stdio.h>  J. x. _4 F7 O1 D) P
#include <stdlib.h>1 A; C7 U: J0 G( @0 `% F' f
main()
7 f8 o: S- [. p% ]& \4 v{ float a[4][5],sum1,sum2;3 M3 l7 N. K3 |; ]
int i,j;
* m, c2 i/ h" p  s( D5 l% i+ Bfor(i=0;i<3;i++)
+ K: c2 R. M! u! q% }3 [6 \  for(j=0;j<4;j++)' V# Q8 m! G5 `  c1 L9 G& E* U
    scanf("%f",&a[i][j]);# v- z6 R* i" g0 J+ I/ q
for(i=0;i<3;i++)
! y2 C& f6 i7 \{ sum1=0;/ A0 Q$ g$ G0 G. g6 p
  for(j=0;j<4;j++)
' j% R  [: W/ C1 ^0 G- `' h! n" H    sum1+=a[i][j];
4 B; T2 _! C6 p" W# _7 T) g    a[i][4]=sum1/4;
# S- X+ }% r/ t" }2 D9 Y}% y* F& |4 ?3 u. o
for(j=0;j<5;j++)
3 i9 J: p# f9 B9 }1 ~7 `( ?{  sum2=0;
& s1 G6 i, O" s: E& i4 ~   for(i=0;i<3;i++)
  E9 S" ~6 {: G9 Q$ W, b, Y+ o     sum2+=a[i][j];
- L0 f# B  h$ V, L; j7 c; C2 h( l     a[3][j]=sum2/3;
8 l1 ?, n! ^) i/ @5 Q }, M# `9 I. N1 d# M$ c: W/ N
for(i=0;i<4;i++)( G3 `  C0 i  I  m7 {
{  for(j=0;j<5;j++)
& _9 _+ x2 r$ `' A  r9 e8 m    printf("%6.2f",a[i][j]);
7 x% U& y0 Y+ N/ F* i* Q! v    printf("\n");
/ `7 y- G  W8 A) G- A7 R }# z  m6 t5 U: L( }$ s# G/ O
}
3 i- r" [' y' ]6 m
  X& u  u" Q3 N6 Y$ n1 Z% v$ o9 B8、/*完善程序,实现将输入的字符串反序输出,
/ a( ~8 j" e: u5 J2 K如输入windows 输出swodniw。*/& n2 `( x3 |( X* O, J+ k% f7 i
#include <string.h>
6 n) o" l+ v6 z' g* }main()
0 i! q6 U) U7 H! i& R{  char  c[200],c1;
% E4 @% e$ a7 q  A( n3 B* U" h int i,j,k;
2 \$ m, h8 H5 \1 o0 Y printf("Enter a string: ");
. e* X) ^! f. N. {* S scanf("%s",c);9 |! k+ U0 B: C) d* z; L
k=strlen(c);
% R4 Q8 M" w9 j3 S: j: g5 O% W0 [# w for (i=0,j=k-1;i<k/2;i++,j--)
- ]. h( m' j" w  s   {  c1=c[i];c[i]=c[j];c[j]=c1;  }3 e8 |: E5 q/ X# T1 r/ w! l0 K9 B
printf("%s\n",c);        ' x+ C+ f& \8 p# ~8 @
}
0 c' S3 _, v6 R& m: U7 E# B指针法:/ Z5 ^* V0 N7 c
void invert(char *s)2 b5 v& r" v9 h: W
{int i,j,k;
' g7 L- m' i& e. ?& nchar t;
6 {  \1 W, K& Vk=strlen(s);; F$ K- V" [/ F
for(i=0,j=k-1;i<k/2;i++,j--)& y1 u& t4 O. k
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }" q3 x  H; f! b5 Y
}
. ~% t1 @0 ]' S0 Emain()
: N6 N* r% Z! o$ N: R{ FILE *fp;
; u  E( C$ q7 S char str[200],*p,i,j;
) I5 t6 o1 h/ V5 V+ c if((fp=fopen("p9_2.out","w"))==NULL) 7 U2 [  ]" n0 U! a$ B, ~* T
      { printf("cannot open the file\n");8 b4 b0 n4 K1 Q3 }# y0 S- R
        exit(0);                       
, ~: W. A! V% S) b  _      }
" C  d/ H& q* T7 f3 s1 ^/ n; P4 s printf("input str:\n");  a9 @# J5 \9 X7 J( j( m
gets(str);# S$ _+ u; X5 j1 F/ [
printf(“\n%s”,str);
8 O# |* I! N9 o; A  z2 k2 B( H5 Bfprintf(fp,“%s”,str);
! R* M# n9 t2 o& }) G' rinvert(str);
2 f6 {1 x; [( Q  printf(“\n%s”,str);
: m* g$ n& t3 S+ \fprintf(fp,“\n%s”,str);9 H* ~' [0 n& K% X& }
fclose(fp);
. O! t8 X1 }( g5 H}$ N- h' Y$ ~( O# b

( [' T! h7 o3 g, p$ s8 v0 P' X9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/% x& F/ b6 f) _/ N
#include <stdio.h>
  H3 f3 I" ^% h$ T, d6 Nmain()
- t6 _5 U: e: E) M{  char  s[80],c;
' K2 p- J# d" d2 f5 B5 Q5 O' Q3 x int  j,k;4 V9 H6 N/ \8 W$ R; \/ ^0 a. \; Z
printf("\nEnter a string: ");5 l: S) q" d& o
gets(s);! p0 B* N$ h" y" B1 w# [1 l
printf("\nEnter a character: ");
" f! H% ]+ }* r/ C5 R7 O1 }' p7 V5 Z c=getchar( );6 T* r# u1 A9 O( S$ t
for(j=k=0;s[j]!= '\0';j++)
, R( C) W5 ?! U: g if(s[j]!=c)$ |% x; S6 M* t
    s[k++]=s[j];
- q" J- J( l1 m) O s[k]= '\0';$ X- l" g( X3 I: z* m
printf("\n%s",s);
1 |: H9 r3 O# G+ f: ]" @$ L}
7 ~( Y7 U' v- K
: t- }% R7 J, i10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
  s9 W" T. v# S* ^# |  L9 q% t! l排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/7 \) s/ C9 D! l% w+ v
#include<stdio.h>$ g  [7 K% i; H- e; i9 A; u* K
void sort(int *x,int n)" }& _1 x7 k2 s0 u9 }. B
{
4 B2 t8 T) O* Lint i,j,k,t;& Y5 v6 t: g. \" I! p* W
for(i=0;i<n-1;i++)5 U9 ?# L) w9 r+ d
{
# p( a9 |; k1 G/ \2 W* r! D) Tk=i;# `7 `" h- y- a, ]' T
for(j=i+1;j<n;j++)
" ?6 y2 W8 k4 K' F if(x[j]>x[k]) k=j;( e% \/ C( v% \+ Q( ^& v7 m, S
if(k!=i)% ]0 y* A: ~4 G4 t' A/ K! o) y
{
" R8 x3 T5 o; e5 R/ f  t=x[i];% c" h, V( K2 ^8 F7 |- s2 ~
  x[i]=x[k];) q, o1 T& E1 C" k0 R& g
  x[k]=t;
1 M3 z3 K% v$ D: d$ l- O }
  F: ~/ @: z' k. E3 m$ U}- r* T5 X) v" X
}
$ e% A( c9 H' T% Q, Dvoid main(): B" p& c/ w% b2 p
{FILE *fp;; @* {  _) F3 I$ X$ i5 h; v/ r4 W
   int *p,i,a[10];$ B  V3 q! s: [; f( H$ V
   fp=fopen("p9_1.out","w");                      ; N) C' j- m0 @2 h
  p=a;& y* [' j# c6 q# J; j* b' g
printf("Input 10 numbers:");0 ]: F- [7 W, ?* S& N/ `3 w
for(i=0;i<10;i++)
# k( E1 b1 p( j$ r) bscanf("%d",p++);
9 u& k* w  c: _7 O3 b5 Xp=a;/ _& Q/ S. `: |8 M* z
sort(p,10);
0 g/ F7 i. \, p! T( Q8 Hfor(;p<a+10;p++)
+ L3 K' p1 Q9 ]2 f{  printf("%d ",*p);  y7 P' j# H& i! U0 t2 g
      fprintf(fp,"%d ",*p);  }1 Q$ s4 a; R5 V; g+ R
      system("pause");
! M5 |) ~# A2 O7 K0 K9 _( B  fclose(fp);
* E  Q$ |0 {7 n( |, y6 Q! P: f; ?}
: y. G- R2 P& I' w/ U% b
# d; x. h; ^' Z5 ]3 f5 A) ^5 d9 M11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
1 w$ d2 I2 K" r! z# ~: d) w9 O  main()2 o. ^+ ?% \3 E+ g. o
  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/
8 m# C* t+ A2 Z     int  x , i, j=6;                         /*j为元素个数*/4 `& B# T0 |: ~( J" R- v
     printf("Enter a number: ");) _' C( y2 E# n! D# C  m
     scanf("%d",&x);
6 S1 P8 u7 ?) g# c) T3 o5 C1 `1 r9 o     a[0]=x;+ ~) M; D& X; j( Y! E
     i=j;                               /*从最后一个单元开始*/
2 s. w8 b$ f4 L9 i- d# g& x% s     while(a[i]>x)
  c. @  Z, H9 u" t/ y1 o; Y     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/. d: \7 T! e- Y* \0 Y# Y
     a[++i]=x;* w" s% Q- ?3 e3 t4 t( ]
     j++;                       /*插入x后元素总个数增加*/
- I5 P9 |: A5 K: a8 P     for(i=1;i<=j;i++) printf("%8d",a[i]);0 p1 Q( c2 y) k% ^+ F  B
     printf("\n");
" M# \- q, N2 D4 Y  G3 p+ \}: }/ P! K" U$ [2 ^7 k

6 @  d- R. J9 e5 I% r  b- A( X5 a* C9 l' J3 i
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
! Q0 Z, I2 N) _! r. \3 C#include<stdio.h>
0 ?! M  \; g1 v& ]/ D# Z( qreplace(char *s,char c1,char c2)
* @- V& p5 O( X6 [{ while(*s!='\0')+ l& ^0 V2 J! n6 y" b/ J  s  K
{  if (*s==c1)1 x7 C1 ^3 ]* C5 m, ?
       *s=c2;1 [5 B+ _+ L2 f- s
       s++;
1 v& F* p1 ~; {, s- J2 P }( b' `0 H& G2 l) e# |* a2 R2 d: }
}3 J) d2 T3 `! [$ Z- }
main()
3 D) J+ W" V: k3 \9 ]{ FILE *fp;
- H( t& F" x1 _9 ^$ g, E# H+ Nchar str[100],a,b;* N' j9 Y* `' P( E; h9 t
if((fp=fopen("p10_2.out","w"))==NULL)) F# r. j! T' a3 T+ Q
    { printf("cannot open the file\n");! P) p3 g1 d$ O) K
     exit(0);                     }
( d' q7 d$ @" C printf("Enter a string:\n");
. f* a  O8 v1 ?$ {$ M# Y  gets(str);
# q, O  M* ?) `2 K( A  printf("Enter a&&b:\n");/ i, k4 a. ?/ O
  scanf("%c,%c",&a,&b);2 |- q5 W1 i2 w$ F5 y1 E) q# ~
printf("%s\n",str);; W7 E$ ~& t+ w. F1 e. Z# r
fprintf(fp,"%s\n",str);. G) Q, z$ O: X+ A( l/ w; g
replace(str,a,b);
/ h6 F7 Z2 T" C2 ^- g) I0 Tprintf("The new string is----%s\n",str);; s- ]' ?% Y0 l3 s/ Q! N, D
fprintf(fp,"The new string is----%s\n",str);
3 U( D. ?  O3 @; {, m) o/ Afclose(fp);' o* i6 U1 ^3 d
}
& Q& D. L8 `) {
* M' P. K0 a  T! e/ d13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
7 q. @+ X3 s/ }6 v/ ~3 f* P,不存在则返回-1。*/. ~# `. h; l% }- b/ D7 z5 }
main()( L1 ^; e1 L7 W, t( C8 L0 e  ~
{char s1[6]="thisis";char s2[5]="is";7 S! g" M7 }& i' Q+ `
printf("%d\n",search(s1,s2));: [& O. Y9 r/ b! t- {: K9 C
system("pause");# y9 M! n7 r6 `. [
}
0 k1 C0 q( b/ k( kint search(char s1[],char s2[])1 ]5 v4 D2 Q7 [! I
{int i=0,j,len=strlen(s2);- I: U0 w8 x6 q" J) }) r* @
while(s1[i]){* E: a: ^; S% m- t, |
for(j=0;j<len;j++)3 h1 g# J9 D4 M5 h
if(s1[i+j]!=s2[j]) break;# T" T- g& o& y% [& h3 q
if(j>=len)return i;
. ~+ t0 W9 _* ]2 r" q1 ~* O: nelse i++;) w  E/ G9 B# ]/ i/ h! Y
}  X5 b8 h, [) K0 d. R
return -1;
' J# [: V" W2 F. m7 o5 b}$ a4 j( ^- p$ V0 `. o" ]$ c

" j; T4 L: J% e14、/*用指针变量输出结构体数组元素。*/. a, }0 f' B4 t9 W) v: a
struct student
" `6 b, @( C& e{; Q4 N7 y$ w* ?$ D. L! |: p
int num;& ^9 }+ a4 Z0 s1 B4 |
char *name;
6 l1 w3 ?' R5 c4 E5 J- ^( ichar sex;
+ A  j% ]4 o9 z9 |& W+ S# C/ r& {4 _" _int age;% h2 v9 I0 v* K" w# [% X
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
: U7 E: W0 n) \9 `* [main()
# r/ r  s. h4 l{int i;' E1 y; u" w8 N6 O- I1 A0 K
struct student *ps;
! C' v2 B3 Y0 B& B' u7 \& j# |8 hprintf("Num \tName\t\t\tSex\tAge\t\n");  
% S! F, t6 s1 |. t8 B/*用指针变量输出结构体数组元素。*/; G; a: @$ b! V
for(ps=stu;ps<stu+5;ps++)2 j8 s1 G+ K3 S9 [1 I" u
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);9 T. A( Y' B) C9 [/ }- d+ n( N
/*用数组下标法输出结构体数组元素学号和年龄。*/
% q8 p5 a" _% u! l" @for(i=0;i<5;i++)
' v. w* s) F$ ?* k# \2 uprintf("%d\t%d\t\n",stu[i].num,stu[i].age);* ^, }- L# o' w- h& Y
}
% ]; u0 _! J( S
7 |0 M* ~  N: w; M15、/*建立一个有三个结点的简单链表:*/
; e8 ^, C) L, ?  a% n# ?; J#define NULL 0
$ {3 u9 T: U+ |+ vstruct student! e2 A( C* c) a3 T) y
{6 T" C1 R  X$ X* V. {
int num;) [- b0 z$ J2 S" @- H  `
char *name;0 c1 F0 i& K5 H. a; W  i/ R6 o( J
int age ;& W( K/ F% [9 x  G+ M# z& ^
struct student *next;  s! T$ x9 e% x) p4 J
};
+ M0 |! }6 {) k  Svoid main()
+ C' Y/ @+ {/ G" |{& Y1 T3 g. H( [
struct student a,b,c,*head,*p;" G& ~% i% K1 r$ v6 t# q
a.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */
* ?" H, D* a( Y5 J  E9 n5 m' n+ Fb.num=1002; b.name="liuxing"; b.age=19;
5 c6 k3 w; a$ R/ s8 U! |/ `c.num=1003; c.name="huangke"; c.age=18;
% @. p. u7 L1 hhead=&a;                           /*  建立链表,a为头结点  */
% [8 r' v; E, t+ {6 {) K# xa.next=&b;6 A3 w- \% K+ v, I/ Y
b.next=&c;
* X# i3 M, w, A7 G2 z, p* sc.next=NULL;
+ C$ N7 |2 j& O& a+ F0 N" P5 bp=head;                            /*  输出链表  */5 S" Z) i- c9 }" {/ S8 j
do{
; G) |* s% [. f# ~4 y+ E0 `printf("%5d,%s,%3d\n",p->num,p->name,p->age);2 X# i/ R: [- C5 l8 h. r
p=p->next;
5 b. y8 u% A6 l1 w. C; \. [8 V}while(p!=NULL);9 q6 Q1 O7 v9 F& j' p2 Z& H' K1 n# u
}7 u0 p. a0 h$ V) |2 t1 f8 a

7 d; h' v; @$ A8 r+ p2 X16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/- X4 ]3 T  ~0 {; p2 I; V% R% i; |
#include <stdio.h>! t7 ~  c$ B( w1 L. X. c0 \6 \3 B
#include <string.h>; |! z! g; Y7 k$ d2 u* e
#include<string.h>
# x6 h* x' }% f* j3 T0 U1 `main()
- j- U4 G- f* R2 `! o& M( ?+ P  _6 f{ char s[100];3 i1 I% R- i* v9 `
int i,j,n;0 s  P) t8 G0 h: X# h% H. N
printf("输入字符串:\n");( U  T* }" N* E- q
gets(s);
* s, \" ]+ D& U# u4 |6 E/ Wn=strlen(s);9 h! W* }1 y) T, W
for(i=0,j=n-1;i<j;i++,j--)3 A7 }; S8 b* S& a
  if(s[i]!=s[j])   break;
  Z5 S7 J. u  B6 c+ mif(i>=j) printf("是回文串\n");
& o) D; {( J2 U; i2 C0 celse     printf("不是回文串\n");" B* i9 n9 a5 S& o( ~& y. z
}* h/ n8 K4 s' _& B% t) y* t
% ?6 K; M/ m8 ?& V9 f
17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/8 p+ j5 E: f% M9 r5 ~9 a2 }9 I8 }
#include<stdio.h>
5 l9 ?& g4 X& A* @5 a$ k& qvoid fun(int a[],int n)9 `, p3 X9 M& v
{int i,j,t;
' P, p& \" z5 \( @$ @for(i=0;i<=n-1;i++)! C, P5 |, I! A
for(j=0;j<i;j++)% P  X- ~. K( G' b% `2 f
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}4 N" T# c1 z+ g7 v# h
}
& }3 ~$ F' c% p. j4 X# D1 X, Hmain()9 @" t* E, k, o9 j
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;$ I' r& [' `/ `1 T5 r, A
FILE *f;
# A, M# W/ j! E! @8 t1 xif((f=fopen("myf2.out","w"))==NULL)% Z9 H" a# ^+ Q2 h2 Y2 W$ O
printf("open file myf2.out failed!\n");) c; ~7 R. {6 t5 ?
fun(a,10);7 f3 j5 a8 U: C) h  w& Q
for(i=0;i<10;i++)
' a: ]$ n0 |7 {; P: o {printf("%4d",a[i]);
* U7 n% R% u9 r( G' o7 V  fprintf(f,"%4d",a[i]);9 w, c! q" Z3 W+ e. }
}
5 i) N/ A; K/ |& c! Xfclose(f);- }1 L0 ]2 Q' ]
}
/ P, Q4 x! |# m  s9 r' ~* n$ N% i7 Y: v
18、编写函数countpi,利用公式8 w8 f2 R# X4 j% |6 m9 ~* }. f0 T; _
     5 Z* l* w9 E1 h1 r: ^: c
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
8 |! n7 Q6 t; h( B6 m0 f#include<stdio.h>; t# G; d9 I$ _, E5 M& s
double countpi(double eps)               /*eps为允许误差*/; _/ a9 _% |  ?
{
/ M- v7 i; Q; r" J5 K+ z. S  int m=1;" i0 j5 B1 u3 B2 s6 e7 Y
   double temp=1.0,s=0;7 {6 t. u6 b( c, c7 t" B
   while(temp>=eps)
! E% |; \: F, O" Y, W# R   {  s+=temp;
' s) m! U; f$ Q, K* i/ X" k      temp=temp*m/(2*m+1);
+ Z1 |. ^  l2 s: u- q      m++;
3 |: t& n9 T& i9 ]   }+ R+ O' o! R% Q4 t) v. n: C% I
   return(2*s);' j# _4 v0 |! ]# I5 _3 b2 h6 k
}
# }! B3 [. Q3 _* o- cmain()
- t" y( C2 J* Z# t# s6 x& K% J{FILE *fp;
8 v* Y% C; w5 ^- J! v! H6 W# R) _   double eps=1e-5,pi;0 H; D5 K5 e2 o* x
   if((fp=fopen("p7_3.out","w"))==NULL)
) }7 _7 D5 c4 F { printf("cannot open the file\n");. W! }1 ~- {; |. F! J" _+ H
   exit(0);                     
1 L9 z+ b. u: l$ i' f }
1 C' E8 B$ V# @" N5 _ pi= countpi(eps);
" K  S; i+ l+ w' |+ q, x printf("pi=%lf\n",pi);
+ o7 @9 v  H1 \0 D$ Mfprintf(fp,"pi=%lf\n",pi);3 S0 B+ C/ f8 U* ]4 C
fclose(fp);
' {0 G) v, z8 `  v" b1 _; A. t8 _}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏3 支持!支持!1 反对!反对!

7

主题

223

帖子

1310

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1310
11#
发表于 2015-10-30 09:08 | 只看该作者
都是for循环啊
……

0

主题

3

帖子

5

积分

初级新手(9)

Rank: 1

积分
5
10#
发表于 2015-9-27 21:06 | 只看该作者
谢谢分享,谢谢

6

主题

292

帖子

955

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
955
9#
发表于 2015-9-15 18:02 | 只看该作者
好多看不懂,还需努力!

0

主题

182

帖子

1720

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1720
8#
发表于 2015-9-13 16:27 | 只看该作者
谢谢,学习了

4

主题

154

帖子

569

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
569
7#
发表于 2015-9-13 12:50 | 只看该作者
好东西要收藏,感谢分享。

0

主题

81

帖子

31

积分

二级会员(20)

Rank: 2Rank: 2

积分
31
6#
发表于 2015-8-20 08:01 | 只看该作者
学习了

63

主题

506

帖子

1776

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1776
5#
发表于 2015-8-14 17:49 | 只看该作者

38

主题

211

帖子

766

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
766
4#
发表于 2015-8-6 11:17 | 只看该作者
感谢分享

31

主题

347

帖子

2216

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2216
3#
发表于 2015-7-20 16:56 | 只看该作者
第一个一看就很常用,其它的,看得太累………………。:lol:lol
200 字节以内
不支持自定义 Discuz! 代码

2

主题

121

帖子

1339

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1339
2#
发表于 2015-7-12 11:07 | 只看该作者
感谢分享
0 Q' B. @. d8 M! y5 c) L6 o

0

主题

131

帖子

2541

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2541
1#
发表于 2015-7-2 09:01 | 只看该作者
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-2 03:33 , Processed in 0.066007 second(s), 32 queries , Gzip On.

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

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

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