找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

19

主题

87

帖子

435

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
  S* H! ?$ ~- ?# i
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
  C- I4 h6 Y& r3 C. y* G$ I9 X#include "stdio.h"
" |" h+ o, Q9 o8 F0 Jmain()
+ @+ J1 \, @* }/ X% x{int i,j,result;8 q4 i9 H* {  \" Y; R) G8 U
for (i=1;i<10;i++)
# x! E# i$ W) I { for(j=1;j<10;j++)$ c. B  {4 {7 Y3 n( ]
     {
8 M4 ~' O: s% D# h* X: a        result=i*j;
  N; P' S4 B7 @4 X- `" ~        printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/. P8 R1 G- ~! u; x( E
     }
& T6 \( I+ N4 O1 V: O* h1 ]    printf("\n");/*每一行后换行*/
1 ]" g0 x  V* H7 d6 I9 d' j }! L7 `5 k" f, q
}' J: M4 n5 ^* d2 x

9 H$ c; C+ Y- }" ~2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 D# a7 X0 f: ^! z" y! e1 z1 Q
兔子的规律为数列1,1,2,3,5,8,13,21....*/  ?3 ~6 P0 `3 _& }3 d/ x4 b, }
main()# F; s+ K5 H# h# F' t! [
{
7 |3 m# s3 L& L! o7 ilong f1,f2;* b  L$ X+ Q! i
int i;
. r' k, U0 u! @8 S) o. {4 jf1=f2=1;
; w6 @7 k: R) _. Kfor(i=1;i<=20;i++)+ ?1 h1 q  u' q' n
{ printf("%12ld %12ld",f1,f2);
0 z: i5 b( l% {( ^, @   if(i%2==0) printf("\n");/*控制输出,每行四个*// D" \$ g( Z, x! `9 ]$ m
   f1=f1+f2; /*前两个月加起来赋值给第三个月*/" n+ |/ E7 ]% N6 I4 a- C( ~$ ?1 G- X
   f2=f1+f2; /*前两个月加起来赋值给第三个月*/6 D2 S/ _# Q  x
}
& |2 R2 ~" b# l5 ?: I( C% a}
' w5 l9 @- @" f, X) r# r5 c( ?. B8 F9 Z7 f
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
/ u$ A' g8 y& I程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
0 `' H4 Z" K& d6 \2 B& a- E     则表明此数不是素数,反之是素数。*/
! r3 K+ k0 ]( n4 p! Q& f$ d; o#include "math.h"9 T( y/ f+ [2 v0 M% S
main()
: S( _# _+ P8 p9 X" j8 q{
2 @9 m' H) I$ F! H9 Yint m,i,k,h=0,leap=1;' S& F5 n4 C/ S2 G: B
printf("\n");. z0 L! ^5 d# x* k8 F
for(m=101;m<=200;m++)% D8 @& d; j/ [2 \6 L- @1 @
{ k=sqrt(m+1);& o) `' d- D6 B' t; |
   for(i=2;i<=k;i++)
/ f; a% w/ @" t$ a4 ]0 @9 F/ |     if(m%i==0)+ a' j" G4 C2 B+ K
        {leap=0;break;}
