|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
2 k$ b! a" n K$ C; w" ~3 h3 p1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/+ U2 }8 ]7 T4 l
#include "stdio.h"
5 O8 ?! H: }, H0 [5 N1 D/ z3 H2 {main()
' u8 J% m3 N5 Z$ J* f{int i,j,result;& F) G$ o: t5 }& G7 L" T9 H
for (i=1;i<10;i++); |1 Y5 x" u7 C6 D0 C; U/ g: \
{ for(j=1;j<10;j++)
1 }9 @! k# S, D+ |2 v {" o) }0 \% B2 V/ Y6 \ K) Z9 T
result=i*j;1 a; d4 \; k- ^: b3 t5 l. y1 O9 O3 t
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/) ?3 m% C, d X" F% @' c$ M
}' _" ?! U. m: V `
printf("\n");/*每一行后换行*// V1 W9 ^* e) Y
}
" W; X" J& w: {. f$ J}/ B: t) {5 ` n* ~
9 W5 {- x6 N* j8 @2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 H; q6 u9 ]/ [3 U" _8 p# a兔子的规律为数列1,1,2,3,5,8,13,21....*/8 W& |8 ~3 _4 f4 a* F
main()7 b* S8 J3 k# h1 R
{0 Q4 X( Q! \9 [, O; O$ O: Z
long f1,f2;- y( W# _6 a8 d& y3 J
int i;
3 ]2 t3 D2 b' C# g8 b( D# sf1=f2=1;
) S* Z7 f: S9 J/ T: Jfor(i=1;i<=20;i++)9 b; J3 w* U0 r# j
{ printf("%12ld %12ld",f1,f2);
: M% ^# T9 V [6 I4 D- ] Q0 a if(i%2==0) printf("\n");/*控制输出,每行四个*/' h4 q+ w8 g, n1 z8 o: W
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
- j; ~- i5 W% K& S0 V$ h f2=f1+f2; /*前两个月加起来赋值给第三个月*/
3 f& Q$ Y9 P" @9 J# w }) G5 {5 A# Z+ e. h: \
}
* K; g2 [# z) |/ ~
' z# u8 E; A! L+ A3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
: a$ S9 w1 x& n A% P2 X程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
6 o. y* r' Q9 A' n 则表明此数不是素数,反之是素数。*/9 a6 i# m6 N8 n6 H2 p1 f% m
#include "math.h"8 M4 o: x, l& S; W1 V: t3 n/ q
main()
. s# x/ u1 m' e C# \{
9 h& x/ _5 |; j6 n5 C! W, jint m,i,k,h=0,leap=1;+ Q7 t8 F" v5 a- q G/ Y
printf("\n");( }+ C$ {2 c7 s, Q. y0 {% c$ L
for(m=101;m<=200;m++)6 o# Q0 ?8 A& {+ P5 h1 S! H1 U
{ k=sqrt(m+1);( D+ w1 ^0 Y8 k ]! c7 P) [( m
for(i=2;i<=k;i++)+ r* G( [ m5 M2 {: @; c
if(m%i==0)
/ M3 S# }1 E. g. O# Z8 }# ?0 i {leap=0;break;}
4 y$ @( O. A! w9 `1 u if(leap) /*内循环结束后,leap依然为1,则m是素数*/' ?, t4 F4 X `4 j o
{printf("%-4d",m);h++;4 W' O) R0 l( p
if(h%10==0)
: N9 Y1 ]+ P% `) `8 l printf("\n");3 ^3 y1 Z4 q' J7 s: q
}
U- N$ |" |. W leap=1;
7 C) o) S% q2 g9 K }9 \9 `. [* M! q4 Y
printf("\nThe total is %d",h);
6 [, b7 U h$ ^ M0 R- }# p9 ]: j}! J% h: X: y, |/ c! Y" g4 [
7 K& H3 D) J9 N* R0 I. {1 N0 N* B
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程/ b) S! q/ r* s. L
找出1000以内的所有完数。*/. g/ @1 U2 B; ]7 i4 z8 g: n
main()2 j* T5 @* ~2 o4 `4 A; E5 J6 x5 W
{( l) ~' X3 U, o1 s
static int k[10];
& I# X" l4 f6 h+ h, E+ bint i,j,n,s;
3 R$ f6 k3 e5 @) l. P9 l- Z6 n; Lfor(j=2;j<1000;j++)
3 r2 l( _0 U; G3 @" F {
& |" d) R6 ~; @/ Q5 i4 O. R- ` n=-1;
/ _8 ^8 t* }7 e s=j;8 W8 s$ O4 |: m7 i. Q
for(i=1;i<j;i++)
4 S7 a0 q& Z/ _* ^# D% P {if((j%i)==0). c' _% W% [/ Z% i
{ n++;
; }) z6 X' D/ d; {7 T" [+ I s=s-i;
8 b& A( C: o- a& G! I7 D k[n]=i;
8 p# t6 U: P) P* t" J6 R* P! G1 I }7 p# B- ?4 C6 t% d2 U
}, r' |! w7 O+ X! _; a% p1 z3 K2 M0 {
if(s==0)2 s) j w& L. ~2 r; k
{printf("%d is a wanshu: ",j);. q1 c1 B+ K0 J6 p- q: P
for(i=0;i<n;i++)% \" _5 r- @1 b# Q' x5 H
printf("%d,",k[i]);: f3 D+ I/ O& i/ I7 b
printf("%d\n",k[n]);
! l+ _0 s! W4 C0 ?/ t9 w; \. M }; Z$ F! V* Q* F$ v% l5 T2 S4 h4 H
}; _9 d, x! t8 {1 v9 i
}1 n/ n/ [- S f# W$ ^! c( R
( _# k1 y: a( p/ \
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
$ ^; q4 Z% }4 c% C6 V y$ g请在空白处完善程序。*/ Q1 W+ Y4 h9 h5 v3 A
main()
: X( Y1 m0 K0 U1 V! n1 X{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/; |$ g, o5 V( F- q% p2 \
printf("input 16 numbers: ");" p& ?5 n0 b8 y( l# k
/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
) { S2 h! G J/ t4 R for(i=0;i<4;i++)
( y0 z+ L2 ?+ }; B0 Y for(j=0;j<4;j++)
J( v: Q& |% a& f/ K5 } { scanf("%d",&a[i][j]);$ j* w z' l- M/ F4 v8 I
b[3-j][i]=a[i][j];6 P, } V" e8 H. j( }
}5 }0 _+ O# t3 T. B
printf("array b:\n");
# S& h1 X, k g y for(i=0;i<4;i++)1 }4 X; r6 R1 [: m
{ for(j=0;j<4;j++)
7 Q! Z5 }5 q& }* U7 i5 O printf("%6d",b[i][j]);0 I: g. S i5 {2 P! a
printf("\n");9 Z* T$ e. f( O" t4 v
}; k' R# n6 W' {% f; {6 a$ o2 U9 Z
}
3 b: _8 _6 Z6 x9 l. |( U% D' D* c+ t, J' a6 T
6、/*编程打印直角杨辉三角形*/6 y1 r( q% q+ ^( [0 m
main()
$ N" @1 {& X) K{int i,j,a[6][6];
7 g/ Y! Z# j2 I6 }7 ]0 U/ efor(i=0;i<=5;i++)
2 v, s" D6 a# }{a[i][i]=1;a[i][0]=1;}6 s/ \1 b$ [0 X) }, N+ {9 @
for(i=2;i<=5;i++)4 y: h* _ R; _: X
for(j=1;j<=i-1;j++)" Z4 h6 i' G- B7 X/ N
a[i][j]=a[i-1][j]+a[i-1][j-1];7 c9 N* c X5 l) y5 W% V# v* ]
for(i=0;i<=5;i++)
1 {8 |2 N; x% x( p) F. E {for(j=0;j<=i;j++)6 t( f" Q: a @) N0 M( [! Y
printf("%4d",a[i][j]);
; b5 K; Q9 A5 i9 z printf("\n");}* v/ H4 p. |/ U; M4 D0 X) P
}
( o% |# k7 e- G; S4 b
& q) ~" E; H, q* @7 L6 |7、/*通过键盘输入3名学生4门课程的成绩,( Y0 o2 B; C0 E1 @! N) g
分别求每个学生的平均成绩和每门课程的平均成绩。
1 i( w% w& L2 P要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车2 a& W- H- `: k* n4 R
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/( F* e: M Z' p4 c$ z
#include <stdio.h>& a+ y) N; M2 Z z6 c. ?
#include <stdlib.h>
9 u7 O# {- h& f" }. p8 T4 f& |% Fmain()
& j# D& j, i- w4 ]& W{ float a[4][5],sum1,sum2;
( h: L0 z0 }. b+ }" fint i,j;
5 x, n# G4 w0 b6 n; d! j5 @for(i=0;i<3;i++)& Y1 w1 u- k) ~& m+ s
for(j=0;j<4;j++)- T; S r* n6 i- f$ O
scanf("%f",&a[i][j]);7 O. o4 p7 q0 @. g
for(i=0;i<3;i++)! ^1 _8 t* V! p* n" ~! V9 R
{ sum1=0;
8 i! m9 _2 ?; m$ h+ A$ a for(j=0;j<4;j++)
$ k Z$ _; H6 h sum1+=a[i][j];+ \0 C; A: B% f. I9 d
a[i][4]=sum1/4;
2 w, ]- `8 L1 |& h}- h5 I! E& K9 a6 H1 k4 X( F
for(j=0;j<5;j++)
4 v2 m: `" I4 {, S, {$ F: W4 g{ sum2=0;3 z* {# R& b+ l# k* N
for(i=0;i<3;i++)7 [& o5 d' Q- H" W8 C* n0 j8 `
sum2+=a[i][j];" h- g( A1 M* d& o; G. b% w. y
a[3][j]=sum2/3;- h6 \4 j( [4 V ?. } a
}7 r8 U6 U1 P: Z& s( G* ~. M1 N) l
for(i=0;i<4;i++)) `& ~1 t9 m6 g' |
{ for(j=0;j<5;j++)* p% m0 N5 k, g8 l2 w2 l
printf("%6.2f",a[i][j]);4 N Z( b1 A- Z9 N2 p
printf("\n");4 C8 i4 \3 o8 n/ L: l0 x+ U
}4 D& Y4 U; x. n0 {6 d6 q
}
* Y& `8 ], m: J, l. c% `5 z( m) E/ n1 y+ M' v
8、/*完善程序,实现将输入的字符串反序输出,
- s' ^5 z1 m2 X% M" R# x如输入windows 输出swodniw。*/6 n9 [; |" n: A- W) |" F" Y
#include <string.h>
, _ [8 a: D$ d) `2 Bmain()
' z% E, w3 K% `6 b- ?. I8 k# c{ char c[200],c1;5 w- A; C A- {7 ~
int i,j,k;0 {6 J0 `" y7 P
printf("Enter a string: ");
4 I3 _$ z1 d0 T( Z ~ scanf("%s",c);
5 W, a5 W U) V- Y. x; ^ k=strlen(c);
! a; W& \# U, b+ |, c! ~ for (i=0,j=k-1;i<k/2;i++,j--)" m& N/ }9 C* U! \" B; [: O
{ c1=c[i];c[i]=c[j];c[j]=c1; }
- k. T# f7 O8 M6 Z6 W printf("%s\n",c); 5 l# p" ] g, W: b
}6 {" D* v1 x2 J) C& x+ u
指针法:8 W; P/ l C f9 D( k7 u8 U3 v
void invert(char *s)+ y; [% x o% |! K2 R7 n
{int i,j,k;
$ H6 w C1 U$ u' i6 `char t;
( _4 l& K6 a9 p3 T$ u5 O% h$ E$ ek=strlen(s);1 e( S/ L+ _& `) ^7 X6 V! d+ f
for(i=0,j=k-1;i<k/2;i++,j--)
2 I; g5 z G- U2 y1 p; O. }{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
! b2 ~2 b2 W5 u# U" S! G1 ^" K8 S}
5 l4 W( f k# F/ imain()
- z$ l) r$ c4 }3 R- B{ FILE *fp;. w! X3 x1 V" R- {- U
char str[200],*p,i,j;' W& J0 Z: \ k6 X f
if((fp=fopen("p9_2.out","w"))==NULL) # e% Q6 h& {: ^4 _9 @8 H! _; [7 E+ A
{ printf("cannot open the file\n");; W$ R0 _- B# v9 f. c9 A% i% w2 c4 i& ]
exit(0);
0 O' T* T+ `' Z* C' w* @& Z) P }8 j7 A9 t+ D( }- f
printf("input str:\n");- r# ^% Y/ p0 [" M" o/ s- i
gets(str);
6 i5 o0 v6 |* t2 h printf(“\n%s”,str);/ w+ A1 Y$ J/ @5 ~! |" \# I! k
fprintf(fp,“%s”,str);+ r8 x* W( \' r
invert(str); v! [" t$ A) ~8 I0 c: D1 ~
printf(“\n%s”,str);/ [9 `0 K9 t: l; I! h
fprintf(fp,“\n%s”,str);
9 I/ _7 m7 V. a: u* E1 O3 T, c' ~fclose(fp);4 O9 e1 {+ z8 N& y' h$ l% f3 h
}( T0 V' X4 m# k( ]" D# W3 q
k: [, [! u' k* t
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
2 k4 @. L( j I( \- z* G#include <stdio.h>) s8 V1 r$ k0 l
main()' f# Q1 B4 G4 {% y8 \9 R5 u. U
{ char s[80],c;5 y4 P" T, y! y8 E1 _0 c
int j,k;6 h. R. O7 s2 K+ d# N; e
printf("\nEnter a string: ");
. F( A! p$ z1 e: @, h gets(s);
; z2 `* s, p/ G# Z printf("\nEnter a character: ");
( J" J2 K& l; m* ~- g; ` c=getchar( );: b9 x) w) ?8 t6 c1 R0 y
for(j=k=0;s[j]!= '\0';j++)
" G7 u/ l5 _: E/ x1 A if(s[j]!=c); x, n- c4 m. W6 h+ ~6 v
s[k++]=s[j];( a, p- |4 ~6 Q; ?) l# o7 d
s[k]= '\0';# p3 U7 Q& E% B: a& V
printf("\n%s",s);6 S$ L2 o2 y" Z6 U* N* R8 w
}
" x( @+ u! O+ P
0 N& g! W/ i' ]: {$ d10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小& L# ^6 u& r! |. @6 K M1 m& F
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/4 m1 ~3 ]1 q- [
#include<stdio.h>7 B' k$ _1 T' H! y" {1 R
void sort(int *x,int n)! ]! p# z/ @4 R" l6 `" \$ v
{
( ?( r/ J& k) `' H* Q4 Hint i,j,k,t;; o- S; c. ^ u* t, H" a
for(i=0;i<n-1;i++)- U8 V7 ?+ E" T) J4 M
{
. \; ?) G9 [3 u0 {8 Kk=i;! L0 l- d+ h6 |: \: p P1 i
for(j=i+1;j<n;j++)
' @& P; h7 ^0 d if(x[j]>x[k]) k=j;6 A2 F) A& R7 e0 B5 ?0 f! Y
if(k!=i)
- X! }+ X \% f/ } {
, e& r. A( |; J9 u5 U! q t=x[i];5 h& W- [5 ?3 ]; K
x[i]=x[k];1 @7 J4 Y6 ?; e
x[k]=t;
- j/ ^1 d$ ^' O) \- ~8 [$ q } f. x4 y: H; n1 s7 b7 @3 O$ k
}
- c7 D/ ~# x _; s}, X* a- v. q" I
void main()* C8 e- t) R7 F, d* v3 F
{FILE *fp;
( Y& a4 h$ J+ x/ ? int *p,i,a[10];! B& d/ a7 Z. x+ h |
fp=fopen("p9_1.out","w");
: c3 Q+ @1 X) c3 j+ W" ~. r p=a;5 Q2 `1 h5 h* v% E4 y
printf("Input 10 numbers:");: w/ f9 M2 y7 K4 c- w
for(i=0;i<10;i++)2 \' D6 X W! h- Q# h6 g
scanf("%d",p++);
4 F8 u: \$ K/ c9 N- |4 [p=a;
# Q! S2 ^9 _. O4 g+ u+ `8 T$ psort(p,10);
- U' E f/ W, s- bfor(;p<a+10;p++) u0 X" b- r2 f$ Q3 \9 h+ u- S- d
{ printf("%d ",*p);
7 @) ^ }$ y* w& @ fprintf(fp,"%d ",*p); }
0 J2 }0 B; S, L6 h7 y system("pause");! H; [4 n" b& t6 ?
fclose(fp);2 x, B) w! _4 E+ s! D
}" F' O, W9 {% u' [) b
( A/ L3 v% \! @8 n' i; K6 L& C) i
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
$ k6 w0 `' G- Q, I+ i O8 u main(). W( e7 @( S- y6 Q: O
{ int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/. O* I1 K& t3 s; A3 |- h
int x , i, j=6; /*j为元素个数*/5 `) y2 x. o* O8 ]! \- H! r0 B7 P
printf("Enter a number: ");
3 Q0 _1 o: ?1 o- T scanf("%d",&x);
! x3 V& Y8 ~0 n3 N a[0]=x;
% ~* e) M% ]/ l) k5 {, _ i=j; /*从最后一个单元开始*/# Q* V' R5 m) \
while(a[i]>x)
. h- r6 x# @; W8 Z6 ~5 u { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/
7 a# z: g x+ f" \) \7 P a[++i]=x;. |; T) Y3 ]' c3 L* Z" O
j++; /*插入x后元素总个数增加*/2 @! p7 H: r z. w0 P3 E4 s- f
for(i=1;i<=j;i++) printf("%8d",a[i]); w& n! b2 X9 k' ^. w8 z
printf("\n");
7 o! l: I, c: M8 v" O6 O}
]+ F* E. g: h: v! w F" Z1 N' k% w9 G# X9 f0 ~
4 A3 m) {) m* a, V) z* I1 l12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
5 {9 V9 n0 G2 k: t* y#include<stdio.h>
! U3 u& b& ?4 c l" P0 k+ Xreplace(char *s,char c1,char c2)
) h" }5 `2 Y! y; E2 r" I& Q{ while(*s!='\0')5 |" i' P) O3 h2 g4 G+ Z
{ if (*s==c1)
?2 S0 C# {- T7 v2 D j *s=c2;
; s+ y/ Y. j9 a4 j& T8 B6 K+ g s++;
! @ {: F' R. q! s }" C! H7 g! y( v# G+ `: j
}# o4 w' U8 Z& E. e3 v3 N( j
main()4 `* p! f8 n3 `! r& G
{ FILE *fp;
) p1 t4 ^$ y- D' w0 ?. {( q1 echar str[100],a,b;' a! q6 `- ^7 J4 C
if((fp=fopen("p10_2.out","w"))==NULL)
* A O: j& U! A( ?: D) T { printf("cannot open the file\n");; ?: o! M- e. ~2 [2 ]
exit(0); }" `* e! a9 X+ e
printf("Enter a string:\n");
& u5 n6 Z$ o: C gets(str);( S* m, J& K' m. M# K
printf("Enter a&&b:\n");) E* I% G3 k, K! L
scanf("%c,%c",&a,&b);
* H1 ]$ z$ i" _' wprintf("%s\n",str);: D' i, C: m0 Y: ]! W! J
fprintf(fp,"%s\n",str);
0 p6 h- K- W( ? Z' Breplace(str,a,b);& p! y! t7 v$ w- u5 ?9 L1 @
printf("The new string is----%s\n",str);+ j% x. v( P! M- T) V/ S( Q
fprintf(fp,"The new string is----%s\n",str);
7 M( Y7 P5 r2 c2 |fclose(fp);2 t3 R j4 E0 [3 {5 j" v0 G
}
# J$ h, L: h9 _
: M/ K' a& z5 j8 H6 D13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
% ^% r4 `1 h5 h$ p& h* w,不存在则返回-1。*// `+ g) S/ E6 k
main()) B( Y! ]* c! I: }. s C
{char s1[6]="thisis";char s2[5]="is";+ K: ~* U5 Y% g, R" {
printf("%d\n",search(s1,s2));
# @& D u$ b& q0 i, {+ Q" psystem("pause");
: s# t0 H8 n/ N. j! D& O) H: p}* [; k! L5 t: o [0 D
int search(char s1[],char s2[])
/ \+ Z/ d1 [5 o* x0 b$ c{int i=0,j,len=strlen(s2);/ E* a; W( Y: J, f% e
while(s1[i]){1 @, x9 y0 B2 d( ?- v! R; _" J# m
for(j=0;j<len;j++); O; g$ F% Y5 Y% _ U
if(s1[i+j]!=s2[j]) break;, d2 J1 ~& N* c _- ?5 B
if(j>=len)return i;
1 ~% ?- L) V! E* h& ?, A+ H6 Uelse i++;2 |$ T# z& R% i1 C
}/ r/ j* k6 X$ u
return -1;
" L8 Z% A: X0 C7 p}5 @/ T! ]8 F8 ^; F1 a
' [4 b+ U/ V$ Y14、/*用指针变量输出结构体数组元素。*/
9 x8 Z1 w/ Q% v) E6 x- |6 U0 istruct student) D' b0 R* |" n4 X, f% D) D- ^+ a
{
/ w+ N0 B7 J8 f$ Y8 t1 [6 Kint num;0 j! `; a7 \: ]+ ]( M
char *name;
3 s/ D5 |; T: u5 l, Bchar sex;
+ a- G' L* Y/ l: [$ Q6 W, nint age;2 B9 _. u) \5 t" l# I5 c E6 z
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};8 G, E. S* m4 m) h; ]
main()/ i- S4 ^ I, b$ c7 c# g/ t4 M5 m1 i6 ^
{int i;, Z; M F6 E8 \ l& S" @) ?
struct student *ps;" o3 n' H. f% }3 t
printf("Num \tName\t\t\tSex\tAge\t\n");
; Q7 y; I F3 P+ b% u# D/*用指针变量输出结构体数组元素。*/) {# @3 F0 m5 a# M
for(ps=stu;ps<stu+5;ps++): ]: G: K6 m: u
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
$ n# [# @& v$ b4 r% d1 q/*用数组下标法输出结构体数组元素学号和年龄。*/& `# M4 i2 y) x: }
for(i=0;i<5;i++)
. p# i1 e/ X2 i8 }0 x0 |- Q. B: wprintf("%d\t%d\t\n",stu[i].num,stu[i].age);4 a% A6 N2 k3 [, |' I& i% [
}/ H3 {+ u# U& Q$ \3 f% K0 U K4 j4 ?! c
( }5 {- t, {3 S6 K
15、/*建立一个有三个结点的简单链表:*/. E. r' t/ _0 W3 s1 [5 C) V2 ~
#define NULL 0
x3 e9 e3 a( ]struct student! @9 u3 B1 X+ W& b; U/ T& s; T6 z* Q$ b8 Y
{% U; ]/ g# w2 ?' f1 ^
int num;
; W G' f1 _0 D8 J0 P# I) k2 a0 Ochar *name;1 C+ D, T1 H9 h" D' g1 ]8 i- P
int age ;
2 F* r* e' y, Ystruct student *next;
0 M. `/ Y+ X6 M) g* y/ h+ ~};
3 ~4 x5 w6 x j6 |void main()
R8 z# v6 d2 S+ e& M{" _5 t6 C2 U% c, f
struct student a,b,c,*head,*p;- H6 O9 l- }) S. g
a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */) j" u; H& s5 J# \3 I6 c q/ K
b.num=1002; b.name="liuxing"; b.age=19;8 J2 @) Z. T* @7 k4 S4 }, M7 E
c.num=1003; c.name="huangke"; c.age=18;
+ z" \- T; t% I' U0 g, X+ Khead=&a; /* 建立链表,a为头结点 */
, j( M y: E1 X, `8 w- i5 c/ ya.next=&b;7 |9 ?" u# R4 [* G' M9 e2 ~
b.next=&c;7 {4 ]0 G G0 W; l' Y& [2 ?
c.next=NULL;
- ?1 l6 M" z- P. mp=head; /* 输出链表 */
! L/ F. d8 ^0 L8 E; ~/ J6 ]( edo{/ X3 D4 V7 C; Y' b; \
printf("%5d,%s,%3d\n",p->num,p->name,p->age);
+ @! s: j% _; R r( }p=p->next;1 O l7 m* V. Z7 R* s* q
}while(p!=NULL);
) t l9 r; X( J( P5 f3 [+ J$ G}3 c; ^9 x7 W! j* |; ^! N, q8 {. V
: S1 X% @! C' a, W7 }
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/$ h* y8 F8 R$ ^, ^
#include <stdio.h>' }8 O2 Q" ]5 P; x
#include <string.h>/ t$ O, S& p: g- {" w9 t' b. R
#include<string.h> c. S! {2 N+ j, q9 x9 N
main()$ o1 ~* q# w5 P% n0 D. Z4 E
{ char s[100];
& b% e2 z& {) N9 Q$ r4 `- j6 [8 e' f {int i,j,n;
* B1 I+ o* b" o" uprintf("输入字符串:\n");
9 f. o3 s4 x3 z2 l$ M7 Igets(s);
3 _4 t5 _) @( q; k! Xn=strlen(s);
( G1 r7 H3 w T$ ]$ Sfor(i=0,j=n-1;i<j;i++,j--)
- {9 n J# |5 {% Q+ d if(s[i]!=s[j]) break;
1 [0 ]8 w4 W2 R7 `if(i>=j) printf("是回文串\n");
: D5 a5 d! K: J2 |) aelse printf("不是回文串\n");
E, g9 S% T$ @4 a2 p E) J2 Q}
, l; k. S# C5 Z% d! D; V
' v0 o N- ^8 z, _* z' ?: s4 k17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
$ s% R! H6 V) b3 f#include<stdio.h>
7 f/ w7 d; J* }6 q( Dvoid fun(int a[],int n)
( n% s s# Y/ |# b) \6 D{int i,j,t;7 f) a! \: l+ H9 ^
for(i=0;i<=n-1;i++)1 J8 ?/ C& n9 f; Z
for(j=0;j<i;j++). F5 F) W/ U9 d7 n
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}$ T; u* `% b% M, o! v
}
& S8 c! E$ C: h% A6 Q& A7 k3 v- `main()
1 P6 _$ k" O6 M( \ c{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;9 V( X6 W& }: k9 @# ?- j
FILE *f;
3 q! U' F! ^0 i) Q8 F! s* gif((f=fopen("myf2.out","w"))==NULL)/ j0 j4 K4 x7 I( b4 g% s
printf("open file myf2.out failed!\n");
$ E. Y+ E7 `5 S" t V4 b4 r: B' lfun(a,10);
0 V9 A y3 F2 a; y, Y2 D: Vfor(i=0;i<10;i++)
; t5 q k1 H/ D% O& i {printf("%4d",a[i]);
7 A1 e/ i/ C5 q0 { fprintf(f,"%4d",a[i]);7 V% Q4 G# Z- K# c) H
}4 c Q7 i8 Q& U) ~" j/ c9 ?
fclose(f);
B' Z3 g2 F* q/ G6 m% e}' {1 [1 m6 X! t! t- P7 D" i) ]: a7 y% H
% ^ C3 Z: D- j5 I# z18、编写函数countpi,利用公式& X! w3 l: `# Z9 p
2 _9 J4 G3 v1 B$ S+ F1 v
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。* K/ y, s* z! t) Z* [ h4 d
#include<stdio.h>- l) X6 {' B5 I, f- ` |% q
double countpi(double eps) /*eps为允许误差*/0 c' S3 f: S3 ~8 h0 Z- m
{, z& t! ^0 {2 [4 z5 z3 k
int m=1;
' p; F( p6 G. l# ]3 L; f# P/ J: g5 e double temp=1.0,s=0;9 e& h% b& h& }4 y' S
while(temp>=eps)6 B8 L i0 t1 S+ n) e& }
{ s+=temp;
% g6 v' f2 \0 F4 ?1 l7 }4 q7 o temp=temp*m/(2*m+1);5 A. N0 {+ p% ], C
m++;# B' s% a7 B& m( P: f1 F
}; [6 V, ?7 ^0 M1 H) W& Z/ o
return(2*s);1 @/ \5 K7 a! I! a
}% T E7 V" [9 `, d. A
main()2 E% y; B4 @7 i! F4 {8 ^/ I
{FILE *fp;- q2 \" f8 u; N( _! f6 m9 ~
double eps=1e-5,pi;
) u: I7 t& \. A5 D: @9 f! ~: } if((fp=fopen("p7_3.out","w"))==NULL)0 E9 ~) j. ?8 o2 P
{ printf("cannot open the file\n");1 Q7 t) W1 s" X- v# W' W5 X: _, h
exit(0);
: U6 s9 x- N% Z* z- } }5 I7 g1 a8 y* i+ I$ O' l/ Y
pi= countpi(eps);6 A" h0 @, Z# ~( w' q: h# @' U
printf("pi=%lf\n",pi);1 |8 g0 D. F& l- I$ P2 b; |
fprintf(fp,"pi=%lf\n",pi);' c+ q1 ^8 d6 |6 Y6 `
fclose(fp);
0 e+ Q9 N6 d) Y7 u5 ]8 v7 S* S} |
|