|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
; N1 ^" T7 W- s$ f
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
9 E# b# ?1 T+ c1 t. d#include "stdio.h"
9 I$ y; b1 W5 I$ Q/ imain()
+ p ^0 j( o0 N- e4 L$ K{int i,j,result;
5 M H3 c( U; X7 {: H' ^for (i=1;i<10;i++)
3 g6 s! r2 J K [% u9 Q { for(j=1;j<10;j++)
6 W) I4 ^$ s5 H8 K8 o {1 b/ { \- B: }4 q5 N! e) r& [
result=i*j;
: }" c0 ^3 d% o0 W; i printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/- z% A( _: Y3 I7 y d' J
}' b8 h& k6 b+ H) o
printf("\n");/*每一行后换行*/$ \ ^& O: h; K4 V( E$ ]/ l3 f
}
" T! H* h; f' z+ b}9 Z% o+ m- n+ w
! z7 _& @ E6 j. a% A% J; l
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
+ h; b' a' y7 @& G. @! g4 t兔子的规律为数列1,1,2,3,5,8,13,21....*/
! _( S2 O: _! n$ Z5 G9 K% rmain()" d7 O" Q' P& G& m' j2 b
{
3 s& @% x6 x+ P1 `% Z o# along f1,f2;
# R, C$ j. Z1 Q7 m d% {int i;! h, L4 J, j9 v7 D( a3 R
f1=f2=1;
6 N2 G! U+ j2 c2 R+ sfor(i=1;i<=20;i++)
* M+ Y; y4 j, D) q0 H. a+ C; e{ printf("%12ld %12ld",f1,f2);
W6 w) M) s. q& U3 T8 j if(i%2==0) printf("\n");/*控制输出,每行四个*/
2 m! o; B- ]6 e. ?2 ?7 f f1=f1+f2; /*前两个月加起来赋值给第三个月*/
- w" i$ O+ p4 w$ d7 S% C' }7 y f2=f1+f2; /*前两个月加起来赋值给第三个月*/% ?2 {8 { f4 H4 w7 Q% D8 I9 w/ }: f
}
' Z% |9 v9 c9 _}
; }! Z! _9 ?% M/ ]( G2 }5 ^. i9 x0 }+ b* P% G2 @
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。" i0 j3 O4 h. t: ^, i4 t
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,0 H- C+ C* H! n/ Y! ]
则表明此数不是素数,反之是素数。*/
, e! ~, w' w4 w#include "math.h"
# ?4 j, I/ k8 Q, ]2 x7 Ymain()
# m5 N; X8 c( I- v4 ^ s( z: [{
0 s) w( k+ r. ^" {- B! L1 dint m,i,k,h=0,leap=1;8 m8 s+ z2 _ }/ n8 u
printf("\n");# r0 U' v3 }3 M- _7 i8 C
for(m=101;m<=200;m++); k; ^0 w B+ X$ n, i) b
{ k=sqrt(m+1);% M, W6 `- \/ N; r6 M8 b
for(i=2;i<=k;i++)
8 I; U/ H2 K8 N: o. g( p if(m%i==0)$ c/ T# _9 H, ?( K' D' s: K
{leap=0;break;}. |2 p$ ?( c, p( {. {. q1 V8 D0 u1 a
if(leap) /*内循环结束后,leap依然为1,则m是素数*/
# u% m! s" H6 [: m {printf("%-4d",m);h++;
* ~ V W) D1 ~% c& x if(h%10==0)1 x# q/ A7 H8 w& i' P
printf("\n");
_. m; R* {+ J }4 ]. U; ~! W5 P. q% N2 d2 C- @
leap=1;
) V+ A$ `2 V) j3 E }/ K2 n5 v) ~/ K
printf("\nThe total is %d",h);
2 a' [7 h, j7 N8 ~3 y}
4 v7 t$ X: y' F3 W0 D9 U
& e% l, u4 e6 \$ f' ~* `( V4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程" e. S8 d- r O) r5 L3 m
找出1000以内的所有完数。*/* E2 y6 U# `" u* g8 t! S
main()( F; e/ l' |+ ~; P* R ]- `
{1 s9 J f. N9 F, K
static int k[10];% L/ m/ A) t) P2 R2 b2 e& d
int i,j,n,s;. }# b$ N5 R' E. ~
for(j=2;j<1000;j++)/ C9 f* ?8 m* n; Q
{
; ?; ]3 r1 ^9 a S, G& c n=-1;% `. C ]5 x# v
s=j;: B4 h) R0 b3 Y, ?! ?+ E% p m
for(i=1;i<j;i++)
0 \% O! M4 A3 j, P {if((j%i)==0)# Q. m) V( w( r8 w
{ n++;
3 x! D$ W1 j1 y" S9 r s=s-i;
3 [) D/ R" |. R& U1 n k[n]=i;& j l4 D# ^5 \4 S2 R1 i
}9 r0 G9 h. I7 a$ R* X/ G
}0 W4 Z) F2 L2 s: ~, x8 [8 t
if(s==0)
/ d; b2 i, O0 P; x* m {printf("%d is a wanshu: ",j);
; J. a3 q: u! l+ F for(i=0;i<n;i++)
2 |- R- d; d' W d$ | J" v printf("%d,",k[i]);: z0 x6 Z4 E3 Y& u7 P$ P. @
printf("%d\n",k[n]);
" J2 ]# e5 P* Q }
* W$ L% P6 K6 e0 \1 v @}( l6 C8 L7 ?$ q
}
$ T2 I0 w' I9 K) b4 ]
) A9 d8 i( A: y7 `7 x' d* B5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,0 D s( o5 p' x h7 g' S# Q2 `) s& P
请在空白处完善程序。*/8 f( n; n2 e: U4 P3 C& Q# d) x
main()
" L+ S, i$ Y/ z{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
$ K; p. j, ]4 |8 z/ U% L printf("input 16 numbers: ");
2 x1 q: t4 C p/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/ U5 M2 B! o8 e) P& k; o
for(i=0;i<4;i++)
' X8 J* c/ T9 a: m7 }! |$ z for(j=0;j<4;j++)
: X0 Y9 M- ?" v { scanf("%d",&a[i][j]);
2 l; q. @9 I( C& C' u b[3-j][i]=a[i][j];( ?. v, e- l2 q& i. [& V
}/ o2 @ _" a( S" O) }$ \
printf("array b:\n");; }0 p" t- I* B I7 Y7 A# V4 B" ~' x& p
for(i=0;i<4;i++)& Y' p9 W, |3 v: p4 p9 V
{ for(j=0;j<4;j++)" I2 g; [0 n3 O9 N
printf("%6d",b[i][j]);
% U4 M) ?$ |1 d printf("\n");
0 s+ H" h% j$ w/ _ }
+ t* A$ d) p0 }* V8 `4 q f0 w}3 Z% a v( I: _! C
" x% j/ b% O j* g1 Z. p, p6、/*编程打印直角杨辉三角形*/
/ X! ~; c: E( T/ O2 @9 a& F+ Lmain()0 `* S! ]. U* _4 |* C$ C6 I
{int i,j,a[6][6];
; g) _# o$ C2 i& R6 W/ x+ r9 ], xfor(i=0;i<=5;i++)6 J* L" g3 J1 d/ r X& [
{a[i][i]=1;a[i][0]=1;}
3 S4 [: v7 e9 {2 R7 s& Y4 ~for(i=2;i<=5;i++)
* Y- U! B# z8 w! d% S for(j=1;j<=i-1;j++)6 b+ L) L7 R, ]3 \* G' _
a[i][j]=a[i-1][j]+a[i-1][j-1];
! Q7 ]( ^, P" u+ [2 yfor(i=0;i<=5;i++)
# z( w' `. U7 y7 Y {for(j=0;j<=i;j++)
: a) n- [( a2 R printf("%4d",a[i][j]);
# i+ M2 d; g: m9 v9 U printf("\n");}5 U$ H0 N) D* }$ A, Q1 h8 q
}
* Y+ }5 l5 C$ @% _( K2 v
! X' e4 B, q3 {! B1 i7、/*通过键盘输入3名学生4门课程的成绩,
3 v+ d% ~. R& J+ L B; x分别求每个学生的平均成绩和每门课程的平均成绩。
. f! }( _7 S9 c6 m要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
, Q- r# X/ C x& Q* G1 m9 A其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
. A) @# c! i0 o# A#include <stdio.h>
; g( F: i+ T0 n#include <stdlib.h>
! L5 R% @+ f5 F2 q& kmain()0 U0 G @" ?, }" T$ a, U0 ^0 u
{ float a[4][5],sum1,sum2;
: F' @* L# z0 h: a* E2 ~) Z w5 aint i,j;
- _$ _" W4 ?: |7 m, p$ ~. Rfor(i=0;i<3;i++)
2 j( |' u9 O& G1 R for(j=0;j<4;j++)
1 b. ]! R# Z' |1 ^* f4 z scanf("%f",&a[i][j]);" L2 K. D) t% G$ Z q1 _* o1 W
for(i=0;i<3;i++)2 v# u# j" o5 s" C. J# q2 L
{ sum1=0;# o5 r$ O% G! o
for(j=0;j<4;j++)
) M9 F G, r, F& ^! x( y* ?$ ~6 q sum1+=a[i][j];: f# B) O$ e& e' I6 _/ `4 z+ U5 F
a[i][4]=sum1/4;' F ]/ {- W" R; p: j2 ^9 c
}
! Z# z7 K+ {4 X9 \; L1 Kfor(j=0;j<5;j++)9 X: V& I9 n" S$ B
{ sum2=0;; ~% d+ L S3 u. X
for(i=0;i<3;i++)2 n, ?( W h/ y/ K8 T
sum2+=a[i][j];
' `' Z9 K8 P d9 T J* Y5 ? a[3][j]=sum2/3;. _: d% J) A; `4 w& Z! a; S% e
}
; X: y' Z3 o, A) t8 {1 \ for(i=0;i<4;i++)! W* e: D9 F* T# f# K' _
{ for(j=0;j<5;j++), I2 L4 u7 L) W. e$ p, P) {
printf("%6.2f",a[i][j]); I6 M6 W2 e0 ~: [8 k2 C
printf("\n");
% h) e9 N3 E) L" @! g/ L, R& B, ^ }
, O. j" ^' N- h: ~9 z. D, D}! Q) C% q! G+ q o# {
/ `. e7 H% F9 i6 A8、/*完善程序,实现将输入的字符串反序输出,0 w3 Q$ r/ o0 _: N9 l" _- E. X8 v
如输入windows 输出swodniw。*/, ]8 T& [) O2 m& p5 A! g' A
#include <string.h>
0 B" S+ A* z0 |main()8 p% ~; b+ G0 C# ?
{ char c[200],c1;* A% C8 ^ f# K7 S% ?5 t& }# _ e# B
int i,j,k;
* e# I5 ?' ~& R/ S, Y printf("Enter a string: ");
9 i6 `* t: M2 C; V H$ B- b; R9 f scanf("%s",c);
7 T" T! H5 V: V8 o5 H k=strlen(c);% Y& h3 U6 j. K* Z1 p3 q1 A
for (i=0,j=k-1;i<k/2;i++,j--)2 ~. ^ l, }1 g4 r" X F
{ c1=c[i];c[i]=c[j];c[j]=c1; }9 Y1 C/ c, v5 l) K$ @
printf("%s\n",c);
! h0 P, u$ ~) x2 m3 }4 ^" n& s}/ M( s2 x( r* L
指针法:
e3 ?$ U5 Q1 nvoid invert(char *s)2 I* V2 ~7 k! H0 }. R7 G
{int i,j,k;
! \6 O+ t' o$ O) q4 N$ v7 W; gchar t;1 | b. C3 L& d- y
k=strlen(s);
. m, g D! Y( n$ vfor(i=0,j=k-1;i<k/2;i++,j--)
% D+ M4 [7 R6 _7 Q2 E{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
; W8 ~( y% X! e6 @}' T- f" h% ?9 L/ [3 y0 M f
main()* ~( U( [( g: L
{ FILE *fp;: X; x- X: x! s8 n* E$ \) p( x
char str[200],*p,i,j;2 A. H) v& j$ \3 H) Q
if((fp=fopen("p9_2.out","w"))==NULL) ) l2 T. v/ u' s @2 Z
{ printf("cannot open the file\n");) \6 C; z( ]/ c# D9 M3 `
exit(0); 6 \# W9 S1 z- [4 j+ N4 s
}
% R7 f% q) p" x- [+ P/ g p printf("input str:\n");
: B; z8 e7 p! F3 b/ l. ugets(str);6 ?% ]0 s* D, {! B5 a
printf(“\n%s”,str);- A" |( x. `! W( V3 u; @" K( K W
fprintf(fp,“%s”,str);8 g' r; z/ V+ u( u2 u4 m. ]
invert(str);! b- s9 Q. C4 s( E5 l3 Z
printf(“\n%s”,str);0 l/ k$ i1 G& `
fprintf(fp,“\n%s”,str);' T; o# n" ^9 E0 h' W0 I W
fclose(fp);5 O% K+ S/ m# W6 V y8 T
}
" f: ~# ]+ B# u
: Y m' e7 ] {5 }9 R: Y9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
8 G0 L1 x* l! h8 {- d#include <stdio.h>
3 Z4 p" O K) w: xmain()
6 P( c: {+ r6 L; J6 G% ^{ char s[80],c;. S3 {) c5 u* ~8 R7 [! Q2 G
int j,k;
. c! C; b7 f% i6 S printf("\nEnter a string: ");. D2 g5 G% a; Z7 l8 o
gets(s);
( v( V! J q% ^' T/ ? printf("\nEnter a character: ");9 F/ t0 ?) U8 f& b5 \! u
c=getchar( );* ~+ d0 K# [2 G; v9 T
for(j=k=0;s[j]!= '\0';j++)
& O* u9 Z! X1 {/ c/ v0 _# w8 q if(s[j]!=c)# c$ C4 V7 o! z/ k
s[k++]=s[j];+ L! D' G7 k& d" I' ~( `
s[k]= '\0';
8 z" q4 v+ w. i% { | G2 c printf("\n%s",s);' {: h5 v: R3 w: x# C9 W% Y
}
0 W- g5 J1 u6 T
2 r$ E% m; W3 `7 h# s3 @; Y' U% {" E10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小4 k% ? U( e" o3 [% w! k; A
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
, ~+ O: W6 r" m7 q5 N. r- Y B#include<stdio.h>, [- U6 e8 |: o3 B
void sort(int *x,int n)
$ }9 p% f, X% t* X{' a% X) L# V1 R8 v! c) F
int i,j,k,t;
$ r4 K% d" t: g. S( i! d0 `for(i=0;i<n-1;i++): C' [4 O1 v) l# x: V- {
{' r. ]0 d, o8 f) G, n
k=i;! o2 W0 l4 v2 K
for(j=i+1;j<n;j++)/ d6 ?5 M: }. Y' g
if(x[j]>x[k]) k=j;
& T4 a) N0 X' q. J if(k!=i)
0 y& v" ?: ]9 z {4 D. x$ A, Q' R3 h) e
t=x[i];1 f; p: s: n) c3 C, s* N
x[i]=x[k];! p' k7 u z- O- W8 R
x[k]=t;
2 ]- G. @. i; @2 [2 R }3 J+ G' f3 ^& u: f% A A
}
4 {/ d1 E" q" b( q. b}- Y5 G2 M; Q# v) j' g5 j
void main()8 e- `% t% k9 r5 I0 \) B
{FILE *fp;2 q& g( s+ D' C+ z+ J
int *p,i,a[10];. f; Y6 k' l5 S
fp=fopen("p9_1.out","w");
5 ?# J: w; i, n: ^5 X! I5 K p=a;
; h$ x1 N) z) N9 D: W wprintf("Input 10 numbers:");
# ~1 v( l* R2 t! h3 Tfor(i=0;i<10;i++)' N& a* E/ ]! F! Z( x+ l
scanf("%d",p++);; \$ i1 e+ M( l% |
p=a;, O F; z; E5 t" w* A# b6 M2 m
sort(p,10);
3 \1 j$ M7 A5 C, wfor(;p<a+10;p++)
+ N* H' [9 V) {- N" E{ printf("%d ",*p);
) h# X/ S- ]: r8 k fprintf(fp,"%d ",*p); }
* r( A) ?0 _ n+ ]( S+ T" U" } system("pause");
5 C* S, d. g. C4 k, v fclose(fp);, l) }0 }, s* A5 X0 q/ F
}
+ X+ y6 z, S2 E. a; R a, f7 }2 j* m
& z# O. l8 X7 P# d1 S9 h3 i11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/) c( N+ i4 s: F. [1 \# v
main()9 G( j: k1 E" S. k
{ int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
8 W. y* N9 Q# \( U# P2 m int x , i, j=6; /*j为元素个数*/& |& _+ e- d9 E. `
printf("Enter a number: ");4 ^5 l5 }( E# W/ x4 x$ n
scanf("%d",&x);
8 M+ l: D* X/ G' @/ x a[0]=x;. A+ n# x9 [+ b: v) Y3 s
i=j; /*从最后一个单元开始*/3 w) w+ b T" N; S
while(a[i]>x)' e* z/ g* I' z) @8 M2 |1 C U% D' _
{ a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/
) t4 J1 h% L5 ]# R6 s: R3 _7 p a[++i]=x;6 t7 o: p) W8 N! ]& p- T- u
j++; /*插入x后元素总个数增加*/# g3 o) h% `# G
for(i=1;i<=j;i++) printf("%8d",a[i]);2 N+ O: I7 u1 F* o- Z. r/ G
printf("\n");
" I) u9 ^3 Y* i) E6 m8 a}
( ^4 X6 T8 P. u, i! ]7 \1 \6 b0 k; G! c5 l0 z# w
3 a/ {9 }" g, A2 h" M; _( k) K6 d- ^
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/1 U9 V6 J- | y& Q' L1 d2 F
#include<stdio.h>
; j! m" s5 R5 _5 n4 y* n$ ?8 T# Q5 |replace(char *s,char c1,char c2)
0 }% P& m% J; N; ^{ while(*s!='\0')
/ v( v& \/ k: Z { if (*s==c1)
# g0 m4 K/ j+ m. U2 m *s=c2;
4 d, [* u# h+ _" z' G s++;6 T1 ~* C! ]4 U
}
9 R+ R$ d( H$ Z+ O5 w9 X* G}
8 Q5 `8 q8 s z9 M# Fmain()0 g' F! A4 Q. E) Z) U/ o6 E
{ FILE *fp;
8 y; M. h0 u. s) M+ Echar str[100],a,b;
1 @) z* n1 B) z1 @1 s if((fp=fopen("p10_2.out","w"))==NULL)" g$ S6 D2 S- {/ B8 n
{ printf("cannot open the file\n");: {+ x3 M. m) r$ `& s
exit(0); }9 C, u* P) ]; `2 i/ `
printf("Enter a string:\n");, }( @! f$ K+ t2 f$ A( @3 P
gets(str);* ^4 l3 v! \' x& c/ D* S P2 z& G! |$ A
printf("Enter a&&b:\n");
; c) X5 b" O! o: F2 f7 b scanf("%c,%c",&a,&b);7 f. w2 H) X2 N7 l* A
printf("%s\n",str);
6 } Q9 `, o7 B9 ^5 U0 pfprintf(fp,"%s\n",str); k/ g. C! n* I: R% L: ~: _8 X* E
replace(str,a,b);
3 Q9 H3 o) z0 v' m2 ^; u( S8 ?printf("The new string is----%s\n",str);9 c- G" H. {2 \% J! X
fprintf(fp,"The new string is----%s\n",str);
! Q0 }( E& s+ g2 X" J4 W6 m1 n: mfclose(fp);
$ B: b# C. E! F. F& k}
5 \9 y3 c1 t. }) d" ], ~7 S
: D" S7 r* ^, T, X/ T: b13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置+ X* Q: c6 N, s. h) A$ `
,不存在则返回-1。*/) B* p4 d4 h$ {( P9 {+ c8 v
main()0 q# r. C' f& U3 D0 ] a/ T: ~
{char s1[6]="thisis";char s2[5]="is";
8 f) b% s: p$ w) w4 aprintf("%d\n",search(s1,s2));
+ D3 u! S/ p" }* |% s; Zsystem("pause");
9 N7 W6 }, x6 ~- n3 I1 J* N}
l8 o9 x1 e: {9 A& }3 }& {int search(char s1[],char s2[])" m2 i$ T( B8 [7 A M. g8 i* |
{int i=0,j,len=strlen(s2);6 L# _) {4 {5 @- D
while(s1[i]){ K1 j2 ^+ `8 L, ?# A* i' z
for(j=0;j<len;j++)
, {5 j2 A: G$ K+ p4 Dif(s1[i+j]!=s2[j]) break;8 E0 k$ j d+ t" |8 E6 m
if(j>=len)return i;
: l& O3 ?' _; Z0 I8 Helse i++;
. q4 Q$ Z9 \0 H: j! l& ?, |- h& R" R0 M}
1 l9 i+ k' r8 A- Oreturn -1;
9 n4 g2 _6 Q8 b: n: Y! A}: c- O5 `* k- g
' X" p/ `; s: Z0 L14、/*用指针变量输出结构体数组元素。*/
* Z1 e7 M6 V* }) v% ]struct student: @2 V' t( S$ ~+ g, G+ l* g
{
9 x' o5 l; d2 n; Y: \int num;8 [* D: Z/ T/ N7 H$ }6 K# x
char *name;
1 {. R2 t) g' C5 w- r# W8 ]% h) kchar sex;
$ X" | j% K, S' Qint age;% \" I* |; O% t3 q9 A* S
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
4 x7 z0 m- v& \$ s; I8 Lmain()
8 e% P' [: @% r0 S* E- D0 `{int i;/ u& ^, I4 U8 `/ ^
struct student *ps;. q- z& ? m7 k& g( q" D
printf("Num \tName\t\t\tSex\tAge\t\n"); $ U5 S0 {$ }" S) ]- E3 ~ }
/*用指针变量输出结构体数组元素。*/
3 l6 d( O; u9 E/ d+ [4 J: ^for(ps=stu;ps<stu+5;ps++)1 o. A4 v# H, u+ S
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age); v5 R3 ]' M% {* k) ~
/*用数组下标法输出结构体数组元素学号和年龄。*/
( |0 A, p! C6 s# P- x' Tfor(i=0;i<5;i++)
( [6 B1 c1 H! C& V; t# Wprintf("%d\t%d\t\n",stu[i].num,stu[i].age);, v! O3 l% M' l( B: j5 C! F
}9 d( {+ H' K, M. g6 X* P1 s
( i# w% @ B% |15、/*建立一个有三个结点的简单链表:*/" U+ P0 m% G* T; T2 d
#define NULL 0
, v" w+ {3 k' E8 \, Z0 N: jstruct student
$ C; X% h& F, i! b& E! B* F8 L- h3 }{( y$ s2 q; E/ \2 b1 A3 t. M; J
int num;8 j0 B1 i+ P! g, h/ x" ?' B( p
char *name;
( }) ]/ x- B4 iint age ;
4 v3 O7 N( R. F* s6 ?0 b& hstruct student *next;" n" f9 ]2 U+ ^( d2 X3 \
};* f; R w3 e4 {3 T8 g% z5 n7 v
void main()8 \( i0 _% c& }* x
{
% b: h( ~2 y; x- I% kstruct student a,b,c,*head,*p;/ R) h- E6 o- W
a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */2 C( q: ?7 i$ C8 ~2 J7 m
b.num=1002; b.name="liuxing"; b.age=19;: ~# B/ j V2 y. B- N7 }
c.num=1003; c.name="huangke"; c.age=18; x2 ~6 r! [6 _2 e" @8 ~
head=&a; /* 建立链表,a为头结点 */& l( K* i$ W! h# }
a.next=&b;- s# ?9 | _+ L" o: k5 _
b.next=&c;
+ k# b& I3 U& A' e3 X* fc.next=NULL;3 c8 H# ~1 W. D; @; ~/ M0 e, B
p=head; /* 输出链表 */
0 w) l, E. w" _* ~* w6 Cdo{5 [4 q5 e4 `- ^* H. t
printf("%5d,%s,%3d\n",p->num,p->name,p->age);4 _" n. I3 W2 @& T
p=p->next;
5 [, n" F% x1 Q# L @7 h6 @/ M}while(p!=NULL);
- u) y6 Y2 [, o) l& p: }) F}' Y1 X% k/ n& @
: a S6 h% a# e1 [. ~& I3 x
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/: b& t% v+ m$ q+ @1 A C
#include <stdio.h> c* K9 C `; p4 a
#include <string.h>$ O3 X4 V( x3 U- N
#include<string.h>9 Z) M# l4 d$ t/ n2 X) L& P
main()
/ o9 m& F: G6 i/ p) Z7 _# D{ char s[100];5 P @. s- J$ k& s( _
int i,j,n;
' q7 [7 [) [- jprintf("输入字符串:\n");7 \* z' K4 O% V; Y
gets(s);" P/ w% w, ^6 l( G, I9 n+ ~9 i8 r* I
n=strlen(s);
7 A* j$ S+ T0 ]- M- C3 Vfor(i=0,j=n-1;i<j;i++,j--): k0 m* T. K P8 A1 i
if(s[i]!=s[j]) break; v! F& i/ W( s x& q
if(i>=j) printf("是回文串\n");; n" H) M9 g, b. R( j. Z, G$ w+ o8 T
else printf("不是回文串\n");5 M$ ]" P. m* q- n. g; E- Z
}: X( p8 G2 Y) a* E: V/ h
+ |7 V' c7 s4 }$ U: z7 ^17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
- D" g8 L+ ?1 h+ i! W- d' v#include<stdio.h>
U# D: F, e* B ~void fun(int a[],int n)* O6 B& H& b) D8 ~; C9 M3 j
{int i,j,t;
f6 b" g0 v6 b9 efor(i=0;i<=n-1;i++)8 \: J6 ]( }, ^' [
for(j=0;j<i;j++) s' V; y) J1 X( _
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}- M) M' j6 z0 }; B2 r
}
# l# o! N& J! h" \main()) B7 `8 A C8 V2 F; n% x5 ^
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;- }. _* x: J; J# g; a5 ~( Z$ ^" t
FILE *f;' ^6 W% S& Q* q! M( [/ X; J
if((f=fopen("myf2.out","w"))==NULL)
0 v3 ?5 p; ]9 \ printf("open file myf2.out failed!\n");
: k1 P% m" h1 H6 \/ ~fun(a,10);
; H0 o' M' \. y$ y9 a# B$ C5 n _: Ufor(i=0;i<10;i++)
& q# s4 s, t+ o7 a2 S* o {printf("%4d",a[i]);
, u c3 q0 H# E, O& b; b5 C fprintf(f,"%4d",a[i]);
J7 c6 n2 u: z }
: j; ^, h" Y; C8 G8 Hfclose(f);
' L4 M2 X' q! P7 F3 {* H+ e}
# I2 e# o0 x# Z! E3 [8 d
5 l. {" w) r& u. I! r5 d# R18、编写函数countpi,利用公式
/ ^$ G# {% R. _4 `: |8 z: J" ?& S
5 X& o$ Q& e$ i: I/ a+ y 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
* R- e& i, P! T; i" v( ]#include<stdio.h>
$ U4 K- ^3 ?4 ~' P! u% x4 hdouble countpi(double eps) /*eps为允许误差*/; w, Z! Y3 X( H7 I E7 f
{6 ]' e5 P5 Q3 B- m) a3 S6 D. z0 v
int m=1;
% }* l9 x6 a6 H* K double temp=1.0,s=0;$ H T) B0 ^ I8 A: A/ y- P
while(temp>=eps)( G( \+ ^4 }6 H1 H% X' @% b
{ s+=temp;
2 p+ X7 g9 m: h temp=temp*m/(2*m+1);# b$ X. Z0 _; ]
m++;
$ K1 l( l2 k! X1 \5 } }! ^6 u7 t& P5 o; M
return(2*s);7 i! x7 E) G5 H% y
}( |! M% d; V3 r. L
main()& P# G5 K) {+ z5 M$ F) {9 l
{FILE *fp;1 R0 Q% b4 x+ _2 ^/ z
double eps=1e-5,pi;
, P) U+ U& \) e) ~$ c6 J' H if((fp=fopen("p7_3.out","w"))==NULL)
7 Y$ t1 \1 Y3 {1 u5 p { printf("cannot open the file\n");" i9 G; K# R; L; ^% i7 I9 @! o
exit(0); , i) R" u- V! _& s }# F C
}
5 @2 _3 c* z: d) F" k: I) G pi= countpi(eps);& d* S7 D% S# ]& r7 K
printf("pi=%lf\n",pi);+ H2 t0 x) k& q) n x d' D$ b! V
fprintf(fp,"pi=%lf\n",pi);: O6 U* f% ?, {/ Q% j
fclose(fp);
' Y' M: R) O/ k$ N* a8 p" Y; }} |
|