6 x( d, i% c$ `% Z0 W     if(leap)    /*内循环结束后,leap依然为1,则m是素数*/* _" b5 W7 f4 y9 c8 @9 U- s; M" A
        {printf("%-4d",m);h++;8 l4 ~) n% J0 G3 m; y( V
         if(h%10==0)
+ P2 D3 l5 ~0 W  u* P             printf("\n");
' I- E8 R- |7 y* ^. w4 L. u2 Z        }" v- Z$ @% K% J8 ^
   leap=1;6 l! R0 _* I! E9 A# G
}- |+ D" @4 b8 F  l! h/ B
printf("\nThe total is %d",h);
1 Q7 g, t. f! `4 l}
$ x7 H, |/ _: a3 J, R. l% j
9 ?- U+ i8 Z) H0 f" j5 Q5 q. \. c4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程) Q* W( s& Y3 z. r4 T4 F
   找出1000以内的所有完数。*/( q; ?5 M+ H) n! D2 J( ~
main(): e& c4 `) }7 k" ^
{9 m6 S+ q* L& G, u$ m% f6 A3 k
static int k[10];# _/ U3 z7 l- P5 \( s6 Q
int i,j,n,s;
( ^9 M- u7 G: F% w' |* U. }) Wfor(j=2;j<1000;j++)
3 Y5 n) e7 S% l/ d% |( g  {
6 d+ M& ~/ v$ l6 y/ I8 H9 h   n=-1;1 ?+ d' J! d6 q3 |" `6 k5 S
   s=j;
5 W- p2 o7 ?* ?$ ?& E& C   for(i=1;i<j;i++)
3 ]& ~6 o) q& }8 v     {if((j%i)==0)! v+ a8 K* T) k+ b/ H% g5 x0 b: V
        {  n++;
' q$ V: O$ I: D* l* w; j           s=s-i;9 q; B/ U' ^2 [( W, n( B8 o
           k[n]=i;1 T7 i3 w' J4 F( W8 a
        }
0 {& b* Q$ t  y/ M3 z% `     }, K0 B& Z" x3 Z/ N9 w
if(s==0)
' O/ L9 \1 ?5 [ {printf("%d is a wanshu:  ",j);
" i: w/ S: P! H5 }4 o9 A3 c  for(i=0;i<n;i++)
' ~! f- a5 X9 i, N      printf("%d,",k[i]);  _9 U& B3 G2 p. i" Q1 p1 K8 h
  printf("%d\n",k[n]);
, i: Q: O0 V0 k/ Z9 i }
: \7 z+ z& E: q}
" e) R" N9 T9 J4 f" v; W5 `8 _}
& X$ [0 b3 `: j' k
& D, d4 w6 N  K9 k$ Y- y7 _; w5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,# F' t! f4 A7 a# [. x
请在空白处完善程序。*/
6 g/ l* n0 k5 I* nmain()
! X2 Y' J0 q# N( O# x{  int  a[4][4],b[4][4],i,j;       /*a存放原始数组数据,b存放旋转后数组数据*/
' K6 N( m% E9 Z6 u1 ^1 s printf("input 16 numbers: ");
9 T3 C) ~! B5 l# B" _/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
9 j, V: ?4 y  A2 {, C+ `0 x for(i=0;i<4;i++)
5 g4 U- g  U+ E: |     for(j=0;j<4;j++)
3 b, j3 {4 c8 |: Y     {  scanf("%d",&a[i][j]);! q# \, C* W" @( Z$ _
        b[3-j][i]=a[i][j];+ H7 l3 t$ C8 C) M3 p, p$ s
      }
3 g& Y* f9 u/ c3 X printf("array b:\n");6 b/ K$ \. u+ o+ a
for(i=0;i<4;i++)* b9 l+ p5 Z1 @  A; u
    {  for(j=0;j<4;j++). [  }9 @8 l5 Z& q. d2 I
       printf("%6d",b[i][j]);$ h5 P* w% d  _
       printf("\n");( D" F# Q1 ^# a. ?; s
     }
3 Q5 p% ?2 c7 Y$ P0 U}
# i8 T8 a2 r) t! j. s
+ E5 v; j5 B) R: ^4 Y! {) ?3 ]6、/*编程打印直角杨辉三角形*/
) H  B! O! ?8 }, G! gmain()
* k' l. _) t' v* d2 J& `& L{int i,j,a[6][6];6 e. P' r/ p+ b$ C: C9 m4 ^! e
for(i=0;i<=5;i++)
3 Q+ @3 ~" ^; E{a[i][i]=1;a[i][0]=1;}
6 [  S" `" \+ ], h& `! W3 t' f2 Qfor(i=2;i<=5;i++)
4 `) J  g( K5 M2 D) x5 t) T  for(j=1;j<=i-1;j++)% T$ r$ d8 g( S5 M8 y
   a[i][j]=a[i-1][j]+a[i-1][j-1];
6 J$ y' R! F: z: L; K& T' S% Mfor(i=0;i<=5;i++)3 h& _; |/ c" r  Q' _' L+ p% [& M
  {for(j=0;j<=i;j++)
* I  A) V  ^/ m8 u( B      printf("%4d",a[i][j]);
- K: K, w6 H0 ?2 I0 C3 Q   printf("\n");}' B, f- v0 I1 P. y
}0 X, x# B" O8 K" m6 Z7 c

/ x3 E9 c0 s8 l; b& _7、/*通过键盘输入3名学生4门课程的成绩,' I. w. ^, s, ^0 J3 T  _, g
分别求每个学生的平均成绩和每门课程的平均成绩。# E5 M1 {( J& L4 m& j" e6 N
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
1 ?5 I3 \4 C  R; X, O其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
( q" g6 c6 D: R" E3 o#include <stdio.h>  C9 K4 i* W# |8 k' o$ i5 ~0 i
#include <stdlib.h>& ?5 J# y  m( ^* i2 `
main()
/ b: g5 `& Q- V5 L6 U{ float a[4][5],sum1,sum2;; ?9 j% F$ n+ U5 f
int i,j;% m6 K  P4 u" }
for(i=0;i<3;i++)
6 s# H; z, N  e' _$ A  for(j=0;j<4;j++)& z0 [5 @! l  K( k; e# L
    scanf("%f",&a[i][j]);8 [4 n0 z" M( e: M4 ^
for(i=0;i<3;i++)
* w* ~% \& b. ^) v' \# E1 `{ sum1=0;" e; J! Z7 g" B1 ]# n1 c
  for(j=0;j<4;j++)
