|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
3 y- C1 M5 B- u8 u
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/! |4 p. \9 s/ l' A/ a9 L* a+ C
#include "stdio.h"
+ L' V7 ~3 T! q2 B3 V. X$ l! Smain()
4 e+ Z6 t P4 ?" ~) J1 E6 K! T{int i,j,result;
4 q2 F9 O( ]8 a) [( E4 R- j7 z- gfor (i=1;i<10;i++)
: A* J. l5 `, O* O0 |$ L- }/ C { for(j=1;j<10;j++)& |& I; V" }1 B
{
5 W% E" S' r" n/ U+ J result=i*j;. S8 ]5 |& h4 M
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/$ {: Y( |" d# v V. r. d
}1 K: ?2 L1 J/ n$ s8 g; m
printf("\n");/*每一行后换行*/
- C* A9 w2 k, p6 u }
& i4 F6 F5 h' F}& D. d- C( q2 U( s+ R& ~) i
, |0 K# t) z) W0 ~2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
. p m3 z2 X# u' \$ v1 W兔子的规律为数列1,1,2,3,5,8,13,21....*/
9 R" U7 j3 a8 w3 d; Y6 F+ v" Vmain()0 a& R1 [. N% C1 v( R) ~
{* o' y- O. M- B& s& n8 |
long f1,f2;
+ R3 O" U) I( T* sint i;
% r2 I8 i5 [! v6 u* jf1=f2=1;
. H4 a4 A8 Q8 A+ w& E cfor(i=1;i<=20;i++)
8 o9 k, F w0 S7 g, @- S{ printf("%12ld %12ld",f1,f2);
9 Q# h/ V6 e8 Q5 `8 H if(i%2==0) printf("\n");/*控制输出,每行四个*/5 s+ Y/ K3 \) H
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
n0 r" Q( w" p6 r f2=f1+f2; /*前两个月加起来赋值给第三个月*/, w; e" _9 M. J. D
}
7 k: `$ J/ I" ~}4 I# b+ ^+ A3 h, r2 _
. }; H8 b0 b( d+ K6 ?3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
2 _/ i x& N3 U程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,- G$ i( ~' T! m3 i
则表明此数不是素数,反之是素数。*/- D0 x/ K- g& V: _4 Y
#include "math.h"4 w& e3 q: S- n! U
main()
& H0 l) p' @0 R' I0 H{) e+ {; L) }7 n1 ^. e2 F: K! i
int m,i,k,h=0,leap=1;3 s. H" {0 D8 }; v0 Q
printf("\n");3 D/ S) y3 u0 X! Z0 C
for(m=101;m<=200;m++)- e9 s5 y" G* _/ |# _
{ k=sqrt(m+1);
: {% G: M9 ?2 h& _ for(i=2;i<=k;i++)
; d0 @+ Y0 h7 w6 S if(m%i==0)
1 X+ {. z; I# { | {leap=0;break;}+ V9 D0 l* Q6 y ~
if(leap) /*内循环结束后,leap依然为1,则m是素数*/) s |: ~% T0 {4 Y
{printf("%-4d",m);h++;
6 ~0 |" ~0 c. _ if(h%10==0)
6 q9 u1 k& X) r+ G5 l printf("\n");4 w+ s( q" B& g8 y
}* Y, s* V' \( f5 Y9 h
leap=1;8 E/ d- ^+ e0 y% E* `. C
}9 t+ H, C6 f2 t
printf("\nThe total is %d",h); Z5 Q- p6 T. n& J$ m. p1 g) Z/ e- c
}
' i1 q* j# {/ e$ d1 i. R% X' {" @1 X/ ?
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
$ [2 ^: e. ~6 x6 U 找出1000以内的所有完数。*/: ~) O: Y" [7 N# u& g' X0 B0 H- x5 ?
main()3 k5 H1 F% r% [# Q, t, A& x8 z
{0 Z, n0 }7 n: Q0 c' V0 C) Z
static int k[10];. m, R' R) m8 f% n1 N
int i,j,n,s;" x$ ~1 M6 {8 c- a! B+ O
for(j=2;j<1000;j++)
, i$ H2 W x3 ^/ s: v2 e {$ ]; b/ o5 S/ p1 f" B
n=-1;
( [9 ?: [' s! K s=j;" s$ C3 j) Q. E! ?
for(i=1;i<j;i++)
5 ~2 ?" [$ n) F- Z" P, {( K {if((j%i)==0)
1 f1 ]5 l2 g! o J9 a. J* p+ X0 S { n++;9 H% d! \9 V. V: t
s=s-i;
7 G; f% E8 {5 A* O, ` k[n]=i;
# w2 t1 P0 F N/ W# S- _$ X }
/ ]0 Z( `8 d& w$ m }
7 W! ~, B9 s9 C. {9 C' z. u6 fif(s==0)
* E2 o% w! c/ v Q1 l {printf("%d is a wanshu: ",j);
- `4 j( z% B0 v0 J! Z- B1 z( d# w# ^ for(i=0;i<n;i++)
7 u2 j1 r# Q* b, G printf("%d,",k[i]);
$ j# h1 g5 z1 R& w w4 R# u printf("%d\n",k[n]);
+ Q0 o4 C4 e* }: C }
" t" E4 p% a H* J' x- A}1 C F' r* d( s$ I! `/ P- _
}
7 r5 I5 O7 K4 |8 k! _( @0 ~
% m) K* }' \+ y s) y! [3 Q5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,# i+ h# l' u9 o" O' V/ H
请在空白处完善程序。*/7 F1 S+ Z- p p8 V4 _
main()' d8 G- Y3 I) H& R
{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/# b8 e) |4 ?% P8 D* w
printf("input 16 numbers: ");
, Y+ w4 @. G* |, f* o/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/6 @( [( M) X, G% i7 F
for(i=0;i<4;i++)
: F% `) g1 \+ {3 t for(j=0;j<4;j++)0 x8 v8 h8 k) C( d
{ scanf("%d",&a[i][j]);6 Y' _$ l0 o+ R$ B2 ^' E
b[3-j][i]=a[i][j];
. x3 o2 b: ~& ~" m }
2 N! P5 S& d# y$ r printf("array b:\n");
O; E7 D% ]! u/ o1 _ for(i=0;i<4;i++)
5 M2 R/ N) e4 C& y( Y# D; F& f7 F { for(j=0;j<4;j++)
# I' M) o9 f* G0 L7 Z) f5 R5 Y' V printf("%6d",b[i][j]);) p% A$ a( Z0 {8 V! v
printf("\n"); v' a& e& g4 v% r$ a
}
: x; ?; U2 n; N$ [1 E}1 H$ S; j! X ^: R* ]$ \1 u
1 v# @: C1 J3 Z6、/*编程打印直角杨辉三角形*/
+ M, u/ b0 S' N6 amain()) B: ]. T! n9 b7 p a7 y \; w
{int i,j,a[6][6];
7 `, ^- z' a+ Z/ u& f$ f$ |0 x8 y! y+ ifor(i=0;i<=5;i++)
& k1 K- U3 M3 L; J3 W{a[i][i]=1;a[i][0]=1;}. G2 W4 P1 V. J
for(i=2;i<=5;i++)
/ q( l R, ^ ^2 X. d. l! ] for(j=1;j<=i-1;j++)
# Y6 Q- E7 E8 N: v" P- _ a[i][j]=a[i-1][j]+a[i-1][j-1];
' ]7 y" ~+ x0 l4 W9 m' Lfor(i=0;i<=5;i++)
) J% E/ y2 b+ i* ] {for(j=0;j<=i;j++)
& B; b1 _& C) ~, u/ U" o: Y* ? printf("%4d",a[i][j]);
0 j; z4 A* l! c' _& g; a printf("\n");}1 I. @2 l# Q: h$ S; ^4 Y
}6 q- u! F) n* ^/ f- V
) y0 Z% d* s( {( A7、/*通过键盘输入3名学生4门课程的成绩,- z* ^+ F/ Z7 L( _
分别求每个学生的平均成绩和每门课程的平均成绩。
* f# Z) n; Z) w! S4 N ~" R要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车( T/ Y5 M/ r, ]' `) K
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
4 j9 Q% ~5 |- w+ h#include <stdio.h>
C4 O, T+ u r$ x7 Z2 n! X#include <stdlib.h>" q( L* G( `9 q0 C Y; d
main()
5 K$ E1 F* k# P Z3 c3 L{ float a[4][5],sum1,sum2;- B' x: B* k' ?. Q( o5 `9 b
int i,j;
8 ?! m- n$ N2 b& Y6 | D0 ?5 V& yfor(i=0;i<3;i++)
" b$ Q) @$ N; B8 M$ \+ U for(j=0;j<4;j++)& c/ D4 m% o$ K; {
scanf("%f",&a[i][j]);: \+ u! Z2 |! }6 q2 e+ z7 x. B
for(i=0;i<3;i++)
" K) C. f1 x$ ?/ b* @# b# m{ sum1=0;8 P H# m; Z p7 g* R2 b+ d* e& k6 I
for(j=0;j<4;j++)
7 p" C, \6 V" }/ {; e+ n2 j sum1+=a[i][j];
1 h: d7 @9 F4 z4 i! k, F/ C a[i][4]=sum1/4;
& L; E+ ?0 U- V9 }5 Z$ v}+ W; P8 X& R& E8 ^( q/ t3 R
for(j=0;j<5;j++)
+ b, g- K6 z' Z/ ~& S{ sum2=0;, o3 N, N* b9 G/ r! s( Q! k
for(i=0;i<3;i++)3 D5 e K$ I, e4 \
sum2+=a[i][j];* _* I& U) K# r3 s
a[3][j]=sum2/3;6 G6 a7 u4 [1 L
}4 }5 v2 t+ Q) |
for(i=0;i<4;i++)
, L, ?( z7 L: P @. x* ]+ P { for(j=0;j<5;j++)
/ M$ i- K5 R6 |' O" q# r printf("%6.2f",a[i][j]);
) `2 d, g0 P T printf("\n");
; g3 W3 q( E$ W1 {2 X }
4 d6 f" k q& R; @}
1 i( Q! a3 i; V. L& n: T; V6 c
" t8 f7 r; a2 h r2 b: U8、/*完善程序,实现将输入的字符串反序输出,
' M: ?) l3 t O; _. a+ o如输入windows 输出swodniw。*/. d! L& [; i3 d9 ~* z0 ^* e9 Z
#include <string.h>
8 {/ K) w" ^# E% o# H# U4 d& imain()
+ j" {& e: X; k1 O4 f" U8 E6 N{ char c[200],c1;
N- W& T& b) U! r$ r3 y: N" S+ l' s int i,j,k;# {+ ^' M8 t5 T1 M4 E Y1 F
printf("Enter a string: ");! a- g% V o% H; {1 m0 Q% I7 T# q z
scanf("%s",c);% \' c# J1 }8 f6 V" B. m# x
k=strlen(c);1 B' J' X+ Z) x
for (i=0,j=k-1;i<k/2;i++,j--)
+ j1 J7 D) X9 O3 D) D* H+ o { c1=c[i];c[i]=c[j];c[j]=c1; }
/ h5 H1 x. v2 F% J5 | printf("%s\n",c); * V- W$ z! U) P/ u7 V& I
}
4 f9 a- E6 g; ?: v- T. J指针法:
2 F, d# ^) \- Z3 k7 ^; Zvoid invert(char *s)
) W4 Y0 t4 a1 P) l% J4 e{int i,j,k;
5 G' F' M* e. a$ `& Xchar t;
$ C$ o3 H6 @# ik=strlen(s);
9 ?7 k9 |2 e, ?! E0 A9 Ofor(i=0,j=k-1;i<k/2;i++,j--)
; [" o% P4 |& k( r{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }8 t9 K5 Z3 I* s+ n
}
% L1 P1 t8 h, S7 s( b4 J4 t8 E2 E: `main()
0 b' P# {$ Y9 [/ p* K' ?{ FILE *fp;
9 _* G) D4 | v( R char str[200],*p,i,j;
& i$ v+ E- L8 R* n2 q if((fp=fopen("p9_2.out","w"))==NULL)
; i! y6 q& m& |4 W! Y6 d { printf("cannot open the file\n");
& N! t9 ?6 J5 q* q% y' H/ i exit(0);
+ K0 |" C& x: O }
1 S+ f" D% [6 v' ~# D9 r! u printf("input str:\n");7 ~6 A8 b1 U: q7 y: a! P4 z4 s) S
gets(str);
1 ]- \& c) U& f+ X3 w printf(“\n%s”,str);4 y- x7 v2 `4 E6 x
fprintf(fp,“%s”,str);$ T2 }) t* ]: }. M
invert(str);
( W+ K' v* q. L; A9 u) u+ \" c0 v printf(“\n%s”,str);
0 N( g6 E4 {3 R- q* l9 |9 a) Nfprintf(fp,“\n%s”,str);; h \& ?1 Y; @/ b
fclose(fp);
/ j' N; P# I9 C1 B4 C* L) I/ f" k! p}% \* I: ~$ j6 d; r7 m$ b6 z
3 H: R& K4 K" G3 E Y
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/0 ^+ b0 s2 F F9 m+ Q3 c- g
#include <stdio.h>
; c3 x( [9 V" \# X! n& Hmain()
0 ^2 @5 h' L9 I3 V @6 V+ ~: e{ char s[80],c;6 s% j6 ^$ d* Q0 h4 L. O
int j,k;& t% M: N3 _" I, J; \
printf("\nEnter a string: ");6 x) r# q& }' L- i* Y. y
gets(s);
0 x! m W2 e8 R# B' H0 ?$ a printf("\nEnter a character: ");, g1 _" E, a/ j* R8 Y% y+ C2 @ X
c=getchar( );( s' s: e7 R+ F! W) u
for(j=k=0;s[j]!= '\0';j++)% H- }) L7 N! g. G/ k! d
if(s[j]!=c)
6 E i. w( H' ?2 F6 ^% l; r& D s[k++]=s[j];$ z! v4 E; F7 M4 r I
s[k]= '\0';
$ S; N u" s8 Y4 _8 w% P printf("\n%s",s);+ w* w) A6 N& l$ l0 W3 h" M
}% _ D' o$ [! s0 U% `4 F
- l' i! _7 \" V0 `. j
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
/ F1 J8 m( s5 U8 q5 N排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
+ \% v: A* y4 F# V#include<stdio.h>
/ N8 l+ p6 `9 [- u; W% W) Ovoid sort(int *x,int n)* q! v1 j1 C$ Z) f% P
{8 a* {; D8 f4 e1 E$ E
int i,j,k,t;
0 x; B0 f( ~" @5 A l+ y" `for(i=0;i<n-1;i++)$ y8 p& R! q$ R* B H" X* u
{0 U) D) {9 c. {) |# `7 t
k=i;" J* _- p2 S7 k B# a6 K1 G3 r+ }
for(j=i+1;j<n;j++)" V9 N) C9 U7 i/ u; Q& J3 A' r0 h
if(x[j]>x[k]) k=j;/ u2 W* P. n/ c" U6 m
if(k!=i)
% b* f( P+ w& f" D3 O' ~* `# t7 e/ N {
" g) U! [" F6 n t=x[i];8 U; A& m3 C. C* |" k2 }9 S+ p
x[i]=x[k];7 H9 G3 h) R. Q3 y* \8 l L
x[k]=t;# P( D; U [, p5 F: N6 Q
}
& l: U3 C& }/ n( ~7 A8 f. o! n- P}, e! f X5 }7 Q
}
9 b0 I. H2 D2 j( `void main()- ?9 w( R2 _4 U. d' F
{FILE *fp;
; o0 y& \; Y1 T int *p,i,a[10]; {. b, H% [& k5 m# A
fp=fopen("p9_1.out","w"); Y; N0 T/ k% \5 r8 E
p=a;
, B; u+ t1 z9 L; n0 ~- J, ^4 Jprintf("Input 10 numbers:");+ I4 @# y, x" P* e/ F5 \4 D
for(i=0;i<10;i++)4 K4 u7 `! }- Z* b% m9 b
scanf("%d",p++);
9 ?# K* x* L8 ] U& X2 \: s! Pp=a;
* B3 a) n5 Z+ }3 x! R) ~* A! qsort(p,10);
& u2 J& K* p+ `8 ]" yfor(;p<a+10;p++)
2 ~! S* [+ g% C5 q+ q% y{ printf("%d ",*p); \+ ?' s. D3 l& L) ^: y3 x% U
fprintf(fp,"%d ",*p); }
6 D" i; Y4 n8 C, J* U% R, y9 q% I8 ` system("pause");
: x0 |8 C! J; ?/ F7 a* { fclose(fp);
5 i+ P- Q3 G# K! F} G0 J6 U- @7 u( v* f9 K' s; u% m+ I
$ b0 I7 J! g; ~) t11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/& T9 U% i9 r, b: L
main()
7 _4 L! X7 k0 t/ C0 t( y+ _ { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
! y& P* J' t3 P/ s+ E int x , i, j=6; /*j为元素个数*/
7 t7 z) o+ w* m- Z5 f" C printf("Enter a number: ");- j: n3 S* [$ w* g! V. ]
scanf("%d",&x);
# F! S+ S$ n( Q0 t5 T; ^/ H a[0]=x;: R% Z( C0 w1 R& v: _
i=j; /*从最后一个单元开始*/
0 r- M1 y1 w) {3 f1 D, a9 y7 O while(a[i]>x)
( X' V$ S( _8 m0 J { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/
& n4 z- p: Y7 o) k3 J, d a[++i]=x;
( Y3 k0 W2 g7 F! b j++; /*插入x后元素总个数增加*/1 P1 u2 {5 p% O$ A
for(i=1;i<=j;i++) printf("%8d",a[i]);
' O! j1 ]$ i) {' L printf("\n");
, n! L% F$ p* S. p. v- ^} @* s$ G# b. q
4 l6 [' n% ?* }6 H
, c, X. ~1 a" D. I12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/6 K8 M3 D- q, e) ~* o
#include<stdio.h>
6 T; T7 e- I4 d- ?$ I- a- P4 {" }replace(char *s,char c1,char c2)$ g) L3 |- i" A
{ while(*s!='\0')
, Q7 V! _2 z- ~ { if (*s==c1)$ g( g8 L; _) T/ D* \8 v% B
*s=c2;
( V0 o7 z3 x3 O. E R' B# z s++;
- z' w" l7 l8 Q2 b+ b8 b+ @ }* u1 g; {2 o- u* ]- B
}
6 t4 B& g" s' G, ~0 X1 Rmain()+ P$ _# P2 Y b% a# \; `& S3 ^
{ FILE *fp;- d) w6 m# P6 _; k- D+ V Y( Y
char str[100],a,b;
( o' }' p. I6 p/ I3 U8 Q if((fp=fopen("p10_2.out","w"))==NULL)
: k" g- |6 v# o% L1 U& n0 E: { { printf("cannot open the file\n");
9 V$ c4 p2 X9 j3 A exit(0); }
$ E5 ]# {, ~% M) K printf("Enter a string:\n");
' [6 H" ~$ j6 o( q) Z# V4 F gets(str);
( h" ^& E; b% e' c2 D. _ printf("Enter a&&b:\n");9 w9 I# t4 x: }. M: w+ C
scanf("%c,%c",&a,&b);
6 @" `/ t; ?4 b% H' vprintf("%s\n",str);
4 @1 T3 j( b8 C* Rfprintf(fp,"%s\n",str);* B3 T. l! ~+ b u
replace(str,a,b);
) o" h7 x! Q3 l' O+ \6 Wprintf("The new string is----%s\n",str);. v" H C" l( H9 a
fprintf(fp,"The new string is----%s\n",str);
" f3 A8 m& q& d+ n% }$ Gfclose(fp);$ j) h( B, ?$ C
}9 k! Q2 j' B; {
# Z6 C( {. n' g" f* Z
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置0 q+ y: ~- z! o: @2 D
,不存在则返回-1。*/+ {2 B5 l0 U0 U3 I8 e
main()3 E+ T& A& G3 V
{char s1[6]="thisis";char s2[5]="is";
/ h8 |1 d `; b' H: Z& s) dprintf("%d\n",search(s1,s2));
+ b0 t K# l3 V6 ^ r9 Lsystem("pause");5 z- ~ @& F' m5 x1 T7 f, C6 R" T
}% V1 P, J! V. A/ n6 P' B7 k v# X
int search(char s1[],char s2[])
' R9 l# |0 b4 K9 ~+ [& r+ S{int i=0,j,len=strlen(s2);, f0 K# I% M j. c$ m7 y) [. G
while(s1[i]){
8 a7 S% `& s/ y" tfor(j=0;j<len;j++)# l: i3 h2 t$ \+ v- b/ c: q
if(s1[i+j]!=s2[j]) break;
4 g5 J0 s* Q+ c% Yif(j>=len)return i;& F' Y. }9 Q( I0 {/ [
else i++;
# v% T+ M. M1 n; G) C0 e}) V+ _, x7 Y( U6 @. i6 \
return -1;
6 V9 t5 Z& ^+ T% t1 N1 l: r}
% c9 s* d% t# w. r* n: X% o2 N+ u2 n) i" ?1 ?& I6 S
14、/*用指针变量输出结构体数组元素。*/7 o8 a; ], |/ s3 w# g% |
struct student E- z! O: X: g0 D' Q3 Q
{2 V8 [ w$ Y( C. W% ?' t
int num;
! h; ?: N5 N% n" V( Y- F* D- q5 Ichar *name;+ i* d) M5 _5 G' L
char sex;2 w# E+ L! N* \
int age;. O# ~7 Q: T" v' z2 @
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};0 R) K7 t+ v# M- @/ y
main()
; p4 Y- a+ r) W& w6 E{int i;
' p! k2 K% V4 d7 R5 ~struct student *ps;% S( d' C+ W4 _$ V3 y7 Q
printf("Num \tName\t\t\tSex\tAge\t\n"); 0 L% V i1 c y. ]4 S+ j
/*用指针变量输出结构体数组元素。*/: w+ T. w" _- N9 q
for(ps=stu;ps<stu+5;ps++)
. w6 w5 y, j- D4 n% ]1 Aprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);/ e) g0 q* _1 ?1 S
/*用数组下标法输出结构体数组元素学号和年龄。*/
: M+ U6 C. v$ N$ gfor(i=0;i<5;i++); k- }. q4 u% y% B3 O
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
+ h. [9 q8 o3 {}- s( {4 X! U/ W
6 [# N& ]* k/ u' j
15、/*建立一个有三个结点的简单链表:*/
) P( ^3 V7 G5 D+ i0 [#define NULL 02 c0 W+ }0 {7 E0 P
struct student
0 |0 i3 z5 E! |9 K: w{' K! D3 P: m8 d! \
int num;
) t& u; _+ e- X3 F) c" Echar *name;
+ a1 S1 ^% Y% U5 v8 P# \; Cint age ; ?& ~* D( j& P; Y! c( C9 b
struct student *next;
7 v6 w! r3 t3 i( S9 I};
( m- u; X+ Z# E* u7 e4 ^void main()
2 O1 p. w, G [% R3 Y w{! X; p8 @- m2 m5 E: Y% V2 D
struct student a,b,c,*head,*p;$ Z+ L/ V% n' |( f! R
a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */, e, l& H! |) F8 q; ~
b.num=1002; b.name="liuxing"; b.age=19;
7 `1 D! N$ k( Y0 ^! p: ^7 Y& A: nc.num=1003; c.name="huangke"; c.age=18;
1 s% D! o) {6 a' a5 q9 M8 l. F$ Nhead=&a; /* 建立链表,a为头结点 */
& g8 n3 B. G: X1 F+ {a.next=&b;
0 P/ V" S G* |b.next=&c;: J- i9 T" e# e
c.next=NULL;
" `+ j. ^% e# n: t5 ?1 }+ P1 R# a" [p=head; /* 输出链表 */2 V! T# j4 @4 j Q6 i6 A
do{/ [" h" j. |. B1 [* T9 ^' c9 \
printf("%5d,%s,%3d\n",p->num,p->name,p->age);. O: E6 `* A6 @( `
p=p->next;
8 G7 ]2 M& o- O0 n. b0 H9 j}while(p!=NULL);
6 S9 @( L) O% l3 O}
. t. V& ]9 Y) B
: `5 V+ I9 v, q# g' {16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
8 K: C! Y& ?0 T* G0 `& `/ l#include <stdio.h>; u. h" W- F, F2 K5 o9 W
#include <string.h>* `5 h i+ X) k4 ~. Q
#include<string.h>" W2 C3 P/ }0 O5 v& E
main()
1 n/ ^5 d0 l! l4 s7 q{ char s[100];
0 H2 t R3 J3 I/ I; e! Y0 { D2 Iint i,j,n;0 Y& ?/ {" [6 w4 E
printf("输入字符串:\n");! I! P( g6 o. O T: v* s* O
gets(s);) l# k; W; i) u: v5 b) d
n=strlen(s);
3 Y: g( c7 _2 A2 S' ^3 J0 q5 x$ i1 cfor(i=0,j=n-1;i<j;i++,j--)& p/ V n c- Q6 _- Q
if(s[i]!=s[j]) break;
; R- I% t0 ?) X( h @ {2 D5 Nif(i>=j) printf("是回文串\n");
* X8 X3 E% w# P# I2 [# j; L* {else printf("不是回文串\n");
3 j8 R: R4 `" S5 z0 @}! U2 i# G. t9 k3 w! G R
* i+ x$ W3 j2 p. D: ]" t2 ^17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
6 J, m' n/ c4 V' J* |#include<stdio.h>3 F8 m1 O; W# } ?9 d% p( s1 ]
void fun(int a[],int n)) n2 j6 x8 U# o0 v# a: h
{int i,j,t;
% y3 X# @" y2 B- Efor(i=0;i<=n-1;i++)
# j" e" Y$ y* yfor(j=0;j<i;j++)
2 B% D6 Z/ S' ?5 i if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}2 e0 W# `1 o) w2 ^& D0 z/ a0 E
}/ T4 t$ {! Y& [* W5 p
main()/ u; f9 ~7 u* S5 k% \ P
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
$ f7 N, {$ }2 O6 p, x- T3 G& f8 @FILE *f;
3 l# v4 S% g! D! q1 Bif((f=fopen("myf2.out","w"))==NULL)% v" Y1 ?/ f0 d# W
printf("open file myf2.out failed!\n");+ g6 q# f. _( \) \. ]8 ?% ^
fun(a,10);
, y. `2 x; }# Z. T) M+ [for(i=0;i<10;i++)
: B2 n: @7 u5 O" S8 E0 `" [ {printf("%4d",a[i]);' w" J7 J& v: _& m
fprintf(f,"%4d",a[i]);
1 }- O' l* Y k+ _ }7 I, O% s0 h3 w2 d
fclose(f);" q |# |# E% ?1 F) o2 \
}( @5 p+ w: u1 J5 }% ?
9 ?2 |0 C* @! ^! M" x* j8 c18、编写函数countpi,利用公式: f& ~3 V8 K! r& s. ^# _$ I
$ ] R; v2 z7 C) C/ g' y 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
4 K( P7 K1 M3 T {% Z8 l$ P& f' g#include<stdio.h>! F! V8 Y; h& Q$ F$ y
double countpi(double eps) /*eps为允许误差*/
) t2 D2 n3 q; }, L9 l{& y9 p0 N9 v: h9 a q9 o! b# S2 K
int m=1;( U, r7 K0 w" ~
double temp=1.0,s=0;
+ d7 m! d" }6 k/ [0 J while(temp>=eps)4 e! ~2 `% `" a
{ s+=temp;. a: `, `& a9 g8 p$ I5 _
temp=temp*m/(2*m+1);
3 O( g, A* z, i+ ] m++;
x, ^" T5 v, a9 U, q5 ? }, W1 w+ L7 T3 ?7 M
return(2*s);7 o( @: U& g5 p0 {: ^" l
}
# R, Q7 ~/ H4 u% r1 d% X- Ymain()
2 \; v! U# N1 O: a# o{FILE *fp;
+ r, u; H; Q; l5 i2 k# e0 e4 a \ double eps=1e-5,pi;
! @0 r& d& T- M: w if((fp=fopen("p7_3.out","w"))==NULL)0 _, i# R0 C" |
{ printf("cannot open the file\n");
6 F! x' x9 B7 \ exit(0); 6 k( M2 {! z/ T' w0 R0 _& \
}
- e l0 p: s' Y1 ~3 j ? pi= countpi(eps);' ^) l' r: H7 O4 u8 b1 W: t& G
printf("pi=%lf\n",pi);
& v n% S: `/ D8 N' |4 _: _$ [7 cfprintf(fp,"pi=%lf\n",pi);
* i$ }) x3 I# ?7 b5 @; h: F) kfclose(fp);
5 N' Y( l* s$ V" z3 e8 @} |
|