|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" [* \% r3 k& C b7 d# s1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
& X0 z. r6 U$ v$ u6 t#include "stdio.h"
/ r8 i$ ^' o* J0 w9 F" \$ amain()8 n3 H1 m1 l ~# c! _/ k+ e$ g
{int i,j,result;
. L3 _; w/ [- W, W3 g- T$ A* Pfor (i=1;i<10;i++)* c0 r/ a8 S- K0 t0 ?
{ for(j=1;j<10;j++)
1 ?3 x1 j& H- ~' G- M5 y { G, l3 y8 w: k" u* S3 A" G
result=i*j;
8 s7 ]$ u0 f$ b6 I printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/! {. H) X2 }% y8 \, ?- Z2 e
}2 F% x2 r* \9 g8 d" N
printf("\n");/*每一行后换行*/& w( h) w: p/ L8 ]
}" ]6 x9 B; ]; z: _6 d7 ~- O
}
* K3 Y' j9 L' A) S N- ~
( V9 s3 N- B0 K: {2 K2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
. B$ l& v# U! D: x: Z9 v9 r: Z兔子的规律为数列1,1,2,3,5,8,13,21....*/) `6 V) `, l& ?* M7 \
main()$ x2 H# V& d2 Z3 [
{/ Z; |0 g" ^) q: n* l' ]- \5 k3 q
long f1,f2;
/ g/ P$ x6 Q! i; R/ o! Fint i;1 U5 {' D4 p% F' G& d% O/ b, ~
f1=f2=1;; A# r+ Z, b9 N* H0 f9 i& I% H
for(i=1;i<=20;i++)
, A4 c3 V8 ?+ T7 {{ printf("%12ld %12ld",f1,f2); B" ~7 H. Z. C3 p/ i+ a) O% a
if(i%2==0) printf("\n");/*控制输出,每行四个*/& A4 P6 A7 {* o: V! \- E: W
f1=f1+f2; /*前两个月加起来赋值给第三个月*// P! E7 N: ?& y
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
8 x9 {- R a$ O, m* }) b }; L. Z; c( T7 B
}" F# H# Z$ m' l/ T% J& \1 i) J
! y% Z p g6 y3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
5 b* @6 y: G+ l7 a A# n1 Y程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,! T0 z( z( A/ a* i) [
则表明此数不是素数,反之是素数。*/6 ^- a3 m M2 d0 [+ s
#include "math.h"$ e# k2 `' ? P3 @/ _/ u0 h
main()6 }. A9 l5 e2 q- c# a
{
" I5 \& U; w5 C3 t5 Tint m,i,k,h=0,leap=1;: S8 o$ V! g2 ?) T- q# B. A% M
printf("\n");: a4 e: G% }4 C
for(m=101;m<=200;m++)
l( {$ P0 z) D; a& R { k=sqrt(m+1);
% L0 Q' O4 a! a/ _8 i for(i=2;i<=k;i++)
) q4 y* s* a) h$ `/ e) ~ if(m%i==0)
8 b/ X* b! r" C. p {leap=0;break;}
# k8 T! P7 \0 A0 D* J8 v; r if(leap) /*内循环结束后,leap依然为1,则m是素数*/
6 V# Z8 m6 X8 V& k. a. F) }3 x; D {printf("%-4d",m);h++;
6 b6 r- a. {/ |+ ~- d+ t if(h%10==0)
5 {& w2 e9 L5 @* C0 e4 J1 n; L/ ~% t printf("\n");
. Q2 h7 Z$ {2 g( y! { }2 u$ E: A- Z& d+ Y8 _* t% ?( R
leap=1;
* D. w' ?: @/ n4 P1 E" L/ ~* J }( Y6 a& Y# y7 b% m/ Z. N) d
printf("\nThe total is %d",h);: T9 l2 G& }6 J$ ?& A
}
% D& ]: `% r3 V- i% k! `5 r
: H" l) z l. S }4 F& v1 W4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程3 P5 |! C& D9 F7 M* G8 q. ^
找出1000以内的所有完数。*/
6 l O% f: U. B3 hmain(). W( C( S7 U7 N0 U6 \, ?( R" V8 ~
{! W4 o/ |* p4 _6 F
static int k[10];
3 M% ]" ~) v0 {# P9 t$ O+ E @int i,j,n,s;$ D% M P' W! z' [$ @, L
for(j=2;j<1000;j++)
3 G% d( T- Y" [/ e" d) d5 h {
0 b+ G; B. f [2 Y0 w3 {/ K n=-1;, n# j# h" u; @1 K# P% r
s=j;
4 G+ P! m7 R! ~5 \: s* C6 s for(i=1;i<j;i++)
( J# T( A* L8 M0 [ {if((j%i)==0)
0 V |; P% x7 E" u: u { n++;
4 h+ P: i) o, S# E/ ` s=s-i;
1 K; B% r8 X. n* O1 R8 _$ @ k[n]=i;% P# }' h; K* g6 V3 e" d* s! l" ^" ^
}
( ]1 J" p4 w) }7 V" p( V8 U }& h' _, }7 k7 P: K' j4 ^6 e0 P; L8 P$ G
if(s==0)
- r, ?& A. x0 Y8 k {printf("%d is a wanshu: ",j);& z8 z$ k& [ F
for(i=0;i<n;i++)% x) R. D* G5 P- }
printf("%d,",k[i]);
) @9 _2 ~9 s0 c5 J printf("%d\n",k[n]);
1 d3 B; }5 S; `- U }( U2 b0 l( ~: [1 f/ G! \4 D. }
}% _8 V( k2 J" K) f2 l& f
}
) J4 w" m: o4 @! g% }( K" L
x3 t2 V+ G1 @5 T+ i, O& f7 D5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,3 K- E6 y N' C/ w0 `% W
请在空白处完善程序。*/& r t2 ~1 q( X7 E
main(), B& [7 \6 l( x9 D: f# @6 S
{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
* W( Q' d5 o4 w1 h3 g$ M# }( t printf("input 16 numbers: ");- A$ ]: M5 X7 J. }7 {8 m9 P
/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/6 |2 U3 e. J- T0 }2 A5 j
for(i=0;i<4;i++)
- g, a9 {9 e# ]% z2 @7 V( k for(j=0;j<4;j++). r4 W3 y# z' }& [# p$ g. f$ e; g
{ scanf("%d",&a[i][j]);; G# v6 }: n& w, i. w+ y% R
b[3-j][i]=a[i][j];
3 N) Q, ?* z5 f. q3 ]$ U }3 @" g8 F* {* v+ |
printf("array b:\n");8 R! w; o4 f# Z/ V2 @/ k
for(i=0;i<4;i++)
: ^9 P B0 P; I5 u { for(j=0;j<4;j++)
! r0 o5 Y2 u# ~0 Z printf("%6d",b[i][j]);
! J" U2 e% W: u0 ^, V- C( H printf("\n");, {, C) ^% S' X) j! M* @9 C! u/ f
}
9 @8 {9 `$ V4 H7 q# q- P6 \}
; L" r U/ i/ B2 [( U5 l
% n" M) @) {6 U9 N2 @% F1 s$ }3 K4 W# c6、/*编程打印直角杨辉三角形*/' [5 H9 d8 u) M3 v+ Y; j
main()
) Z6 y5 |- I) W! }8 h* m% {{int i,j,a[6][6];
& V1 e. w7 n8 [0 Y! o% ?0 C4 `* Q, `for(i=0;i<=5;i++)" h* e# O ^2 q3 ^ w$ Q
{a[i][i]=1;a[i][0]=1;}; r, n0 H0 g; ^5 [ G* |
for(i=2;i<=5;i++)5 F% s$ e/ F$ M& w
for(j=1;j<=i-1;j++)' r. ]) Y/ A' o) }# t' P3 w
a[i][j]=a[i-1][j]+a[i-1][j-1];
/ H3 o# t m0 S5 _8 M9 E5 Jfor(i=0;i<=5;i++)* P! u) B% `; N/ s0 c+ x- Y
{for(j=0;j<=i;j++)
* u9 ^8 _/ @3 {6 ?8 U/ f7 Y% J printf("%4d",a[i][j]);
: y+ \! d+ y8 }) ?: z printf("\n");}' F- U0 n' A0 E7 j3 U9 J
}% t9 q" ?+ z' P4 c" j
& r" I4 p. F: e' B7、/*通过键盘输入3名学生4门课程的成绩,6 P9 O9 H* @9 w+ j. v2 i5 W
分别求每个学生的平均成绩和每门课程的平均成绩。
) L* i# y- x+ N" A2 m) Q( `要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
: m" O. O5 k1 s: N% X- d8 U) f其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/ X' Y1 }6 O; u
#include <stdio.h>( E% C! o3 a* I
#include <stdlib.h>
$ K; g" M7 n& H E; Emain(), T& S6 u6 a; D2 y
{ float a[4][5],sum1,sum2;. @6 V% c( X; K
int i,j;
) i9 B1 x( U. c }/ W; Ofor(i=0;i<3;i++)8 |( w. P/ y- u. F
for(j=0;j<4;j++)
- D+ r! G+ w+ J% f scanf("%f",&a[i][j]);
8 c3 d" U5 ^& p& z+ Lfor(i=0;i<3;i++)
5 x+ f) m6 b, F9 v3 a8 M{ sum1=0;
# a( u$ l* x7 `$ K. [6 J& I for(j=0;j<4;j++)/ e" i' d2 ~- E8 C
sum1+=a[i][j];- t O1 o" F7 F
a[i][4]=sum1/4;
8 s' R6 x7 F; B; A7 [3 u( ?" i}
4 n! k# ~) G( U4 B; K* W9 s+ i0 Ifor(j=0;j<5;j++)& l" t. ]5 n n0 i' g& Z$ z
{ sum2=0;
, H9 l# I0 K: Y+ Q7 ]9 X for(i=0;i<3;i++)
. ]( k/ }3 {9 t. `3 v sum2+=a[i][j];( U0 u3 m# U- U1 I" T
a[3][j]=sum2/3;( d4 N: ]4 o, W6 }) c- ^
}
) C! O: k6 p' y: I for(i=0;i<4;i++)
. `1 G8 B' T7 X9 W { for(j=0;j<5;j++)9 r3 x7 f3 U. G
printf("%6.2f",a[i][j]);
2 R p6 `2 Q4 q, T2 e/ X3 i. ~ printf("\n");
L c- W+ M5 F+ ~7 Q0 @; H }4 ?2 e6 E5 R2 M T
}# C; `- K; v/ F2 Y# O
7 ]7 H. _+ K3 G5 d9 p X
8、/*完善程序,实现将输入的字符串反序输出,0 U8 D* R& @, k. w
如输入windows 输出swodniw。*/; S! Y- K8 f; n1 t
#include <string.h>3 T& X- b) j0 w) B8 j
main()+ ]1 ~* i5 i2 h2 k! W- o ~
{ char c[200],c1;
1 r# U) X4 z+ j9 t int i,j,k;9 t' x, |' Q0 u8 F; N
printf("Enter a string: ");
, l* u' y) K* [$ [8 N scanf("%s",c);
" B, @ _8 ^& S' _- P k=strlen(c);" s) b+ ~' ]1 \* k- E0 i
for (i=0,j=k-1;i<k/2;i++,j--)4 |' T5 {/ S: n3 A4 V! V
{ c1=c[i];c[i]=c[j];c[j]=c1; }
9 P- [3 ?0 a- u2 i$ u7 d+ W printf("%s\n",c); % b+ u5 s V+ M' t0 L. r. S+ H
}
7 m, P2 N* ~; ~/ z2 P指针法:
' j. x* D4 h. T0 C: W4 w4 yvoid invert(char *s); d8 S4 r" v5 w7 l, ?& |5 f8 ]
{int i,j,k;6 ?) [/ m) q9 y* g" J
char t;8 j3 p# o2 n+ G
k=strlen(s);5 o! }6 g/ T5 w
for(i=0,j=k-1;i<k/2;i++,j--)
0 M+ I: C$ {1 b8 }2 d% E{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
7 \, {' L7 R9 Q* I$ H}( m; B; w" l1 Y, m; g
main()" C5 e+ ?4 [- z5 e
{ FILE *fp;0 R" I% Q3 A6 y; h. W# w
char str[200],*p,i,j;1 `2 W" z9 H& v; I! O& W+ ]- B
if((fp=fopen("p9_2.out","w"))==NULL) - b% [( `" Q' K' {$ q& g6 H
{ printf("cannot open the file\n");0 n" k( @- v# A' z) v. I
exit(0); + H/ B, @+ ~* Y: E" \
}
0 O# _2 b" T8 j5 b4 M3 V$ ` printf("input str:\n");
* I0 f8 x/ \3 l# D' S8 T9 P& [0 s3 Ggets(str);4 @, m, j2 w% X
printf(“\n%s”,str);- g3 I9 o& B0 x; D
fprintf(fp,“%s”,str);
1 [$ L% S5 h! Q0 W& G& T) x4 \invert(str);
) N6 x& z/ o3 v5 J! i* ~: t* R& l2 u printf(“\n%s”,str);
( O% M" `) _- Y. i( W' Ifprintf(fp,“\n%s”,str);9 ]9 y: u. t3 l; Z
fclose(fp);0 O, o- q& F- G( I/ N
}
- K( \ _& k8 V+ T9 T
9 q! u) c5 r+ v9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/8 q8 L; c' P, l4 O& ]
#include <stdio.h>
3 f4 x0 u0 q3 ]/ o' C) dmain()
) S, i3 r+ e4 x. e9 C{ char s[80],c;
% T2 `+ E; a8 m+ a int j,k;2 L0 [5 B9 C v. c
printf("\nEnter a string: ");4 p5 B3 j/ d7 r7 e
gets(s);
7 Q3 S4 u) t( W( I% o# @ printf("\nEnter a character: ");
& l( Y$ z C) R/ L: K; M6 e+ C i c=getchar( );
" ~3 m* e0 N" U6 ]; F5 F ? for(j=k=0;s[j]!= '\0';j++)/ Q0 t/ b8 ?7 @8 h r. G
if(s[j]!=c)
5 { O6 q: c s& l% Z s[k++]=s[j];, }& A3 I x. W4 d# W9 d+ E& c9 `
s[k]= '\0';0 k7 t4 T- d5 P" ]+ d. U5 v
printf("\n%s",s);. [( s& [0 j3 Q/ |8 _: r
}5 t" u/ | O3 l8 _; w
5 d! ]$ `7 I0 q/ B1 V3 g
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
& _$ Q- s+ @' B6 q/ K% e) t" g排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/' Z' |4 o- w6 A
#include<stdio.h>$ {$ v9 [2 a4 \5 X$ Z T
void sort(int *x,int n)
7 F- E( Y3 s/ h G{, S% |3 V( A5 u5 }! w1 i5 S4 Z. M& P
int i,j,k,t;
0 B$ c* l& \- U) w, V8 U8 Tfor(i=0;i<n-1;i++)
l7 J- G+ D3 S/ b{
( u9 |2 J8 j( L7 z+ k9 \# `k=i;; i1 f/ l, [8 L
for(j=i+1;j<n;j++), F1 g7 x |! `0 ]* V2 u
if(x[j]>x[k]) k=j;
; u+ Z% t& {- e) D" y8 B- A8 C+ E& x if(k!=i)
& L- K. j7 N1 J; p& P; \ {% o$ _0 b1 P3 O$ B; ~
t=x[i];2 [/ x" o! Z2 m" k0 @7 d4 H
x[i]=x[k];
( e. x0 d# [' O# K: J% x& O* S% z x[k]=t;
2 P K. l8 y& e& D }
" d3 `- |0 c E}
) p, H3 o# D R; Y! V1 M}
k+ Z- {* Y2 ?0 x. @void main() c' J! p$ p0 R# v7 |7 j0 h
{FILE *fp;
6 N( [5 f$ C$ E% H int *p,i,a[10];
7 \- A* b5 b- q6 a; C; } fp=fopen("p9_1.out","w");
L; C) q" x4 A X( s$ u! j: x* I p=a;
* o# p- m8 @3 L% Yprintf("Input 10 numbers:");: U1 b- t `9 h
for(i=0;i<10;i++)
/ L+ o5 G" O. L2 J X# Oscanf("%d",p++);
- g6 {. Z8 \ H: g& k& |p=a;
5 V6 S7 E; W* ]" }) ]3 gsort(p,10);
9 O, J$ S; j$ P5 N; Cfor(;p<a+10;p++)
/ y( F* M1 c/ m2 O{ printf("%d ",*p);) N* k8 n! S& b7 h
fprintf(fp,"%d ",*p); }
7 ]4 o: \ C! H+ I# P system("pause");# D6 `. G$ v. V) ^. N" }# r" r, U" C
fclose(fp);; V& y% l$ L: M4 r5 g7 u
}9 M3 D6 f1 J" S- H
: M- g, @% S& l' E! J
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
4 [: s- H6 f4 n' |4 A8 w main()) w4 n/ i$ }! @8 l
{ int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
5 V8 h( B% b- j& c W+ g int x , i, j=6; /*j为元素个数*/
; U9 y0 P9 u. c$ @- p printf("Enter a number: ");
+ h" r7 k# I$ J5 L scanf("%d",&x);/ q: V( c6 o" K
a[0]=x;
( c8 X! v+ X3 F8 P* b i=j; /*从最后一个单元开始*/- Z5 F/ Q6 |5 q* z
while(a[i]>x)/ Y( N' s7 |) Y- o) {- z* C
{ a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/. `/ z; j) d, h7 W) i# v
a[++i]=x;2 t: g! W; `4 s T+ i( {9 H/ M) J
j++; /*插入x后元素总个数增加*/( w. l5 ~; C( i0 t& H
for(i=1;i<=j;i++) printf("%8d",a[i]);
6 B/ [1 p5 e9 g9 S, Y printf("\n");8 ?1 x l+ T8 c. A8 C
}
$ I8 N9 Y3 b5 R* m5 I( _/ X0 B0 v$ f) G: G- d3 M
, s0 w: |& H; y4 g. z4 n' s0 \
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/1 h. q) d0 q7 U# o3 [8 [
#include<stdio.h>: }6 L5 n( x, r0 ]7 A& F
replace(char *s,char c1,char c2)/ I6 h+ T8 g0 z* |9 W
{ while(*s!='\0')/ J0 e) x, t% c0 g. b' P0 V
{ if (*s==c1)
6 i$ B: u7 v' \6 Z2 b *s=c2;
! [9 \' j% @# {$ c9 A) k: c s++;
2 l: c6 ~4 R' o) [% t }
3 |0 F5 O' _; @1 N}
( W( x+ _% U/ W7 h2 O8 s3 ^8 Vmain()- ~& h) ^2 `4 U0 c) I( C% N' X4 U
{ FILE *fp;
3 o( B: i- ^" n; G# H# s" U7 rchar str[100],a,b;
, G- ~' ?& u8 o$ m' ] O if((fp=fopen("p10_2.out","w"))==NULL)- D+ I7 v1 _' V
{ printf("cannot open the file\n");
1 N' R8 Z2 }9 Y exit(0); }
+ {3 T% E( I; P2 ~ _9 y; b2 U. w printf("Enter a string:\n");" g0 n% t9 i& g' ^6 c( j
gets(str);
% O- b( f" L! a( y; q5 E printf("Enter a&&b:\n");
. W1 Z3 j* `0 O7 `; W$ ]5 T scanf("%c,%c",&a,&b);9 ?6 X, M1 \; b% N* E; j. \ ~- q
printf("%s\n",str);
# i, n) A. K6 ~fprintf(fp,"%s\n",str);
0 C# |; g* I, R- Greplace(str,a,b);
. |, S- Z$ ]. D# bprintf("The new string is----%s\n",str);
! H! K! |/ f" P7 b7 bfprintf(fp,"The new string is----%s\n",str);
9 p4 d U6 t5 _. d R& @, {fclose(fp);( [! d+ v* i7 x3 e) S
}
5 R6 |! d# s# t0 s) C% K/ z! j6 ]8 f E% A/ i
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
" M" _4 _1 W2 \( H, `, }+ J,不存在则返回-1。*/
1 K6 J5 w0 I0 {9 k, Xmain(). k; a2 j8 K1 r1 ^: o
{char s1[6]="thisis";char s2[5]="is";
8 M5 J$ I# W* u* G3 H" E( \! {printf("%d\n",search(s1,s2));8 N( s* K8 \; ~+ m$ X
system("pause");
: K! W, i6 Z4 ^: U9 d}# Z5 [0 m. u% o2 R N- d: x+ k* w% x
int search(char s1[],char s2[])
0 g Z& ~; X7 Z! m! u9 d4 N8 J{int i=0,j,len=strlen(s2);
6 Y" O7 x& _, q, C- i9 u+ Kwhile(s1[i]){
. P1 o$ v7 L' F% ]0 ]0 F% hfor(j=0;j<len;j++)3 J) W$ ]. d, w: Y9 @
if(s1[i+j]!=s2[j]) break;
9 W1 _5 ]! U7 m) Q/ v8 W0 cif(j>=len)return i;
5 c( q" _- T+ Pelse i++;; C$ U7 w) ?, b
}1 ^% x9 ~' I3 V0 I' _6 a
return -1;
7 f5 I$ |2 }' a$ j. x}+ W! s \0 Z% Q1 Y0 h
% ^3 Y+ X: g m, O+ Q
14、/*用指针变量输出结构体数组元素。*/4 Q& G5 O5 g$ l S4 c
struct student
|5 K5 O( T) o{
5 Y' J& ]% ?# ]& e6 Y% Pint num;
4 R% u3 I: t. T% uchar *name;/ G. x, u/ ?5 y. i- v
char sex;
" P+ K% A, ~: p9 |% Mint age;, A, G7 ~$ U, r- T( g
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
) }% C$ B" ]. n1 Rmain()
- @' S& ?+ U8 d& b4 K! y! |{int i;
+ n, ^( N6 r) _+ K5 i; S3 hstruct student *ps;
) i; v, J" \7 u5 W0 t' K6 y" hprintf("Num \tName\t\t\tSex\tAge\t\n"); " C2 H0 h0 K6 \) W) Q
/*用指针变量输出结构体数组元素。*/5 U4 ^7 s2 n& X$ w w* [$ Z
for(ps=stu;ps<stu+5;ps++)
/ f6 E/ @; @, a- s0 n. O8 Y3 b3 iprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);$ x. E7 U& y* N3 G1 F2 a# C
/*用数组下标法输出结构体数组元素学号和年龄。*/; x- o& ]* t6 K
for(i=0;i<5;i++)
7 y. Y! |4 Q* {) o% T; y% tprintf("%d\t%d\t\n",stu[i].num,stu[i].age);
+ P4 p- r. y: K}
7 o- p8 {0 d: ] u4 `5 Q) P8 _$ t$ V" k) Q
15、/*建立一个有三个结点的简单链表:*/6 s+ Z8 G( q2 R. S
#define NULL 08 E" r! p2 h- n$ T( ?9 c( S# f! t
struct student6 g9 h) _* \" N
{0 z/ o7 ?3 ~ l% r2 X
int num;
0 y# K) J! q$ @0 B$ t# Q8 k2 pchar *name;$ I- r+ f6 T2 y
int age ;
$ u$ V# \2 G& A, V1 Z9 Tstruct student *next;
0 n( s& B" a0 Z+ {/ Z4 Y( `};
' C8 e7 [& n3 X5 W2 ?( Q" Jvoid main()
/ T/ h: N/ [, z0 C9 T1 u{
6 \4 ], q, }" d; M7 vstruct student a,b,c,*head,*p;
+ ]6 ?: ^! F! x8 Q7 ^a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */( u6 d. f. C% e9 |# B
b.num=1002; b.name="liuxing"; b.age=19; V8 w' L" Q9 U9 w
c.num=1003; c.name="huangke"; c.age=18;" s( {6 j5 a* R2 c$ x8 m' y- I' S
head=&a; /* 建立链表,a为头结点 */
6 |& x- W0 Y9 b+ I& ~' @a.next=&b;+ t( f8 P' x# r; T2 k* A2 r. U
b.next=&c;7 B9 |* H# L2 S5 k& F( B/ J
c.next=NULL;
1 U& {+ q `9 v% B. }# ~9 r3 U2 c( np=head; /* 输出链表 */& e4 E0 U8 x' K* `
do{- J \2 w& T7 s3 H
printf("%5d,%s,%3d\n",p->num,p->name,p->age); ~! _; `! z0 c' q5 Y4 L; o
p=p->next;
5 G2 o4 d0 g( X+ O7 `8 b}while(p!=NULL);
; v5 y. y9 j' U2 R9 e}
3 P9 a& @6 b/ L4 l% ~8 r, G* K( k. k* R( G! L! r
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/* {5 Z0 D3 K8 H- X+ h# p
#include <stdio.h>8 [1 q2 Y/ |) {/ Z6 b0 y
#include <string.h>
3 y' O1 o/ @6 d' S7 w! K- z#include<string.h># g+ z6 C3 s4 O
main()6 ]' w3 o" |7 M; b% }
{ char s[100];* q9 H6 b# A. q) R8 a2 A
int i,j,n;+ z6 U/ n \8 C3 ~8 y
printf("输入字符串:\n");
m7 X) J5 z+ ^0 U# [9 vgets(s);
( I2 |7 o% D& ^, b5 pn=strlen(s);
: _3 w# U' z5 h! {! A8 s. b, Zfor(i=0,j=n-1;i<j;i++,j--)1 f) T; `. |# i7 k5 }1 e3 F* b8 q
if(s[i]!=s[j]) break;
# `+ h `/ D1 e6 ?if(i>=j) printf("是回文串\n");
9 K! }- q. I9 B* felse printf("不是回文串\n");
0 X# x5 y- }8 _1 A2 u}
( M% y: V% I& }( U, x
: t( j! t- o0 N3 C17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/* k. O6 ^/ [6 J9 ^! Y
#include<stdio.h>5 k- { A9 y9 ^3 V/ V* E# r! [
void fun(int a[],int n)- z# y) B6 K0 \
{int i,j,t;
8 c& i5 u& @9 F! |' ?$ ?; Cfor(i=0;i<=n-1;i++)
$ N: l# J0 M2 m% ^3 _# G. Z+ Jfor(j=0;j<i;j++)
. x/ }3 Y. ~* e5 k9 O. \ if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}7 ^; F }" ?! m0 o4 i
}
8 `% M' |) m$ y2 x! T2 O- V: amain()
; b1 u! E+ {# x. W# H7 h{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;( q U% l9 E" b9 C$ D0 U
FILE *f;
+ Q. t- z7 p$ C4 @if((f=fopen("myf2.out","w"))==NULL)) Z# E! e4 _' p' P& U
printf("open file myf2.out failed!\n");, C8 @% A. n3 ?# v7 _0 a
fun(a,10);
6 v4 @, _) v/ s7 `/ M! ~4 cfor(i=0;i<10;i++)3 F& j5 b0 ^; ^, t1 b6 z
{printf("%4d",a[i]);
% e/ i+ _; ^! |6 U6 @( c4 c4 t; Y fprintf(f,"%4d",a[i]);. p% K( r) Q7 Z% O4 w# b+ \6 r8 V" S
}
7 x! h2 d- E+ @; x `+ e) |0 ~fclose(f);8 |, r- _# V3 T/ H8 Q5 _
}1 g" b. G$ b$ {: P" a# n8 k. r
: [/ E; Q% n6 n9 A3 P
18、编写函数countpi,利用公式
, k6 M9 b- ]0 K4 { @, `: f
$ a- t1 A" C f& O 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。1 h9 ~& g5 P; v1 {1 Z& _
#include<stdio.h>
5 A( ~3 D' ^1 Ydouble countpi(double eps) /*eps为允许误差*/4 U: `, T+ T' R8 |' _
{& G2 m9 ^' ^3 | g& {0 B& m: _. J/ \
int m=1;% D5 ~; h2 B# x& ]
double temp=1.0,s=0;
' L$ B: ]9 { X while(temp>=eps)
) S; \- M! P/ }% L$ f: S { s+=temp;
- O3 r# }( B: u: E4 K temp=temp*m/(2*m+1);, w# J5 V1 G0 t6 s
m++;( x- N! P. H9 p6 T& Q8 h
}# D M/ J/ e" }1 `
return(2*s);/ }- Y, t5 Q# x1 ^* `: P+ U
}
5 e+ z+ d$ s1 }2 N/ _2 N3 F' Vmain() q& O. x1 g9 {, j! K8 Q
{FILE *fp;
* X" j$ _5 ~' L/ V: K double eps=1e-5,pi;
2 q4 p5 ]4 _ e* g% X if((fp=fopen("p7_3.out","w"))==NULL)
" U0 y* x F/ a; I! z { printf("cannot open the file\n");
/ ?' L9 J0 X( {( k$ U6 q) ^& h exit(0); 8 f8 _% P! c% m( S
}
$ N0 l( A3 b: n9 K pi= countpi(eps);
- O# g! a: l6 s. c% q printf("pi=%lf\n",pi);
- C/ l( _! n6 e7 }. i/ Tfprintf(fp,"pi=%lf\n",pi);8 e' x8 s8 _$ U+ b3 h4 v Z% A* b; j
fclose(fp);
1 \) R9 i( w: S5 ?} |
|