% _5 r0 y- Y5 x- U3 L6 ]    sum1+=a[i][j];
' d* w; i8 i* b) V& k+ F    a[i][4]=sum1/4;' e! B( A8 l, l; R8 Z! S
}. J0 E4 D, [+ n4 y! `
for(j=0;j<5;j++)
5 G0 ^+ X4 E  c9 {7 a5 o{  sum2=0;
& g2 |9 |! R8 m9 p/ s/ B9 E2 X   for(i=0;i<3;i++)
# j! o8 {5 S$ H+ _- F5 U: L, T# A     sum2+=a[i][j];
) Y. l; T! l, y# r' U3 ~+ Q4 B3 d     a[3][j]=sum2/3;
* b" _- \4 y3 b: h }* I; b( m% \/ @7 z0 v1 j
for(i=0;i<4;i++): L; s, t8 C0 F: A3 [
{  for(j=0;j<5;j++)
! E+ g  o5 _" V" _  {    printf("%6.2f",a[i][j]);
" w- Z$ D' J$ l; z# E9 O    printf("\n");
' D: H/ Y6 ?& k1 |4 ^( D/ T }
1 W# l  Y- z' u( U& E}
$ D9 M7 J$ g4 V0 C" W# a
2 H  `2 g6 C$ e( p, C! P! V- y: {1 m8、/*完善程序,实现将输入的字符串反序输出,
# U$ }  ^0 P) c& u5 `( H如输入windows 输出swodniw。*/
' |7 n. H+ m" n1 i#include <string.h>) [# n0 b1 v; V+ ~; Z. @/ d. r2 W# k
main()
2 U, V  {  r  O( @) R) K, J3 y# Y{  char  c[200],c1;6 }- u: S6 K2 H
int i,j,k;* L9 D; C. h5 L6 r& _
printf("Enter a string: ");/ B+ D" J2 C. I% H! R8 Z# ~
scanf("%s",c);
3 |, \+ j$ a% n k=strlen(c);
* F. X0 d( Y, t3 P# y/ `" e for (i=0,j=k-1;i<k/2;i++,j--)
# V' f8 n8 S/ c) t& G3 D# F   {  c1=c[i];c[i]=c[j];c[j]=c1;  }
( r% M; l0 h8 B& j+ V* ]6 e printf("%s\n",c);          y8 m. z# D- J3 K
}
. }; b+ H0 q! e指针法:. s2 A1 Z3 h5 D7 d' d5 g/ b. m7 P
void invert(char *s)
7 z# z7 T# p1 e; `6 C) F7 j. }  z{int i,j,k;; y8 P8 S  d' X; B
char t;- d& A- v/ l* n( y
k=strlen(s);
8 O: d7 L5 p% w  B7 nfor(i=0,j=k-1;i<k/2;i++,j--), S4 `3 u2 Q3 _. I: o% S
{  t=*(s+i);  *(s+i)=*(s+j);  *(s+j)=t; }0 b$ F% g- @+ z, d
}
9 c9 E; o* U! S: ]5 smain()
8 |3 _$ t( F- q- u( U! d, \! f0 [{ FILE *fp;/ O5 I+ S- l5 j$ {
char str[200],*p,i,j;3 G  P5 ~% o6 c' B7 g
if((fp=fopen("p9_2.out","w"))==NULL) . S6 Y6 S, c: ?$ a# g% `& `
      { printf("cannot open the file\n");/ @6 V2 d$ b$ D" T: V( E; ]2 c. i$ C
        exit(0);                       # O9 X; ]1 S9 D% }* p& f- D/ l
      }
0 Y$ q! Y+ u9 e5 o( X5 ? printf("input str:\n");
! C/ y, T/ \5 H. p" y+ ?gets(str);4 |! n( C3 W# `' C( m
printf(“\n%s”,str);
8 E( O3 ?, o1 ~" kfprintf(fp,“%s”,str);
3 @& p6 w9 I3 S* ^4 G! t) X7 yinvert(str);; a. V& n% k; A' `5 q8 |0 Z2 D
  printf(“\n%s”,str);" q. z0 x( M( J% ?( X
fprintf(fp,“\n%s”,str);
+ F) E) b; j* |( `$ [- w9 \fclose(fp);5 m* P( N8 V2 O) M1 g9 S6 U
}
3 [* ?9 Y# j! ^; t
* T, f/ `0 f0 B4 C5 y& u9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
$ I2 E" H- M$ u#include <stdio.h>0 O2 u: W1 O* y  H! X
main()
7 `9 I6 w1 |( {9 r" X{  char  s[80],c;
; s# v2 S/ l6 L, p/ C int  j,k;: [1 _6 C2 @& S# o; \  u% A& m; @
printf("\nEnter a string: ");# a- s2 X" G) l. d7 j, V
gets(s);
8 Q" D" W  n( r: N6 m1 f, z8 r printf("\nEnter a character: ");
+ ]+ ]8 [9 \5 \5 }6 Y6 L" R, m c=getchar( );5 M/ p) i: q* g! ^1 `/ m& j" Q
for(j=k=0;s[j]!= '\0';j++)& Z/ Q8 C1 _; R* b
if(s[j]!=c)" [( L$ X. M+ |5 t
    s[k++]=s[j];
4 L- {6 j) y  w' U s[k]= '\0';* B$ a! m2 K  R) w; O4 E: C0 g* F
printf("\n%s",s);! P2 e( F/ ]+ T* u0 _
}1 P9 U+ j- e4 H2 n( j& B
. C) p3 H9 @$ M. C4 w
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小5 @/ H  ?+ c0 Q4 Q8 I# S7 z! {
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/# ]9 A* d9 @% q+ H, o1 A4 M; N" L
#include<stdio.h>
& e4 L5 [& j9 s0 Jvoid sort(int *x,int n)
  v: T( U0 y( z4 ^3 |- q: f# o{
2 w/ v6 L# Q; }7 p  \' h( Bint i,j,k,t;
' i6 v! b8 c2 j. e( f& H, Q; p  T% Vfor(i=0;i<n-1;i++)$ H# U) |$ A+ F  C: O% h  z; X
{
& ~4 Q/ T3 L! O) b1 n# gk=i;
: {4 ]3 l* Z5 M1 B, y( Kfor(j=i+1;j<n;j++)' E- r# M+ I5 x3 ]8 X* ?
if(x[j]>x[k]) k=j;
" _& L. O7 g8 V( x" ^# T  ]5 X* U/ B# | if(k!=i)
  N/ b, m: ~5 y- g! e# L; K. o {
6 Q+ W; H7 |* j  t=x[i];
" H7 R1 C9 h4 P0 W$ A  x[i]=x[k];/ n# e  B" t" w0 n  @: g( k/ ?
  x[k]=t;- {* V5 j  F3 `% z6 I. `
}
% q: @1 w- N/ s$ D2 h9 ^" K}
5 {2 r. r9 {$ w+ S* Z8 w}
! \- u- }. d; L- ^void main()
9 {/ z% Q. T5 d2 h1 ]{FILE *fp;6 }4 \) M( j6 k
   int *p,i,a[10];
  V" t: ?3 C- ?+ {' ?6 Z. O   fp=fopen("p9_1.out","w");                      8 _2 N7 J" R8 P8 g0 L$ y
  p=a;! j! J% C! N: A
printf("Input 10 numbers:");
' B$ H, F" e5 K0 r0 ]: P* tfor(i=0;i<10;i++)
4 L) }! U% f1 D. x' ?  {1 Zscanf("%d",p++);
7 [8 U9 Y7 h3 L% U7 L: m: kp=a;
5 R- q8 ^2 z/ P2 b7 {, Y" Y5 {sort(p,10);" E6 q; n5 a/ F
for(;p<a+10;p++)$ n7 ^$ l% ]5 y& N1 w. _' W
{  printf("%d ",*p);
" j* ^. i, K. Y* s; R/ \      fprintf(fp,"%d ",*p);  }8 Z* p6 m% t/ ^
      system("pause");4 U3 g3 A$ e1 j+ I9 W$ D0 D
  fclose(fp);3 \; e& a' ~2 y; R' `
}
' E: z  A8 e2 _8 V1 f5 E/ V
2 _0 a, X# d# k- J; K/ M' d, M$ @11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/5 T8 }9 R7 k$ [8 z9 B5 t2 C
  main()
# ~. {" t+ N) R  {  int a[10]={0,12,17,20,25,28,30};       /*a[0]为工作单元,从a[1]开始存放数据*/0 J6 `" O; |6 T! A/ y9 @
     int  x , i, j=6;                         /*j为元素个数*/
$ L& y5 x$ p4 F  {0 `6 Q$ f     printf("Enter a number: ");: {- M* L( a5 o1 v& s% N1 w
     scanf("%d",&x);3 r8 s1 F) E* E0 Y
     a[0]=x;$ y8 U& c5 g  g/ q& r
     i=j;                               /*从最后一个单元开始*/9 f1 t; ~8 g) u8 H' H: I$ W
     while(a[i]>x)
9 \) t( x/ D4 g) C( [     {  a[i+1]=a[i]; i--;    }   /*将比x大的数往后移动一个位置*/' u' H9 a$ F! [; }
     a[++i]=x;0 D/ T  [" G7 [, {
     j++;                       /*插入x后元素总个数增加*/, g8 {) j- q* [4 j9 v- ]; m
     for(i=1;i<=j;i++) printf("%8d",a[i]);
% M' G- N# }: n/ r     printf("\n");
9 C# p; ?, x9 A3 }6 A* K}. {% J; B8 I( L
+ F1 W9 j9 h# F; @( c3 d$ ^; j& @
$ a2 v, B0 B# N1 v7 @8 `+ @7 ~) ~
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/: L) J9 a8 W0 g
#include<stdio.h>+ p# j+ G% K* h* }/ ^# }1 X" k
replace(char *s,char c1,char c2)
8 g" s& ]% j( o. x{ while(*s!='\0')
4 G) B7 f7 n6 Y' C! N5 t* V! [ {  if (*s==c1)7 C% z* s% `1 ?6 b5 d5 v6 y
       *s=c2;
) t( w5 W- O' G! h4 |       s++;4 ?1 _$ G: J+ Q" Q' v$ J7 n
}3 g' \* Z% p$ f8 r6 h! x, l1 e# S  y
}/ `8 }' g1 I8 g  n
main()
: n- e$ g' g5 P/ e" x0 ~{ FILE *fp;
2 }$ ~( h+ U+ b6 W' \char str[100],a,b;  S* s8 T7 O0 b' Z+ a/ f2 m
if((fp=fopen("p10_2.out","w"))==NULL)
. \1 t+ [( m0 t/ @1 {    { printf("cannot open the file\n");  V. ?; u# j7 w. I; D
     exit(0);                     }. c" G' h( E2 S  r% j
printf("Enter a string:\n");! i4 V" `9 {6 I, z1 k  F- h6 @
  gets(str);
, X  h# x! c0 K% v) u! H  printf("Enter a&&b:\n");; ~* S' H  {; D
  scanf("%c,%c",&a,&b);
' b& {+ H4 }  K( w% A7 H- }printf("%s\n",str);
3 T# a$ U: @& f: o2 jfprintf(fp,"%s\n",str);  \$ W, p8 d/ [2 k6 X, H* o
replace(str,a,b);
/ Q, ~* x) P3 n! x8 }  wprintf("The new string is----%s\n",str);
8 V+ j  z& d7 p) N6 m& }  L" yfprintf(fp,"The new string is----%s\n",str);
  c  I0 i+ j0 ofclose(fp);
