|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 z5 y+ s2 h# H9 Q2 E
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
6 h0 `$ \' o, G7 N4 _#include "stdio.h"6 B) x- a8 d) q. c9 B7 _. m
main()
( p) L% g6 M% L7 U( ~9 u{int i,j,result;. ^( y4 [, a, h- `/ W! Y/ [# u
for (i=1;i<10;i++)
/ @1 [( E. v1 ~ { for(j=1;j<10;j++)
1 Z* c1 W3 d8 N2 S. S6 R1 e3 F5 m/ U {
8 ?9 o8 Z; H/ P, o result=i*j;
$ P. }) o, C" X5 a5 i8 e7 K printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/4 Z' Q* G/ W. o- p9 o# F: o, D
}- V1 ?6 m a2 C4 ?* u
printf("\n");/*每一行后换行*/7 W7 x7 `8 s2 H: M* q! y
}
( C6 a( ]; b& i1 u}
/ |; ~$ _0 r% X4 n1 g. g+ I- o" E1 x' K i( H0 ^
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
% g# b: g+ a% f8 O: R9 U兔子的规律为数列1,1,2,3,5,8,13,21....*/* G& U: x' T d' m+ s
main()
* H1 h) J! U/ N% k$ r/ [{
1 N4 N/ m' i r5 _8 flong f1,f2;" E z' d$ I6 g' [! s
int i;
, w/ }/ C. z8 f' C3 sf1=f2=1;* a! l3 o0 K W- n
for(i=1;i<=20;i++)3 O. m3 d G+ L
{ printf("%12ld %12ld",f1,f2);* Q* N& l' Z: F
if(i%2==0) printf("\n");/*控制输出,每行四个*/8 e" d8 i* j$ k h7 q
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
2 S$ c9 r! ^& J- C, ~3 G$ M6 q8 h f2=f1+f2; /*前两个月加起来赋值给第三个月*/8 `( u' m7 r+ C7 N. m5 v
}$ a8 }6 `4 W g8 w0 c+ M
}& S: w6 } o. J: `6 R, Z
- o* H# R+ k" k# o$ T2 x3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。, ~* |7 n9 R* s0 v4 c$ F! U
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
0 M& T: B ?# i% [! U 则表明此数不是素数,反之是素数。*/: Q$ Y2 p3 e3 t
#include "math.h"( N4 Z) }& y4 L8 | P
main()& ]( d0 O7 t+ F/ v; Q
{
, w, Y& d, Z! X5 aint m,i,k,h=0,leap=1;
# p1 R6 c4 Y/ u G$ T- X: Gprintf("\n");$ `9 K) q7 i) c
for(m=101;m<=200;m++)
( A- Z. ?8 |) l2 K { k=sqrt(m+1);
: u* e! k, D* f for(i=2;i<=k;i++)
* l0 B o8 K1 u6 { N ?% C! C if(m%i==0)8 {' Q: ^; q' a" k0 u! z6 x/ t
{leap=0;break;}
( \7 p: X( ~9 F% _2 I if(leap) /*内循环结束后,leap依然为1,则m是素数*/
/ r/ o3 I7 @# M/ M! d/ V {printf("%-4d",m);h++;9 s9 U; U; n7 p @6 h
if(h%10==0)! ]2 D* k) Q& k) j
printf("\n");
& f- u% ~$ ^; m9 u5 q1 n }/ b. Y* V0 C; K ~
leap=1;/ O3 i* g0 n8 Z
}. O- g$ b8 Q' @. C7 d
printf("\nThe total is %d",h);5 _$ E6 x$ ^4 C2 m
}! E3 S9 E/ c" d; b1 X9 f
2 H) r# l ?" u, S! W4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程$ f$ R& J% M" I k o0 T: k1 {
找出1000以内的所有完数。*/4 {$ ]% B! U, f5 F: Z9 \% P
main()
* m5 r' @" k, ?: ~* K* B/ Y{
# I! r# z4 \8 O; Y7 C0 L) }static int k[10];
: r+ {6 ~1 b3 k/ i9 Y% E- l/ qint i,j,n,s;' T0 B: w3 ]3 G
for(j=2;j<1000;j++)
. V; o5 v* O O$ d% A1 D" ` {
* o s# r' J$ d! | n=-1;' o& m; c/ R9 Q t. z5 d2 z4 Q
s=j;6 _& h* M7 F5 R9 M* C8 H! v+ |! |5 R
for(i=1;i<j;i++)
4 v; c; B0 n( Y [3 z& Y {if((j%i)==0)7 ?( B9 W+ g3 d ^8 ^& ~6 v6 H
{ n++;
7 h' E0 @, N* J; }: m2 q1 e: i s=s-i;
( p7 C% }: y+ l( x+ [8 }" S9 N k[n]=i;; `5 x W s7 C3 ]% p
}0 s5 V) ]5 V0 g9 B
}
! K; G4 H0 @% Dif(s==0)
* m; C( y0 l% T, O7 e' N; ^( e8 ^ {printf("%d is a wanshu: ",j);- v. X( V6 s* t2 } w
for(i=0;i<n;i++)" F2 N# f. k: f) u" T) \* A. _
printf("%d,",k[i]);: f; V7 a c+ l- W* t7 ^/ b
printf("%d\n",k[n]);
" Z T: H7 r, ^7 ? }
! m& w: C7 y5 L% c5 q0 W2 f}
4 C! s; D" m( e$ q}
& y2 H% C$ x# I/ C& n$ ?* @8 s. B q. _: r9 `5 s9 K- d! e
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
8 @3 u" L+ x: d& \5 \* c( H请在空白处完善程序。*/! ]( z* T$ b- L- m6 c4 Q
main()* ?; K- k A0 N( i: H
{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/. R4 |/ A1 e( E! f$ Y: L' o4 b
printf("input 16 numbers: ");
3 ~: ]" Y* |) [/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/5 j, y$ a, D! U) w: A. G2 s
for(i=0;i<4;i++), l9 y% p7 F$ w0 B. z
for(j=0;j<4;j++), k6 O D2 K5 ^, Y& W
{ scanf("%d",&a[i][j]);; @' D) B3 V6 H2 s" Y
b[3-j][i]=a[i][j];& v! w+ W0 T% k' Y/ }: {7 S
}
: y0 y* q7 ?. n- ]. n9 T: ^6 j printf("array b:\n");
; m" l1 r3 S5 a) @: ?% i; d1 \1 c for(i=0;i<4;i++)9 t0 o+ }2 t( n' ~) t2 b3 T
{ for(j=0;j<4;j++)
2 o" S: R( Y4 z- E printf("%6d",b[i][j]);3 E3 K; M, P8 X, {% ], ]2 E
printf("\n");
/ f( C2 Y6 b/ @6 K, p. I. Y& B4 b3 d6 P }
8 p1 W$ i% S* i, x0 E: h- x}
: U6 v- `9 X$ M1 W* u7 e' L; ~7 E4 L2 t
6、/*编程打印直角杨辉三角形*/
4 |: B9 A; k9 z( j3 M% b( p f1 Dmain()' T/ P$ N6 `# f' W$ c& f8 N( [
{int i,j,a[6][6];
3 W0 [- T( M5 q/ Rfor(i=0;i<=5;i++)) l9 i! m4 R& \6 }6 s$ B
{a[i][i]=1;a[i][0]=1;}1 R' W: B9 B0 I2 s# b* Q0 A
for(i=2;i<=5;i++)
9 E' _( F( J4 w+ q3 c) M6 b for(j=1;j<=i-1;j++), ?% h( A$ h! d$ l* h; u
a[i][j]=a[i-1][j]+a[i-1][j-1];
: I4 @/ \4 D! E, |- Pfor(i=0;i<=5;i++)1 h; J+ O1 q/ y1 a- c" ?* @
{for(j=0;j<=i;j++)+ @% x6 X/ g2 ^
printf("%4d",a[i][j]);9 k: e$ x4 ^& ]5 v9 T
printf("\n");}- V7 Q5 [! w% V$ w g1 c( C2 B
}; m C# t( G0 B- s* v
% e0 h0 I- r: E: z7、/*通过键盘输入3名学生4门课程的成绩,3 `: e- [+ x! G4 t& g" W1 ~
分别求每个学生的平均成绩和每门课程的平均成绩。' I: {7 {3 J2 }, E7 r8 V
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
3 K; [* I) N, Q8 A+ [7 f其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
7 s/ R: w5 a- ^1 ~6 U K" `+ j% q( ~#include <stdio.h>1 N. m1 `$ H S. N0 [* T
#include <stdlib.h># o2 _! F) J2 ?
main()1 Z! h* t2 X, _; o+ g
{ float a[4][5],sum1,sum2;
- d/ D! p( w' P) I- \0 p/ [int i,j;
# F: L$ c$ V+ Mfor(i=0;i<3;i++)/ V5 o6 f3 T: E- c
for(j=0;j<4;j++)& V) K: p( r8 ~' x& z* m, ^
scanf("%f",&a[i][j]);6 I5 F+ v0 O0 I; i! N5 ~5 s; I
for(i=0;i<3;i++)8 {3 ^9 K9 C, n: T& O2 S5 a0 q( ^
{ sum1=0;
: A2 i6 A* J1 g* i$ o for(j=0;j<4;j++)# R# ?; `3 ~+ r5 A( ^$ |7 x3 X2 v
sum1+=a[i][j];
& F A. t# O4 o- r" O7 W a[i][4]=sum1/4;% m d6 [" a7 s+ E! c# Z; @; d
}: g+ t e) M" ^# T
for(j=0;j<5;j++)
" Y, v' w: |, l. E- |4 l2 o{ sum2=0;
0 d0 M: S% B% ~/ [; S for(i=0;i<3;i++); j3 e* D" x" A! f6 z& ~3 P
sum2+=a[i][j];& n9 N8 E; e" J& O8 Q$ k
a[3][j]=sum2/3;
) r1 N, f5 ]9 [. q) H. f! T7 H( K }4 C, ?5 L( ^$ d
for(i=0;i<4;i++)
0 e2 p1 a- f U2 @; F { for(j=0;j<5;j++): a7 v1 o8 o i/ T8 {
printf("%6.2f",a[i][j]);( k# S" h$ X4 G- f9 E* M3 d
printf("\n");
5 z* D" W% i1 h1 Q6 n }
c, `8 E6 X' s* g0 Q, @}
. F( N- b% i2 C! Y1 N
' b% k* H. C7 O Q! c( y- M2 {8、/*完善程序,实现将输入的字符串反序输出,
8 x* T# U' @" p9 f% s如输入windows 输出swodniw。*/) x3 ?+ p6 F+ ?% Y4 U- |8 @
#include <string.h>
/ G/ D( W7 \& x" D0 h! D T# ~main()( C" J- L2 q2 ~0 H: Q
{ char c[200],c1;4 o9 U. X6 E1 L: p" J/ P! E
int i,j,k;/ r- m6 p; Z7 l! J3 V
printf("Enter a string: ");/ L4 F8 d; A2 ^0 c
scanf("%s",c);/ d4 T% D4 K$ D/ x F
k=strlen(c);
- j" B5 b1 {. b for (i=0,j=k-1;i<k/2;i++,j--)2 o$ ^, Z+ ]1 A7 ^0 _: d
{ c1=c[i];c[i]=c[j];c[j]=c1; }
) q, i" |! n+ E printf("%s\n",c); : k( @# ~9 j# p, j5 A
}
7 s; y+ B1 [! u* ?) l( G( D, G$ u指针法:
. k6 x$ y/ P" i+ C1 @void invert(char *s)) }) D! ]. {4 j4 `% z. _0 q( }
{int i,j,k;' f+ v# r; s0 I; [* B
char t;
* `6 U1 a! {9 a& a7 |k=strlen(s);
1 U/ @' D4 R `. E& V$ D7 J1 N1 Afor(i=0,j=k-1;i<k/2;i++,j--)5 [8 D( `% l+ o2 G
{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
% e# ] F. Q5 m1 r( m5 a7 I}: a+ o- B( J: B/ Z J8 k
main()2 u& ?; ]1 k+ H4 S; V
{ FILE *fp;
" l$ M8 T" y/ R5 g( ~ char str[200],*p,i,j;$ e& V" A3 H' C2 G- I2 F
if((fp=fopen("p9_2.out","w"))==NULL) 3 b' t" W; G: Y1 i( X
{ printf("cannot open the file\n");
9 N+ t7 l1 H: b( S exit(0);
, n7 Z- {; `# T# c0 i/ m }
+ I: k: s- A3 ?1 y: Q8 V printf("input str:\n");$ t7 Q+ v" J; c. V5 }
gets(str); ^) G; `' J0 }6 k9 T
printf(“\n%s”,str);
" u& ~& b5 k+ L% ofprintf(fp,“%s”,str);% _+ _( n& U \9 s, s2 e
invert(str);* g6 p. y" [# t1 K, P. g/ k) V
printf(“\n%s”,str);
! J/ s& v7 x% G H. b9 U& |fprintf(fp,“\n%s”,str);
, P# [% }1 k% M( y' ~fclose(fp);% A- R+ R8 J4 @. {2 h9 n
}- M) d% f9 y. h$ B
; G& r, i7 K% P2 I B% M7 f2 p' |9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
$ N) u7 g8 B% P, f4 O) W, G$ _( y#include <stdio.h>
* H1 v" q4 R1 J' dmain()3 w% X/ \3 w5 x. a9 b! {
{ char s[80],c;
, T- l' ]( w: n: k' z3 ] int j,k;
0 ?/ g5 J$ {. }$ @$ z3 U printf("\nEnter a string: ");
' N+ A4 b$ _0 \" v. A( k! a gets(s);
/ ^9 ^! g- C: m% J+ o9 n B! @- } printf("\nEnter a character: ");4 Y1 k, e* M5 G# Y
c=getchar( );
: M8 [& Q/ C# v* _, j2 P$ E1 [ for(j=k=0;s[j]!= '\0';j++)% o3 ^4 |# h, h
if(s[j]!=c)
/ Q }: y; C7 H3 w7 g) z" P s[k++]=s[j];/ U* b4 N. H0 h; X3 U! C, X. y% ]( a
s[k]= '\0';% q1 v9 |7 x1 l
printf("\n%s",s);
- O; `5 v: r+ o) p5 v2 R) v}1 W2 @: A1 b7 Z s
& P: B, `# B$ p ~1 `10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小7 g' V. c! ^" O" u
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
4 q0 a: Y! q" ~# Q$ S# c! [9 w- P#include<stdio.h>
% ]' t6 E+ K2 L2 p: L) x$ ivoid sort(int *x,int n): \7 `, l( T. H5 ` U
{" a5 V! D9 N) R' U* J8 m
int i,j,k,t;4 v6 z" w2 M7 m) D/ d% _. a
for(i=0;i<n-1;i++)
, ?* l4 T1 Z7 o) ?# f- h{
7 Y. S i5 U+ h7 n- f @k=i;
2 n0 l( G( a9 D+ {0 @" V. A* Lfor(j=i+1;j<n;j++)
/ L0 X% G$ v3 P; F6 H; T if(x[j]>x[k]) k=j;. Z" f6 V' s1 g+ u ]- o6 R; o
if(k!=i)
5 D8 ^5 p! v h1 P! h {# ^; d/ h5 i9 v! N! ~( Q
t=x[i];( ?* u! h/ ?' I. n+ |4 B
x[i]=x[k];7 l' B) m9 f/ d1 z% t# o1 h
x[k]=t;
! k6 m0 A. [: v9 s) l- Y, k }" r: z9 K% w& b/ Z; I
}$ @- a) N% F( n
}
4 |% j7 K' i" }! f! G0 G( D' V1 b- Pvoid main()
; s* M$ @9 f3 J, L5 V{FILE *fp;
) v8 l2 b+ L, b. { int *p,i,a[10];
8 k) `; n9 m( @. b0 j( [ fp=fopen("p9_1.out","w");
6 P; [6 u! K: @9 n5 ?9 ] p=a;
- B7 n: d _ n3 K& V; f0 Fprintf("Input 10 numbers:");
w4 O, N8 g4 @0 z3 f1 |for(i=0;i<10;i++)
% g, S S ~* W$ F5 \! }- H0 Q- pscanf("%d",p++);9 C3 i2 Q8 Z, s, W
p=a;
& x$ e, h4 Q6 t$ Y4 m& r& N5 ssort(p,10);
) T$ i& E8 w" J. w! L1 N6 A- ffor(;p<a+10;p++)
% n ~0 J! v" m$ q: `{ printf("%d ",*p);9 p' m7 o+ o" E8 W. w/ m
fprintf(fp,"%d ",*p); }
" D' C6 h$ e4 n1 j0 O, F. k system("pause");
- X: i2 y1 R3 f ^: C" h fclose(fp);
- f; {$ y X9 V7 A h2 \}
6 |9 u6 k T/ H. K+ t6 `/ s. a2 l3 l" P) R
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
) l8 r: e, _$ |& [8 C) }& L main()! Q+ J! w+ m7 m& D2 L: k1 n! ?
{ int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
# W }7 M+ ]1 z" a* b int x , i, j=6; /*j为元素个数*/( c9 p0 j. J0 C- Y
printf("Enter a number: ");. X3 z( q0 E$ c4 C! m/ t
scanf("%d",&x);
6 O: N% v9 [$ |$ R! t a[0]=x;; N m7 {! O0 J6 C: O
i=j; /*从最后一个单元开始*/: L( U0 u6 U+ I {8 v
while(a[i]>x)
) s( ^6 F2 a! h( j4 M! s { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/5 [2 V2 C7 H# [0 c. v7 o
a[++i]=x;! F9 Q2 c0 l7 k/ f, E
j++; /*插入x后元素总个数增加*/) E# b; T6 Z+ n0 W6 a
for(i=1;i<=j;i++) printf("%8d",a[i]);
8 x$ ?+ l5 L1 ?, D" w9 S6 q printf("\n");) p" }& k7 Z0 A+ Y# F5 e) ?$ X
}1 {$ L' ]* g% H2 n
* S4 m1 X. {% i; f8 j6 o6 c/ P; h- Y3 K
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/; h3 S7 z) l. j
#include<stdio.h>) o; T) b. n$ ?6 [
replace(char *s,char c1,char c2)
7 f/ l8 W; e o& O/ E9 \{ while(*s!='\0')
/ W: [. K$ s8 G1 n9 W { if (*s==c1), S* B/ K, U, P; ^
*s=c2;
, b8 f( f% B) i s++;) S1 o( z" G) ?( z! |% F
}
0 y9 q; l$ e1 Z}# c c# r. P7 f7 ?8 s. }( d& E) V
main()% `1 R0 M* c" q; @$ Y
{ FILE *fp;# Y# ]+ v9 B1 h
char str[100],a,b;
" ^. S& v2 f2 Z& u0 `" s4 D if((fp=fopen("p10_2.out","w"))==NULL)5 Y9 p$ b% Y4 r9 |( n: H
{ printf("cannot open the file\n");) f I! l+ \% B. ], `
exit(0); }' T9 Q6 c$ L! O( Z0 ?: r. D
printf("Enter a string:\n");
0 z7 }0 a# ^8 ^% Q gets(str);
! \5 L# O/ s; ^5 v printf("Enter a&&b:\n");
7 Z; b% r8 q, ^" U scanf("%c,%c",&a,&b);1 J7 R4 B4 n+ ?# U# t
printf("%s\n",str);3 G! ] l2 ?6 J7 U; N9 d7 ]5 t
fprintf(fp,"%s\n",str);8 ~' M0 H0 D" L" d0 i6 Q
replace(str,a,b);
8 a; a7 a8 o9 g% M$ Mprintf("The new string is----%s\n",str);
- L- G7 V. t p6 }/ k4 O% rfprintf(fp,"The new string is----%s\n",str);
4 ?2 `2 A8 r$ A% B7 jfclose(fp);
" N3 v3 G$ Y$ n H0 J% m}
) z. r6 Y$ W/ C* t5 `5 K
8 U! O5 g" z+ h13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置% ^8 P0 Z& B! `3 b4 d% V7 L* q7 L
,不存在则返回-1。*/
; s) j! G( G& c4 Xmain()
6 O8 ~5 V5 Q4 D" h( I3 Y5 l{char s1[6]="thisis";char s2[5]="is";6 ?* M7 E9 {- Q3 H H: J; J" U
printf("%d\n",search(s1,s2));
3 u$ d" o9 q0 S4 hsystem("pause");
. L! G7 M; M5 ]}
: a2 C1 U3 Q8 M$ }+ m8 u; v- }int search(char s1[],char s2[])
7 _- l1 d/ U& Q& E4 S0 p i+ g{int i=0,j,len=strlen(s2);
: D; t7 R3 `* H# \4 |( Vwhile(s1[i]){# T% A( k) C* e: e w# D
for(j=0;j<len;j++)
" |$ P, h( j$ `; Cif(s1[i+j]!=s2[j]) break;
2 }' U2 `/ i" l" w7 Wif(j>=len)return i;
% ~ p3 x) f! `else i++;
& I* t) q7 h _+ ]! M7 B/ w, c}
3 D' u6 `4 {* u Yreturn -1;3 l5 B0 B( t- x5 n0 y8 V3 r
}1 T. |$ C# O) Q) P
$ H; _6 G6 w0 ~. r, u) P) p
14、/*用指针变量输出结构体数组元素。*/5 P9 w9 R7 L$ m/ e2 t. E. z
struct student1 x; t7 ^: C& x2 a7 E7 n
{6 o9 d+ @7 ~% l
int num;
4 F [% s l* C% [3 v, c5 z. schar *name;9 A8 a8 C- q/ `6 n ~
char sex;' J0 J) H0 h( X6 J) [2 i
int age;2 d$ H8 F' w; H/ ?, Y4 d7 s4 o
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};3 `# e2 P, J! b- k% W
main(); o$ J( m4 Y/ o2 b- d
{int i;
) l5 w/ u; }& astruct student *ps;
; M: ]2 @! i( l/ \- fprintf("Num \tName\t\t\tSex\tAge\t\n"); % s9 [5 c$ @5 U0 e
/*用指针变量输出结构体数组元素。*/
7 m# c: w# Z, T4 Vfor(ps=stu;ps<stu+5;ps++)0 u* ]- P) ?& P) b" F+ R5 E4 R
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);( V4 U& m! [8 T/ B) b' C3 Y
/*用数组下标法输出结构体数组元素学号和年龄。*/' }. W. d( P- @# G, \% b
for(i=0;i<5;i++)+ v- ?0 }7 r% F9 E0 G! X, l
printf("%d\t%d\t\n",stu[i].num,stu[i].age);1 j: @% j0 A( W# V5 N: L- R$ d5 ^1 ?
}
; v' z. H# Q' e) j0 {
) [% ~7 k$ o8 T, M15、/*建立一个有三个结点的简单链表:*/: u: ?3 ?. Q1 o2 e& q+ T
#define NULL 0
* `& t& N. Z$ rstruct student
" B! H5 p3 w+ | s! N{
4 t2 }' g9 d) x& V9 T. Sint num;! b0 ~% f& J5 I0 |# M
char *name;; z9 j- c' M7 K6 F }7 j C
int age ;' Z; w/ {" `1 h5 o& T9 b
struct student *next;
% m V3 |1 c" M) U: J4 N$ X3 _" n! }# q};
, H. Q0 F7 _! ]void main()& T! {+ b6 J6 Q% t; a* R( K W
{; J n. l+ K# ~7 b9 O, M
struct student a,b,c,*head,*p;
2 @/ c+ n3 [- `: L0 O. a, Ua.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */% \% r9 v/ m) Q) i5 q$ @
b.num=1002; b.name="liuxing"; b.age=19;# E9 \5 K" M# k k; L" A% V
c.num=1003; c.name="huangke"; c.age=18;2 I0 ~' R8 s& M: y" K7 o/ F
head=&a; /* 建立链表,a为头结点 */; U% f1 X0 S# B' M
a.next=&b;
8 c3 i3 Z8 N, j8 A8 L$ @, jb.next=&c;
9 @% b4 B! \+ y7 Z$ x, Z9 Kc.next=NULL;) t5 a' M) q, r
p=head; /* 输出链表 */6 z9 y0 t1 I2 p8 U3 @
do{5 \& L* n3 ]( N4 H0 B1 D+ k
printf("%5d,%s,%3d\n",p->num,p->name,p->age);" G% [9 ?8 ]2 S
p=p->next;5 {; Z1 d. K8 p- [
}while(p!=NULL);
; n3 Q( M9 N* M6 r* \) m; y}5 U8 F' F0 m: M6 Y8 G% ?: D, \
3 v/ z2 Y/ A R4 ~8 T& g16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/1 ~4 p1 j3 C: N# P
#include <stdio.h>
+ l1 m- y( D6 y) K* @/ b#include <string.h>5 @% F) c1 b* u$ |8 Q7 d2 c
#include<string.h>
0 {7 B! K+ O3 s k( bmain()
- G) w ~4 ]( X2 |1 g{ char s[100];: |" E2 ^" p' u! Z
int i,j,n;
8 g8 W. q1 @5 I7 [$ h$ F2 T4 {, uprintf("输入字符串:\n");
, ?7 y# S( V+ h, l# O7 _% Q% S" {, }+ igets(s);
) Q/ A% Y; B* g1 Un=strlen(s);
' g4 e6 Y. U" J# p( |for(i=0,j=n-1;i<j;i++,j--)6 A) a# z9 o6 {( D
if(s[i]!=s[j]) break;1 m+ t2 y2 r* s+ \
if(i>=j) printf("是回文串\n");
0 r' ~0 m: d a \: Z" K( {else printf("不是回文串\n");& O1 Z; E$ {7 e( E t$ R
}
' r m( y; n! r7 u. F1 V4 r
; Q" D8 s' e7 C' m: h. e, |17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/5 [; I9 Z0 q1 ]4 P! p5 B' G
#include<stdio.h>. I B$ [0 O. }
void fun(int a[],int n)
; g% E+ j* D# d# U0 D% L0 P0 J{int i,j,t;
1 O2 l9 s N" t4 [; @& V+ e- }for(i=0;i<=n-1;i++)
/ h$ m) F/ q7 S4 V' ffor(j=0;j<i;j++); r7 B, I5 K# f: d" b( P( g9 k+ A
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
! [0 I" J) X8 i9 L) u7 e9 Z0 M+ Q+ v+ \}
5 D. ]/ t& a! z3 o( q" P9 ]main()
3 ?- d3 ^0 G* k( n{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
; L" k# [& V# s4 LFILE *f;1 e$ Z7 Q3 j2 R. F8 k
if((f=fopen("myf2.out","w"))==NULL): v! h) V- f7 i0 f9 f7 _9 [
printf("open file myf2.out failed!\n");
& u; e; ?( S: b; Z) Tfun(a,10);: b1 O: s9 e: q7 u# }7 {6 y8 o
for(i=0;i<10;i++)
/ B5 D9 _5 p) ^ {printf("%4d",a[i]);- d+ N: K. _% J2 j3 _: O! a
fprintf(f,"%4d",a[i]);
/ l% u- Q- j# O' {0 t }4 N, P/ v! }' m3 W4 W W( q
fclose(f);% F9 l7 a$ Z3 t: a9 B& x
}
% G* {5 Z% t* U+ w V. P9 `, n* C# T
3 c' U4 L$ l: ^, R% G- t18、编写函数countpi,利用公式1 O3 j; n% u/ J+ ^
% E* l$ Q" Y" L a
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
3 n9 O0 N- u" f3 R: H M* \#include<stdio.h>2 ~" e- G: j/ D7 R3 X9 W% k2 I2 Z% r
double countpi(double eps) /*eps为允许误差*/% H) N+ I/ Q' V( M/ E/ C7 W* G$ J6 r& V
{" a T6 X. Y9 y7 t8 ]' m
int m=1;( b4 p$ w( {+ u" |
double temp=1.0,s=0;
, V; q9 S" i: l \ while(temp>=eps)) C( b$ K& B5 `) N( m$ U
{ s+=temp;1 @8 b6 Y2 Q* m8 F" e k' H5 h
temp=temp*m/(2*m+1);4 T' N6 T% j1 R* l
m++;* q) d1 ~& O" w4 f
}4 m W7 Z- c, [# W1 B6 `
return(2*s);
2 R+ c5 _3 m1 J7 D}
% h- y( i6 x4 ~: F4 y6 amain()" r* `7 h! w: j2 h4 X( q8 T4 \$ g
{FILE *fp;3 Q+ G6 }; n6 D8 A+ M( E6 o' y
double eps=1e-5,pi;
$ s% |+ V5 u H) t6 } if((fp=fopen("p7_3.out","w"))==NULL)
- O: `' J! f( @0 S. Q { printf("cannot open the file\n");7 k4 ?/ i# @7 k, o$ V9 f& w
exit(0);
- Q' G" n! m. U) i# K' J }1 p& L/ L. I3 O4 r. N; M+ b6 V4 n
pi= countpi(eps);
, e9 {+ _ |) i) L! E/ r9 O0 \. T1 z printf("pi=%lf\n",pi);$ U0 h. a+ i; Z# R8 y
fprintf(fp,"pi=%lf\n",pi);" |. i$ `3 ~7 j& E6 `
fclose(fp);7 r p c9 e- C
} |
|