|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 H9 s* ^+ p" u# E. x A& Z( X1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/3 W1 o W+ l& g" n% T% j, _. r, x
#include "stdio.h"
/ u/ B- Y4 P7 D& amain()
* l% I" h3 \, C$ ]- M1 e{int i,j,result;6 a: x. ]0 {3 G, Y
for (i=1;i<10;i++)
& v2 x) b" R0 t { for(j=1;j<10;j++)
5 X$ ^- P) s q4 U* g. j {
8 w3 }3 b4 j9 Z0 n) W/ U, F result=i*j;& q" J) j5 e; J" W0 I
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
/ K- y% _& B4 V8 O1 f }
) b6 K! n I2 k! n# _ printf("\n");/*每一行后换行*/
: N* }" d0 [1 r }8 _/ \' ]/ j8 @. \" p
}
- d3 F; c0 Z, U% O) i4 i) p3 }( i# L2 B
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
5 V6 G2 b4 C: a0 ~兔子的规律为数列1,1,2,3,5,8,13,21....*/
, }2 R' h% ^; O8 S7 L- Pmain(), |. n% G7 o( a7 X/ N+ T
{ x' g8 A; z; B) R9 ?* l& s
long f1,f2;' H$ o" N# H) j- P
int i;# w6 r1 r5 ^- q4 ?( t
f1=f2=1;5 `0 G- l. A% W7 z. z
for(i=1;i<=20;i++)- \7 ~* q3 f6 L
{ printf("%12ld %12ld",f1,f2);
" [& Q- M& T: h9 l u& L6 ^: ^ if(i%2==0) printf("\n");/*控制输出,每行四个*/
( V8 b3 |& H+ n% }+ ?( o f1=f1+f2; /*前两个月加起来赋值给第三个月*/) v7 [* z! u; A7 j1 Y# o1 e# {7 z! Q
f2=f1+f2; /*前两个月加起来赋值给第三个月*/) e' ]) p/ j, o- n j8 C
}! A& n' x$ k. ]" k2 ^" x
}# r7 n4 b# e/ ^. ?6 W
0 q7 E/ V; |( Y4 P8 |
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。- C3 l2 Z: K; C' ?
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
) V- i* ~! S3 I/ r7 }- H4 ] 则表明此数不是素数,反之是素数。*/9 K& C* c. @+ F& x7 |
#include "math.h"6 @, a: ~# l, f
main()
2 L( h V m* `* r& f) ^ K{
4 n& ^! `% j7 uint m,i,k,h=0,leap=1;
( y: }0 j. p% B% k1 e0 }1 @- M+ x, s6 uprintf("\n");9 I- u4 }7 e$ ^/ K; _8 P
for(m=101;m<=200;m++)
" Z/ p9 x) j6 k7 G5 A0 U) D { k=sqrt(m+1);
) |2 j, V7 @( w4 D+ \5 y- t for(i=2;i<=k;i++)
4 s7 X) k# o% B; Z1 g if(m%i==0)! U7 i( Y" @9 R% P
{leap=0;break;}
1 F% N; o: j/ l) d7 a0 z! n# }2 z/ l if(leap) /*内循环结束后,leap依然为1,则m是素数*/
; _/ Y0 q2 u5 q- I n" D& ^ {printf("%-4d",m);h++;- H- r. ^6 \( V5 K+ w* ^/ B0 n' H( g- X
if(h%10==0): m3 k; \% E- i4 |* B# Q
printf("\n");8 j( l" s0 `5 `/ f: E
}9 ^. J* P- G" B" B7 l
leap=1;- @. c; ?7 m; p$ a4 D! H: }
}$ j7 s% a. S$ w" s: m$ S& E
printf("\nThe total is %d",h);
8 v# `8 h, F% z}& P, q& P" _/ _, t: u1 D3 r' i
" T( Z' E: y7 m: o3 b4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
: n/ {. n! B8 c3 T% Z4 o+ p' B# n 找出1000以内的所有完数。*/8 j" `1 v- u4 t$ z2 p/ P
main()) M2 g9 p+ u8 a+ X
{
( n6 ~8 L ^+ q+ H. E) d. X1 M- ^+ L# Fstatic int k[10];
; @% Q6 A/ k1 a& O8 e+ \int i,j,n,s;
+ V. Z: e) N1 \, W1 n& f( \1 Kfor(j=2;j<1000;j++)
% o. K3 {" C8 h' a" M' c! l. {$ {7 ~ {
! {4 s8 w7 ^7 L. p" Z- R k n=-1;
' b( O! ?) ^ X2 d s=j;, z+ b- H* Z. L- M8 N o% n
for(i=1;i<j;i++)
9 t+ _" e' l4 q4 b {if((j%i)==0)! N+ K0 f8 I% \' T) F
{ n++;
8 ~/ K( Q$ s9 h+ K s=s-i;
. [, y+ B( D/ z$ `3 Z- S, S8 Z k[n]=i;
( P$ p! g1 X+ V' [" k8 t. t4 K }
# u( |- O4 d8 r8 v p }
: }+ ?! A% K1 v5 P) ~ X4 W6 \if(s==0)# w Q0 C- E, ?* J# |( r
{printf("%d is a wanshu: ",j);, O, V0 ^ E0 y' L) Q" Q
for(i=0;i<n;i++)
% X' t- c' p! W2 V6 `. F; K( e printf("%d,",k[i]);. ~8 g& @+ m/ a- A3 ~, `) n
printf("%d\n",k[n]);
+ ], O+ @: @0 ?0 a- Z& h& @ }
+ B: p+ r/ Z' O3 |}
' o$ d. p3 k% T, Z% p% i% s5 G$ q}2 G" n; f7 T" m$ n* A1 L; m/ ~
- Q7 i" W) h( o" ~/ T9 q& z( N
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,) I) z# c5 Z! o% |" d7 e
请在空白处完善程序。*/
4 Z0 a, N" X) I- k3 ], u0 {6 `) Bmain()
/ M$ J# [9 \/ g. E/ W) x; E{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
1 A* }- x8 v% w; |. B1 b4 @) U printf("input 16 numbers: ");
1 l: q# Q9 R# t- n2 e0 E3 b) X N/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/! s' n: r! F2 o# Z
for(i=0;i<4;i++)) _" T2 ~7 M4 |* \7 c8 |/ p1 X' q
for(j=0;j<4;j++) ~/ _, g) k2 l
{ scanf("%d",&a[i][j]);
! b- P7 {- f, T8 | b[3-j][i]=a[i][j]; p7 A$ s8 K7 W; }
}; c/ {0 E* |% p
printf("array b:\n");4 K k7 A" D7 J/ E: u% |" Z
for(i=0;i<4;i++)3 W7 v* I) h _# |& k" o# U
{ for(j=0;j<4;j++)2 j1 o1 C2 v4 O/ z! M1 S' T5 \
printf("%6d",b[i][j]);
) n- O* {3 _) @0 p$ T- n8 g* ]6 h" C printf("\n");
0 {+ u1 b+ b6 `; {7 T4 h' U }2 U4 n# q0 ~7 I7 {3 l/ u+ ?$ e
}
9 E6 ]3 Q4 W. `! U e
8 |$ p; M& v2 g1 V E5 M9 ?1 c6、/*编程打印直角杨辉三角形*/
" S4 a3 h0 X7 a. \main()
, B2 b, l) I; C4 x' b( S# |& @{int i,j,a[6][6];* D% n3 |% K @/ l
for(i=0;i<=5;i++)4 L! o3 I2 n Z1 a3 z% M4 A
{a[i][i]=1;a[i][0]=1;}
1 V3 `% H% H2 Mfor(i=2;i<=5;i++)1 K) V7 I& r. S! R+ S
for(j=1;j<=i-1;j++)
( H7 r/ l! b- N. k5 J6 ~5 l a[i][j]=a[i-1][j]+a[i-1][j-1];) _* H/ l. C: G6 \3 V, @- A
for(i=0;i<=5;i++)0 p9 i, z: W' ~. ^2 _/ G
{for(j=0;j<=i;j++)
$ M% o7 g* t& q0 P- ` printf("%4d",a[i][j]);. T* X0 Z0 p* X5 Q- K! }! ?+ Z
printf("\n");}
2 f: ~ z& K( L0 Y* P z8 E}0 n0 K: x2 i! I: [6 W# p
4 ^' ]: s6 o+ ]/ w
7、/*通过键盘输入3名学生4门课程的成绩,( W6 _$ [' |' m9 r6 V2 T- M3 X
分别求每个学生的平均成绩和每门课程的平均成绩。1 V2 p& h# M4 L1 v
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
# r7 `: c8 m2 }+ f; ]4 t其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
/ G$ h( Z: B/ p H8 J6 H( ?#include <stdio.h>
+ h! J* h( V4 J s2 q#include <stdlib.h>
- I% d% I" H5 [+ P, Umain()" g4 P* f$ N+ Y& l3 D% R5 M
{ float a[4][5],sum1,sum2;7 g7 m- `" H1 K/ @
int i,j;. u2 C7 w! ^- M# E3 m
for(i=0;i<3;i++)5 k7 V+ M6 t' V' f$ y" X y6 ?3 H" \
for(j=0;j<4;j++)8 A, J& P0 U6 m9 f* T. Y
scanf("%f",&a[i][j]);+ A0 d% \8 j& _ n0 p
for(i=0;i<3;i++)
1 W& F+ {! r9 d5 R6 B# {+ f{ sum1=0;% Q* `, x" I8 F1 G1 j8 ~ x
for(j=0;j<4;j++)
8 _) J4 W" S% a sum1+=a[i][j];9 |$ e* O5 I2 _7 s+ v) B, ?/ m. C
a[i][4]=sum1/4;, x8 j% p' G: L& }# F
}
5 V6 L1 }; A2 d8 ffor(j=0;j<5;j++)
! U% x3 |; Q' \( u0 T4 `6 d{ sum2=0;1 \- Z$ p% E* l/ o! z9 b
for(i=0;i<3;i++)5 {1 e1 ~) [, k8 \- J% p
sum2+=a[i][j];
P) r. @" q8 u, B2 ~ a[3][j]=sum2/3;
3 b% }( U3 s1 t5 @1 r+ c1 L2 O6 { }
7 }5 ^4 Y+ ?! n+ V1 Y. P1 d x for(i=0;i<4;i++)
' n! W0 ^; q, w/ K, L0 _ { for(j=0;j<5;j++)6 K$ f! ^8 s2 L' V2 E& e9 b
printf("%6.2f",a[i][j]);5 l O7 T# [; f% i" _8 h0 |7 ?. @' ^
printf("\n");6 l$ f" i3 k* O* Z# X; ^% r+ f- J2 _
}6 m* f) N4 \( j$ q
}9 _* r9 \- I4 ]. x M4 S+ |9 R8 }
. }7 v# i5 w9 n
8、/*完善程序,实现将输入的字符串反序输出,) \' g; T. n# [( h
如输入windows 输出swodniw。*/5 `2 |2 t' r9 f* r
#include <string.h>. n ^2 c1 a' f( ~* H4 ~" B
main()2 g& q# {7 {; O8 D6 z$ G+ v( P7 D* v/ L
{ char c[200],c1;
2 D ^8 u. v# c: N; h2 s7 k5 j8 n int i,j,k;
0 I/ w- _# B" T4 T/ M printf("Enter a string: ");
& a* Y! L. `6 j1 F9 \, h% X scanf("%s",c);
1 h: \0 t8 l; |. ~2 x$ h5 N k=strlen(c);
8 `+ t5 G7 m. | for (i=0,j=k-1;i<k/2;i++,j--)
( i! e: P5 l/ [: G { c1=c[i];c[i]=c[j];c[j]=c1; }& q% D& G6 C' Y: ]* u" ]7 ?( j- |
printf("%s\n",c);
/ ^7 y9 I m2 _" D8 m$ K" C" w}
* P( k+ N+ m9 X* ?% f! A指针法:# H1 r4 R5 F' D3 ] J8 L
void invert(char *s); g2 l* c, \8 u4 I: e4 N" Z3 k
{int i,j,k;) B* B! [) ?2 l
char t;0 L( o9 T9 A/ c" j% N
k=strlen(s);
1 H3 [7 C9 ?, d1 g/ Qfor(i=0,j=k-1;i<k/2;i++,j--)
: d6 S: \' i" |+ U; { }{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
( i) K4 C# x) W( D( ^0 n3 w3 Q}$ C! o7 J- [5 i& ]1 \: {2 w* n- i
main()/ M# Y+ e' U& G+ s7 b+ \
{ FILE *fp;8 t5 x2 g8 z7 N7 B
char str[200],*p,i,j;
' V' T& {9 i: `7 N- y' \. a if((fp=fopen("p9_2.out","w"))==NULL) ; N0 J1 A! C2 W. X
{ printf("cannot open the file\n");6 @1 H. @/ \% u8 l( Q
exit(0); + \: ^' N5 x* n) B5 M" R5 @
}! c! r, w* L! m" ~3 D. [- l+ N
printf("input str:\n");
0 ]( A) [: p8 x% d* `gets(str);, v5 B& N( P3 x8 E. p5 P# }. U: Q
printf(“\n%s”,str);
( s& s0 k, h3 ]. D: xfprintf(fp,“%s”,str);
, @ n1 F3 _5 Ninvert(str);
. y: @5 p, `9 e8 ~6 v% H printf(“\n%s”,str);8 k0 }) ]% u0 ^/ h7 m+ q: v. H' e; N
fprintf(fp,“\n%s”,str);, p$ v; Y% s% v3 B7 W# ]3 P# a
fclose(fp);( g% u8 P' S/ j4 _" Y9 _
}1 v/ ^+ N) r; E4 d
0 U0 p, u, n# g3 S( C) M1 s/ g9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
) n4 T( Q. h4 u6 c( A#include <stdio.h>
$ [2 W4 O+ }5 g. a& a; Bmain()) P) ]/ _. R1 r
{ char s[80],c;+ j: G3 \: r0 t* `* @4 |
int j,k;4 j$ X8 v% L% i! K% c. O
printf("\nEnter a string: ");
1 f6 n) E) ?- X1 o$ W& E* m0 T0 q gets(s);
8 N3 R* _8 l+ ~/ s" R4 M i printf("\nEnter a character: ");6 v. l# g3 A) p! @" R- U/ }
c=getchar( );. H% ?1 y% D- X& O' i
for(j=k=0;s[j]!= '\0';j++)( V; D5 q, J: }# P, c; X- @" |
if(s[j]!=c)$ C2 E3 i5 e8 p
s[k++]=s[j];
6 P0 z6 p3 c, G2 x3 T2 h9 r0 s s[k]= '\0';
# {. l5 T" ?4 i printf("\n%s",s);3 D/ Y% B& I. P
}
2 a. _4 ?7 J5 x
" K7 H6 U# ~" C( B4 O, p: \10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小% M) M& U, L; r @ A7 e) Q2 G& t
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/% x: T. g: e+ Y" u5 `. @' _1 t X
#include<stdio.h>
8 d1 @% f7 s- J: `9 L2 Lvoid sort(int *x,int n)7 u1 E i# Y( c1 P" N8 T; \! u5 t
{. P I6 j P7 T
int i,j,k,t;
B$ s" y) B5 p2 Yfor(i=0;i<n-1;i++)
* B) ]! ]2 @! W8 ?1 Q3 X* M# Q{
5 `: `* I @* R6 ] Z! A$ H# [k=i;9 {6 |6 f7 _) l' _, Z
for(j=i+1;j<n;j++)+ D$ R# Q4 j6 X) T
if(x[j]>x[k]) k=j;
7 m2 G& {! |: b- W if(k!=i)' F! l4 p% @' I" Y
{6 Q4 b% V u2 H ?$ p G
t=x[i];
9 _' ]3 k6 s* H! n) \( }1 o% Z, v6 v x[i]=x[k];3 [6 _! c+ [' n
x[k]=t;
; E. W: P& }8 R* B }
$ l8 m' J, t. L4 F}
( Z- t0 i+ q0 }: T, t! n. X}
: p: F% v; O/ u& X. z# M) q/ uvoid main()
- \4 S g3 j: Y3 L* S+ @{FILE *fp;
. I' Y. Z$ q' K- w int *p,i,a[10];& I( _9 D1 \+ x3 F# t) u3 ]
fp=fopen("p9_1.out","w"); ! |4 B0 l. f2 \! b' i
p=a;- g" D/ t5 p4 T! ]
printf("Input 10 numbers:");- A6 s+ C% o: z: v1 i6 ?* a
for(i=0;i<10;i++)* y5 H+ s) G# V
scanf("%d",p++);
# I% u) W: D6 K/ `- Up=a;
4 l8 K' g' Z* j0 \* ^sort(p,10);
$ b$ G. j* |0 Q& v) Ofor(;p<a+10;p++)
3 d# O" c- O8 i; W- Q ~{ printf("%d ",*p);( R4 p3 }" P' e Q
fprintf(fp,"%d ",*p); } f' Z% J. _, |6 }: _6 h# h
system("pause");; G8 z" t& U6 L2 A
fclose(fp);
8 U1 E. W" D$ j; \}
7 Y6 K* U }# I0 s0 q. R& R* m" q7 \8 q, | v
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/* }% w% {4 B* B" a
main()
7 S3 r; L7 V- z. Q) \) Y6 _ { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/ p, ]8 c4 D1 Z0 n
int x , i, j=6; /*j为元素个数*/7 U9 _0 e6 Y1 s
printf("Enter a number: ");" s3 b- S; \/ H3 r; M
scanf("%d",&x);
/ v% C/ |9 j; E0 N0 N5 N a[0]=x;2 Z, a. ~7 w5 s! B$ J
i=j; /*从最后一个单元开始*/
7 V# D/ o# j' h3 X& M$ h. |) L* J0 y1 L while(a[i]>x)
/ E; c5 L; O, n4 O9 z% ?% w$ _ { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/
" m. p1 R t2 P! y' {1 c4 ^3 T a[++i]=x;
$ I4 y3 Q6 D u1 l6 f j++; /*插入x后元素总个数增加*/
# H& k& _- K- v Q' ~& q* D for(i=1;i<=j;i++) printf("%8d",a[i]);
; J" p- Z8 I+ D" |: B5 F printf("\n");
4 V; q. L5 @$ R. A- ~9 U}/ \9 D( n/ f3 o; _8 f; K
8 n- P8 t) `* j3 ^8 T( ?
1 c6 K7 y1 D1 J8 t: g12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/1 r( W; ^- N) A. C
#include<stdio.h>. y- m$ J9 ]2 M
replace(char *s,char c1,char c2)
. _3 ~4 R3 ]+ Q{ while(*s!='\0')
/ t% n. m$ c& n& |! _ { if (*s==c1)% d' p8 |! M! s: V! \+ T
*s=c2;
( ]8 k* N* R; v4 e s++;( }( S' Z4 h8 s! q$ t; F( |' s
}9 R: O, f- y- B$ C1 h
}
) I, h2 ]% U+ ]0 F3 F* ^( O3 v. tmain()2 J2 ?1 r( c' Y: Z
{ FILE *fp;1 `! x: k. h, D0 W7 o4 B4 E
char str[100],a,b;
+ i, P! n0 g3 X4 q$ x* y$ y6 ~6 F if((fp=fopen("p10_2.out","w"))==NULL)
& A) D+ H2 E% t' q- w5 A) k { printf("cannot open the file\n");
% a6 l! B& M% O" k# ? exit(0); }
/ X5 P2 Z1 | {6 L printf("Enter a string:\n");
2 G; I- o1 e- m0 \ g! Z/ m1 X gets(str);
$ D" D6 D, C( G printf("Enter a&&b:\n");
( S/ v! c2 s+ a0 l3 T scanf("%c,%c",&a,&b);6 o4 _* _* |! N2 Y, E
printf("%s\n",str);- `9 V' }& ~8 J' b1 z
fprintf(fp,"%s\n",str);# }3 E2 B5 a" _1 h+ ?1 M- b9 i: e
replace(str,a,b);2 A0 B" h( w% V/ C
printf("The new string is----%s\n",str);, x& K7 D: l6 _" z" K8 J! }
fprintf(fp,"The new string is----%s\n",str);- L% X4 z$ d$ R, r: i y4 i
fclose(fp);% C o& I+ T4 Q6 ?/ C/ Y* m5 a
}- {4 k3 `4 _9 y I
+ t" X3 r- k5 p) O13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置( p0 N/ ~' K, d3 k3 B9 @
,不存在则返回-1。*/" f' D2 x4 n- {3 s6 }* p
main()$ v( D& U0 _5 Z1 T+ ]2 E
{char s1[6]="thisis";char s2[5]="is"; X; e$ A7 T5 o5 T. F4 e
printf("%d\n",search(s1,s2));" K. r+ R) s) e W! D) j
system("pause");+ B9 I6 |' o2 w/ I' z
}+ C( o3 j$ B& F1 d2 C
int search(char s1[],char s2[])0 y {- I, d7 @! }& r G
{int i=0,j,len=strlen(s2);, g+ c. S3 S9 W4 t! Q4 g
while(s1[i]){( S+ h/ S) O, J b
for(j=0;j<len;j++)4 T7 x" G. ]! r# ]6 ?
if(s1[i+j]!=s2[j]) break;0 p; q8 t( L# j+ N- Z. [
if(j>=len)return i;
4 D6 ?& O; u. p' U" E. ^else i++;
) v/ n5 D( K$ x$ r7 Y m$ w! D}" j# g6 j' H: T: g4 V
return -1;: J5 M1 L% o/ h2 \' t
}8 C( F* |, _$ Z |2 [
0 C0 Q4 k; f: D7 I% C; K' P
14、/*用指针变量输出结构体数组元素。*/7 z1 L* B; ]. T% r( V
struct student$ F3 T# M/ {9 {4 F
{
( `7 t. X6 {& a1 Pint num;
2 K' X5 P2 T( v, ~4 n* m1 Z& U% ochar *name;
7 J" j" y: T; N2 r; z- fchar sex;
6 ]$ U0 R) K0 N! r* `int age;
, @, n6 H$ B+ Y- |: Z( x! Q}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
1 D4 r- }7 C9 m; g* o W; | Lmain()
& S& g) T" C7 F, J{int i;; C4 @$ q) O5 F5 K' q; G
struct student *ps;0 F$ J8 h$ o% X9 n
printf("Num \tName\t\t\tSex\tAge\t\n"); 9 ?3 b( s3 d4 N2 G" c1 L
/*用指针变量输出结构体数组元素。*/
, j2 k; h5 D4 G! E: Ifor(ps=stu;ps<stu+5;ps++). {/ i5 D) ?/ n- _, D
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);+ ?' B0 P: W" Z
/*用数组下标法输出结构体数组元素学号和年龄。*/
; T* g$ b+ D- n3 ffor(i=0;i<5;i++)& ?- v+ C3 w5 r+ A* k& l
printf("%d\t%d\t\n",stu[i].num,stu[i].age);/ V. b5 C- v/ K6 k# o; J# A
}0 i$ x/ p9 h% |5 M+ q
7 Q. ^: `- j* E, t15、/*建立一个有三个结点的简单链表:*/
$ K. F# f0 ]" l) E2 c#define NULL 0
4 r) q& `0 W- \6 Z$ L9 C3 ustruct student ]. [4 q/ P! D6 r# n* B. e
{
0 v6 x+ f' \7 I# C! oint num;+ G w/ C7 x9 }
char *name;
( o$ ~. Z1 Q/ \" f" iint age ;: B/ `. ^( [4 f$ t1 N! l
struct student *next;
: p+ E0 l, k J0 ~* i: _+ a};+ X6 X9 {" v2 k) N# f V
void main()
4 y8 b- F% {" H9 K- g1 D K6 S{ P4 J$ }( I+ O0 ]0 l
struct student a,b,c,*head,*p;
+ R: ^. W1 K: `: v! P' W7 F# o$ na.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */1 a- Z' [. w r$ Y7 C5 s; ~$ Y
b.num=1002; b.name="liuxing"; b.age=19;6 Q, f% c3 j& i$ I3 {0 n7 W. x" v
c.num=1003; c.name="huangke"; c.age=18; Y. }( c0 M9 I4 U |6 Q
head=&a; /* 建立链表,a为头结点 */
* V: Z" `: R7 h, c& T' _a.next=&b;6 X% N w6 Q' D L
b.next=&c;
6 X& O( y# d9 |# w1 a3 J" U3 R% e/ zc.next=NULL;
8 @+ b' ]7 p( K5 M- I8 yp=head; /* 输出链表 */$ H$ P% v: f5 | X6 R8 A5 p
do{' {7 Q! i- J+ W5 Z) \% x c
printf("%5d,%s,%3d\n",p->num,p->name,p->age);" Q7 x% c+ \+ m! F
p=p->next; I$ R: n' v( {
}while(p!=NULL);
; T# D) t# D) t$ v% j}
# Z# k- E$ M2 O# P' H$ Q4 X' e: l) a# J; c) z
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/4 X J' \! H4 x# t. r6 a
#include <stdio.h>( z; _# q3 z7 `' K! K
#include <string.h>
" h9 v1 d s5 F#include<string.h>; q0 k8 L7 a3 U* A3 z. V
main()
. ?( `. m* c8 H{ char s[100];' A; l) t9 a2 L! A- U! H, [
int i,j,n;. p( f6 Y' S: s5 H
printf("输入字符串:\n");
# c8 ^; X3 z* C5 d( O( t5 W, ]6 rgets(s);! [" v6 i1 i; h# t9 |' B: T
n=strlen(s);
" [. D6 D8 |- S8 [* N* `5 W6 Rfor(i=0,j=n-1;i<j;i++,j--)
" c* B9 ~7 l$ G if(s[i]!=s[j]) break;9 ?* }5 o$ S5 g u7 y& Y) J
if(i>=j) printf("是回文串\n");
+ Y( F0 H3 b; a# A6 w7 melse printf("不是回文串\n");( E& p4 j* B, b4 Y
}
/ e) _7 _* j% e% }$ x, s
: L$ D5 C+ x% Z/ l4 ?17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/& V( |; M4 T0 p% b" g9 D$ f( t
#include<stdio.h>& v: b- B% q. i m: N
void fun(int a[],int n)
: C4 s- d! W* |- W5 m2 l$ \5 B{int i,j,t;
: Z# w- Q3 A! Z% u. R8 y0 Tfor(i=0;i<=n-1;i++)8 T* |$ Y( g% U- s$ |7 [
for(j=0;j<i;j++)+ {8 ?+ \7 x' d& ]9 l) p4 a
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}3 V. ~3 o& p& a9 n" R8 \
}
U7 u& ?+ D+ c" C' T: _" Kmain()4 x X6 ^1 W2 e/ B* f9 r' u
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;* t. U: k( L# F: i. n a2 ]
FILE *f;" d+ X+ L7 }7 s& }& w* l* y1 L
if((f=fopen("myf2.out","w"))==NULL). x4 m8 P( L' Q/ a
printf("open file myf2.out failed!\n"); m4 M" d4 F: a0 z$ g
fun(a,10);
" k5 ^8 `7 s2 F4 B3 l" hfor(i=0;i<10;i++)
/ \ T( R) z+ b0 X ]5 l) P7 ^$ O {printf("%4d",a[i]);
7 N% G ~; ?$ b; m8 p! a fprintf(f,"%4d",a[i]);
t5 q: l! u; s }
& o+ n& v" K6 q) @; P; afclose(f);/ |8 X$ o3 E' a* Q6 K# G1 z5 K
}$ t6 c3 D9 _1 h+ S4 S+ a' |
; P; W- k* h# K: y5 B% V0 B j18、编写函数countpi,利用公式
5 v) A7 h( d- i% l9 ^ i7 x
L& }' c; }- k, N0 k% W& M4 B 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
( {0 z8 y5 N) D G+ B& I' h `- k#include<stdio.h>5 u: V* k, x: i* b! S
double countpi(double eps) /*eps为允许误差*/
4 e: `- B" p, a9 d# v- |{. z5 Q6 ~5 N% r1 G) x& h; f2 U
int m=1;
- @7 g& Z1 i3 p. b3 H double temp=1.0,s=0;
# l( {9 _% c5 |$ x# ~3 ?2 ` while(temp>=eps)0 u) @- ^% @1 k' L$ T* n
{ s+=temp;
0 a" V0 F( I& |( J& n' T D4 k temp=temp*m/(2*m+1);- F+ i0 s8 E2 m9 ^8 T- K
m++;- E8 a4 E2 T9 X0 j! o! C, m
}
, g( ] B" o# p' d; E+ O return(2*s);
9 t; E2 t! p5 Q8 k}
# B8 }7 i: _( h1 b3 w$ |6 E2 gmain()
0 ~8 V! e6 h4 ^3 \( u* ?0 W{FILE *fp;
5 X- V7 G: f9 z4 I9 t double eps=1e-5,pi;% z& Y5 `: I% Q! b" a
if((fp=fopen("p7_3.out","w"))==NULL)
( M6 R% s' o% i% s# j { printf("cannot open the file\n");
0 `2 R& ?2 ~0 E$ T: c1 }+ q- N exit(0);
. Q/ w; p9 P7 K* w" P E }4 y4 N. p7 @8 ]- z7 q
pi= countpi(eps);
( b# r! n* Z6 Q, q' {8 X( F* ^' e0 G printf("pi=%lf\n",pi);0 t; C2 u& Q3 V% f+ b" y7 k
fprintf(fp,"pi=%lf\n",pi);4 c# F3 l+ J6 J# T
fclose(fp);
( z% L( D+ q9 z! B/ P} |
|