# k/ M/ W8 _+ i3 e}2 {# ]7 I+ r( n* H0 X

8 C* _7 Y" B8 R$ S/ v# |' ^13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
+ y8 e$ |( E5 r$ e+ X8 V$ X( T+ b; a,不存在则返回-1。*/
; T% X: h$ l$ O5 N6 ^2 O" L, @main()" ~9 y) y- O4 \/ \
{char s1[6]="thisis";char s2[5]="is";4 u- j5 b, U; D# d
printf("%d\n",search(s1,s2));
! M8 ~7 P1 T7 [( G- Ssystem("pause");
' W6 T9 W% i0 g}
: V# o; ^8 X* v  Y. q0 lint search(char s1[],char s2[])
4 D0 l7 x7 b. J4 X# O, {, y3 w{int i=0,j,len=strlen(s2);6 P% o$ x6 L& q" y" F" @/ M8 o: ^* T
while(s1[i]){6 `' g% B  a+ o8 H# [4 s
for(j=0;j<len;j++)
1 w2 l0 G# {5 I3 `5 t" i3 i' P6 |if(s1[i+j]!=s2[j]) break;" M6 I/ z- H5 N5 D, m# b; |
if(j>=len)return i;  ]4 X! L, y9 k, e' S7 O! z
else i++;/ f5 k( N6 G' K, R) S! d
}
& n' ^" s- W9 \; S* Vreturn -1;
( i8 y( s. y4 ]8 b}
+ h% h& s% `& N) D" w. r& f! n' e' G3 o; ^6 X- _, `+ x* p
14、/*用指针变量输出结构体数组元素。*/' j, L% F0 a. l) O( b+ u6 B7 q* K4 z
struct student+ \0 E3 R7 E+ S1 U8 e
{* z8 b6 O- J4 R, a0 H' J
int num;5 ^. x& w0 T; X3 O0 J
char *name;
" A) N. ^  p! K- q4 Tchar sex;. L1 x6 h# }5 D  m
int age;
* I: R1 Z8 R& `5 L, n7 o' w* ^}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
/ x4 `( e+ ~8 W0 B* |* w' n* Hmain()
+ @+ g/ q- c( C1 t, S% [  P{int i;
4 d8 y7 S% C$ s* pstruct student *ps;4 h6 i( Z% B1 C
printf("Num \tName\t\t\tSex\tAge\t\n");  ' d: _4 t+ c4 D+ ~
/*用指针变量输出结构体数组元素。*/
( v7 k1 a# E: v# R" t0 U( Y% o5 Wfor(ps=stu;ps<stu+5;ps++)
/ G4 E, q* s: W6 L1 J6 E" v6 l- Pprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);; V" q. k/ y3 [2 e# ^- r7 b
/*用数组下标法输出结构体数组元素学号和年龄。*/# u. u1 Z) }2 X, }
for(i=0;i<5;i++)
- O) N4 E; f; Y3 Kprintf("%d\t%d\t\n",stu[i].num,stu[i].age);5 b$ J( h' g" W, B
}& B8 d6 a+ y* d' G# @( k3 K

& b- Q; Y0 F; d  c* R8 \15、/*建立一个有三个结点的简单链表:*/
4 I+ y: O6 U& C. {% a#define NULL 0
3 Q- u% r6 I, Y1 Tstruct student) a0 q+ W/ I5 q
{
0 J; j# `5 d4 c' G: `- z1 [7 b; Tint num;
% [( z/ W  l+ Bchar *name;4 V7 l8 _, i0 Q% `0 G
int age ;
2 d! Y( s# C( |5 d7 i9 I* L! Dstruct student *next;$ q; @2 T- I) s9 Z9 m
};
: @2 x2 n0 b0 }( j" c9 uvoid main()
: }0 ]* @- N& B* v" T0 |1 z{$ Y. m& {; u! p' C2 p0 r% `0 J6 T
struct student a,b,c,*head,*p;
1 @. S0 T# l( ?* `. S; Ga.num=1001; a.name="lihua"; a.age=18;  /*  对结点成员进行赋值  */
4 q* P1 x9 g' ?" _b.num=1002; b.name="liuxing"; b.age=19;, {; I) h9 e% c$ t5 J/ q) |4 ^- j" L) [
c.num=1003; c.name="huangke"; c.age=18;2 N# c6 E5 }0 b& V4 G8 M
head=&a;                           /*  建立链表,a为头结点  */
7 M- }7 H) _2 ?/ ea.next=&b;
. `, n  h$ ~4 xb.next=&c;
" j# E, l- K5 R. |c.next=NULL;1 f# k4 C" U3 Y' I' V7 f9 F
p=head;                            /*  输出链表  */
" d6 r& p% |- E: T6 udo{
9 y3 y  }% u' L6 c1 q5 bprintf("%5d,%s,%3d\n",p->num,p->name,p->age);
; J! Z; a, I  t9 Z( ^& Vp=p->next;
9 P) d, V) \) O7 c: e}while(p!=NULL);
% o5 Y3 G# {# m}
& E! v1 c7 S. v8 I: e! @, N# f: h: Q3 y4 ?
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
0 `& K! I  G  r; r4 e, }/ _( `#include <stdio.h>
3 Q2 W; a( D. v2 \5 w7 e#include <string.h>6 `3 C& I' P+ i, c( _9 r
#include<string.h>) e0 {2 A- ^! b5 @2 O
main()* b$ x& W3 N! ~" r6 E
{ char s[100];
' c6 |4 }1 s- l$ i$ Z& C9 Vint i,j,n;
- R" H0 U4 K- T8 r9 k* Hprintf("输入字符串:\n");
! y" |% M) x( v* _gets(s);
5 }. \9 o/ }, J- In=strlen(s);
" f# f, T, \2 p, Z5 h% efor(i=0,j=n-1;i<j;i++,j--)
" b, z8 ?9 d9 V: J# G  if(s[i]!=s[j])   break;% ^1 @* W' c& {6 K
if(i>=j) printf("是回文串\n");$ I- {& v  W2 p. E! }% k
else     printf("不是回文串\n");: u! A$ d' B3 f5 t7 @
}8 O) _% l4 Z9 `$ ]0 h1 S( o7 X

0 I7 x1 I3 O$ S$ o/ _/ e17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
8 i5 k! h; k* }6 z#include<stdio.h>
/ e6 J* c+ r6 x$ G0 x$ ovoid fun(int a[],int n)0 |) _; k. x4 |/ d
{int i,j,t;( x0 @" T8 P/ u: N) X
for(i=0;i<=n-1;i++)7 c8 U7 b: n  t
for(j=0;j<i;j++)' P( Y( D# C+ q( A
  if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
/ L$ K' D" b1 {( C- U# m7 U}
: v$ A) W* R! fmain(): L- Y# p; d( J4 U
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
% [0 d5 M6 Q8 H. c! HFILE *f;
$ y+ T3 w8 D3 |+ mif((f=fopen("myf2.out","w"))==NULL)/ Y8 d) L3 T" m
printf("open file myf2.out failed!\n");
8 V8 m) V* _; Qfun(a,10);
( U. a/ s# ?: V6 s( Nfor(i=0;i<10;i++)
: C  o# _, s" @# q0 y  H {printf("%4d",a[i]);- f  M2 M: m$ @; n3 w) |- ?3 Q
  fprintf(f,"%4d",a[i]);% p7 R9 `9 G! c
}
2 ^$ b  |( }5 c3 ~( n: {* ofclose(f);
1 l  a8 `8 R' j5 ~  \4 n) X}  r* ?: h( B# s; X+ _4 s& S+ j
& ^5 f8 c. W2 [2 {# S& a- }( S
18、编写函数countpi,利用公式# j% @* Y1 K  T6 w
     
4 V/ f% d! L: H+ }' Q% S 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。$ b0 P/ x% B( |' l5 z
#include<stdio.h>+ r# r; A: L5 p+ T* ^
double countpi(double eps)               /*eps为允许误差*/
1 L1 a) k& J  ?* R9 c' a{; ]% b, d! A) V) c% a' d
  int m=1;+ `' x! M4 l- s: D& Y
   double temp=1.0,s=0;
$ u! V9 f# q7 K; O6 B/ [& |   while(temp>=eps)
: F) V1 W( b% R5 v1 Q1 h4 q* X' R   {  s+=temp;
+ R- j- Q! u+ L% }      temp=temp*m/(2*m+1);1 f- Y) P* d, u" _; Y$ O
      m++;
% M; {' G$ G# o  c! l6 ~3 n" z   }& j. q& ~0 w) u& n
   return(2*s);
* E" P1 u) @6 Z- V}
  L( y6 o1 i: l( rmain()2 H+ j, N! G3 k
{FILE *fp;( U- R  B4 k* O8 M: b3 g; R
   double eps=1e-5,pi;
# P6 a7 K0 v8 Q; w9 ^1 o   if((fp=fopen("p7_3.out","w"))==NULL)
- v( O" |4 j/ V: O- S( R5 Q { printf("cannot open the file\n");
1 e6 a' O* I  T, v- K  }# g& ]   exit(0);                      " O* V5 ?6 ^9 Q0 f2 \; d5 t0 Z8 \  y
}; m, u, B, E8 ^$ ~- y, K
pi= countpi(eps);
9 W- q, p! T9 K  c3 z. _5 M printf("pi=%lf\n",pi);& M4 a4 z0 H, v/ _2 C
fprintf(fp,"pi=%lf\n",pi);* y7 A1 P/ Q/ H. m# R! g# h
fclose(fp);
' u% p  w+ [' O}
分享到:  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 | 只看该作者
感谢分享3 r0 ~  m" y0 l- _% m

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-19 06:22 , Processed in 0.064507 second(s), 31 queries , Gzip On.

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

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

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