|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) s- L* |1 V5 M" a* h, ?2 [1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
: b! R( G% w7 q! X$ }1 `, e: Y#include "stdio.h"
$ E4 n; W/ J7 ]$ F0 L; zmain()$ g" l D2 V' k- K
{int i,j,result;$ x/ k! q+ ~1 A4 k* L* b# m9 [# n
for (i=1;i<10;i++)' @; g8 A' f. g0 a* P
{ for(j=1;j<10;j++)
1 W; h' ]: q, M K# K5 n {
9 \* p* W2 ]$ ~; {5 Q0 B; @ result=i*j;
6 `8 @' z$ J5 M+ U# b; K/ X$ t; |' R printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
% _" I+ D0 A- O& _ G% y4 `! Q, R }, [$ ?2 r7 Q2 } |) Y
printf("\n");/*每一行后换行*/
# {& s8 r' v; c6 X4 y }5 `* v( P- M& s6 h k1 {7 o( @8 q, _
}
; P2 p# D; a' J$ o/ |$ B' M/ h. d9 G! X" ?
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?6 U+ A6 P& F8 [& a9 j! H& Y
兔子的规律为数列1,1,2,3,5,8,13,21....*/
" Y1 K. @+ _! s; A5 j/ i& T" B! L- Fmain()% x' ?- J" U$ a1 m! D
{& B0 g: H' b0 Z) z" a3 A; g2 \
long f1,f2;
/ `6 Q9 q. c% w; l" y+ Nint i;( W# B8 k3 K1 V/ X7 D
f1=f2=1;
; H) P" w; o0 h. Vfor(i=1;i<=20;i++)
- ?9 B c( T$ h a1 }2 a{ printf("%12ld %12ld",f1,f2);$ q0 v0 ^7 z+ w7 T) H8 X
if(i%2==0) printf("\n");/*控制输出,每行四个*/ d6 D% W( G, q- s/ z4 ]2 Q
f1=f1+f2; /*前两个月加起来赋值给第三个月*/) J. R0 I4 m2 u z2 v& K# W9 P
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
& @ n# ^; ^' M' { }- ^8 N. Q# X) V, I
}; n- }/ m* B! z* ~4 G8 q4 m' Q
% v, D! D* x6 n( G9 j2 A: K
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。1 Y: b2 v$ ~; g
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,3 } l# o, @' L! |0 R6 Y
则表明此数不是素数,反之是素数。*/$ p6 H5 y9 E7 L7 m0 M+ a
#include "math.h"1 A: a5 ~% q4 X' F- Y5 w1 X
main()
+ b1 ` p, t% `! I7 G" X$ j{
5 @. b* y2 J7 O/ q, cint m,i,k,h=0,leap=1;
/ }3 t+ W- F0 `' y( V" Iprintf("\n");+ _& ^" q3 `" i8 U, h0 t
for(m=101;m<=200;m++)
" b' {( ~3 \) K4 e) w; H { k=sqrt(m+1);
$ l: i* X) M3 A( i- U& L: p for(i=2;i<=k;i++)
, z7 H3 J" @! G( Q0 z2 X: f& G if(m%i==0)8 x" V5 K5 a4 e1 x! y0 h
{leap=0;break;}! }% X) u0 V- N! m: Z' S: G$ h
if(leap) /*内循环结束后,leap依然为1,则m是素数*/& b9 {- O0 I! Y$ D- `
{printf("%-4d",m);h++;
0 {. z' d6 s" i if(h%10==0)
) g" m7 }( S5 |6 p& r) P G7 u" c' G7 V printf("\n");; t* H! Z+ J1 W: r8 p
}
1 [$ f" G# @4 }& b) ^, h6 V# t9 i | leap=1;/ g* D$ Q8 ^3 Q& @; ]
}
4 \: I8 `; ^) z8 n' u5 [printf("\nThe total is %d",h);) X2 p% W. Z3 T) A' I+ Z9 L j, }
}
" `/ b% g, m, V8 o/ x! }9 W7 @9 |- K
. J) X6 U! T( O y; k* R; y4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程- j- D% ~$ p H! \8 O6 {# h) K
找出1000以内的所有完数。*/* ^9 k( R/ X& R O* _* w
main()
7 i) |7 A0 ^1 Q. P) l{& ], I! }, `/ r# r$ E
static int k[10];5 b3 t7 l+ t) O1 M- j
int i,j,n,s;
5 T; E0 x- g4 e2 P: Q4 kfor(j=2;j<1000;j++)
w$ k( A0 g A4 R4 b {
8 R- _- }6 q" W n=-1;
4 m$ Q( c# U4 ]2 D7 I5 {& s3 ~+ z5 b s=j;4 Y! H2 B( j" Z2 P* e1 [
for(i=1;i<j;i++)8 D" U- H9 Z' Y& A; x* Z# s4 I
{if((j%i)==0)! b2 y4 j0 s) [8 [1 b& j" t! ^$ T& C
{ n++;4 x* D) Q/ u8 J8 M' E% Z8 _& a
s=s-i;
3 n" Z T* I8 p3 j; {6 l; a/ \ k[n]=i;
6 r3 j2 d# U8 o8 M- B; J }
8 W2 R- K1 m2 b1 ` }
4 ?; j% \) H2 ~& d7 A E) R% `& D. uif(s==0)
. B$ b' `4 h( q5 S# C( Z {printf("%d is a wanshu: ",j);" n* J+ k# _$ |# @ _+ J
for(i=0;i<n;i++)) }( @1 n$ P! `4 z" A
printf("%d,",k[i]);# Z, I, D; N: L. m
printf("%d\n",k[n]);- [" S3 Z# }9 o" H8 ?; z% i
}
+ ^, f* s1 ^ C' Q. o}9 \* B# c$ K& D- j
}" z2 \# i) L, j4 q5 H! Z5 h) y' `
+ w" Q) A- m: s( o1 P9 ^
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,3 c" D \1 Y, M: i2 u& B
请在空白处完善程序。*/% w7 N% j9 r5 H7 A
main()
" [' t* Q8 @3 \: n9 v3 b{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
* {$ F2 `' g% v- z0 v0 s/ ? printf("input 16 numbers: ");
) p1 f7 w" w$ P0 L$ K0 p$ z5 p& Z/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/9 h$ c/ t F/ f2 ^0 u/ J* v
for(i=0;i<4;i++)& e" Z5 ?; G' {- o+ J3 m C3 y! A
for(j=0;j<4;j++)$ M/ m' j/ {7 b5 J p' }
{ scanf("%d",&a[i][j]);
- n" p( x( N2 v7 ]+ ?3 x b[3-j][i]=a[i][j];7 ^0 s) {! X5 ^/ n+ P, e
}- [* J' W% [: C9 C! Z5 f
printf("array b:\n");
# v5 z4 b0 j4 A! q' N& y for(i=0;i<4;i++)* j3 ?' X' G2 i' e
{ for(j=0;j<4;j++)' Y+ ] Z- ^7 j8 D" }, W
printf("%6d",b[i][j]);7 O+ t0 H+ r1 M! s( F
printf("\n");
: u" D, N z( r/ j* z r }1 Q9 i( W2 s* E& S% j) T- e
}
6 o1 Y$ c; D9 _9 a) r, ~/ _; @$ @/ l! C, ]
6、/*编程打印直角杨辉三角形*/
: f- d+ n9 v' ]; z) _main()/ c/ C( Q) G9 `9 P/ M5 _) v
{int i,j,a[6][6];' @4 S1 X* D- F; ?
for(i=0;i<=5;i++)' a% a0 J9 k& D: I. j/ J
{a[i][i]=1;a[i][0]=1;}. W0 S9 ?5 V3 `* k
for(i=2;i<=5;i++)
- M1 b3 a+ x% c! M for(j=1;j<=i-1;j++)) [# e/ t# u L% f
a[i][j]=a[i-1][j]+a[i-1][j-1];& s8 {1 `( r( U8 N" K& o+ P" b
for(i=0;i<=5;i++)
% z6 z7 ~% A: `9 y% ~- K {for(j=0;j<=i;j++)! G4 N o1 f4 |: P5 z
printf("%4d",a[i][j]);
" o8 Q8 h, z# P( `" v printf("\n");}
- D7 ?1 ~! g1 J3 u}
; g. k+ I1 ?" N9 @6 G
9 ~0 ~9 |. a% ~$ p ^* X& `7、/*通过键盘输入3名学生4门课程的成绩,
6 a( p9 D) u2 v分别求每个学生的平均成绩和每门课程的平均成绩。5 |* g% c k8 K& B- H: l, e( s* h7 @8 B
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
9 V" ^% f- a( N3 S# `) p1 k其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/$ ^0 f9 Y3 r c8 b: M% X0 v
#include <stdio.h>/ C2 {( A5 f* l4 a- p
#include <stdlib.h> T# A9 j( p T2 a' L0 f
main()
6 B' J3 h: F2 [4 L* Y$ z" U8 b0 C{ float a[4][5],sum1,sum2;
, V# ]5 e% U4 yint i,j;5 a' q" T9 k6 G& w
for(i=0;i<3;i++)9 i, L6 @& s1 K, ~0 O
for(j=0;j<4;j++)
( P! I6 M2 w( S' E scanf("%f",&a[i][j]);* L) ^+ n7 H& l3 \
for(i=0;i<3;i++)
+ {. I5 z1 Y% r% H* W{ sum1=0;
6 s; O' B* d8 C h" ~ for(j=0;j<4;j++)0 b) n2 u& n4 N6 ?2 s- Q# Y
sum1+=a[i][j];
8 Z# n6 T1 [+ l. ~9 R% l a[i][4]=sum1/4;
, i& e6 o R$ R7 J9 a+ x Q}
' I/ s1 X) q! F4 ?for(j=0;j<5;j++)
6 l* |2 T( z, N7 T& N Q+ i: A" `4 _{ sum2=0;
8 F* k4 r% q& N* ?* C for(i=0;i<3;i++)
& @. D- E' c1 R# t% ^ sum2+=a[i][j];
7 |2 |% v) J& ~5 v# r$ _ a[3][j]=sum2/3;
7 @6 `4 h( w6 _" ? }
0 k: z: h$ i2 A for(i=0;i<4;i++)
, R7 j4 j6 H4 c: J$ F { for(j=0;j<5;j++)( s, }2 b; h) q, m- @ Z8 p. g! \
printf("%6.2f",a[i][j]);
/ W% k4 U+ ^( @. o# c; [' L printf("\n");
- T0 {$ x) @1 s7 ~& p }& X2 ~) @$ t) {: W6 Z
}
- |% b7 T3 a5 [( E8 K* s
: R0 S5 ^6 G/ y' ]' i4 M8、/*完善程序,实现将输入的字符串反序输出,
; J( c9 V4 d3 S6 V) O如输入windows 输出swodniw。*/7 ^$ ~) ^. V, }) t" w
#include <string.h>
" t+ K3 e+ k' L3 K. `; G: W) jmain()
/ V: G$ {$ g: K7 o+ k{ char c[200],c1;- X1 u1 H: U2 J- T9 Z
int i,j,k;) @- Y. h) f( H- q
printf("Enter a string: ");
5 g: r% D. Y+ t1 [; L scanf("%s",c);, ]; n+ w5 K7 o$ _
k=strlen(c);
, ^/ u7 M8 _+ e, X# E for (i=0,j=k-1;i<k/2;i++,j--)
- R1 l' D1 |) J& V { c1=c[i];c[i]=c[j];c[j]=c1; }4 J: k8 f/ W$ Z: P: |0 K- t8 d
printf("%s\n",c);
h% z5 F2 E/ C9 R. T; b}
) B( x M( C. r指针法:2 H$ G% _& u1 i' H! y
void invert(char *s)
: h: a0 e+ N4 J{int i,j,k;
9 t- `2 h3 C/ i8 `: s6 achar t;
1 h7 p! Z% w! ?3 z: n1 N( ]/ Q+ t5 Ek=strlen(s);$ w' R1 A8 A! J3 X2 f3 E' _5 Z
for(i=0,j=k-1;i<k/2;i++,j--)! O* w0 \: _! p6 I1 M
{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
4 \7 S+ P' i: Z* e- y; z5 v( P4 q5 M}2 c4 ?' z8 t9 w) p/ G+ _
main()
! R" x3 s' W6 B' _5 R& b{ FILE *fp;0 I/ @7 b) r3 \
char str[200],*p,i,j;2 ~# @* U! n$ L1 t
if((fp=fopen("p9_2.out","w"))==NULL) ! b' L) l0 E) O! ? I0 R; M, J2 z
{ printf("cannot open the file\n");' A# e h$ h6 y: o4 y/ [/ y2 ]: {
exit(0); 2 ^, D0 B9 q3 _3 I: D7 Q
}
* Q) ^" w; S- ^ printf("input str:\n");
4 W' @7 x$ g) bgets(str);9 Q# r& o6 J3 v4 t7 L4 r
printf(“\n%s”,str);
0 O8 T9 q( u& {5 G: Ofprintf(fp,“%s”,str);* {9 X/ r& `5 U/ E4 X2 Z* C4 R) A; P
invert(str);
& ^) [ f5 ]- g2 i- J2 U printf(“\n%s”,str);. e$ I6 [9 g4 o$ ]3 L$ n
fprintf(fp,“\n%s”,str);
, r' J! S$ I! R, }4 p/ efclose(fp);
S6 p% S& |, X}
2 n3 a e1 X- f
- D9 @5 |& E; x7 R9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/) _) q M Q0 V3 m' a: o ?$ p
#include <stdio.h>$ j3 S! ?$ t8 V( m$ c* _7 c8 r
main()4 o4 P7 \- l, h4 N
{ char s[80],c;2 ~* j; u, V: F p! O% M
int j,k;
8 W" M" w& b5 z printf("\nEnter a string: ");
. R9 q4 ^9 v: S {- w8 J) i3 f1 A gets(s);
9 f0 N- F. N8 ~/ V' c. S printf("\nEnter a character: ");7 S% B0 z! C- ~- i( P n
c=getchar( );" b8 v; c; {! F* V' R* a
for(j=k=0;s[j]!= '\0';j++)6 {; M& _& I r
if(s[j]!=c)
! D$ g9 k/ k, e% ~5 V" D s[k++]=s[j];
; L: G' i/ R( b1 @$ ]3 C s[k]= '\0';
! s) o# M4 }% e2 Q printf("\n%s",s);
) ?9 ?# Q) ^2 U6 h3 Y$ j: x, V2 F8 j}
3 X3 j. ~( R t8 a& F0 d* d6 l( p; W: |7 C
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
8 G! U6 ]2 e+ M9 U8 E" {5 }排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
5 j: r0 a$ X2 @; g6 N P- K2 j0 e#include<stdio.h>6 r" _7 W# ]0 [- n+ g% ?5 z
void sort(int *x,int n)
$ V* e) a6 _ d6 Y( L{
3 B3 s8 ^6 U# P6 k" iint i,j,k,t;9 o5 a, X! R" o2 s8 w3 C, k0 X
for(i=0;i<n-1;i++)
/ c/ [( C+ |* a5 ~( x$ j{# d' I) g# P, u4 r/ x4 f9 d1 |( U
k=i;
3 C) o* _0 m3 d* C; ufor(j=i+1;j<n;j++)5 k- R+ j0 {4 @4 R" d5 s) d7 Y
if(x[j]>x[k]) k=j;% Z2 B {# K* t1 z" [* \8 n/ i- F3 K
if(k!=i)+ F/ m& ~; V0 E9 g4 _! g ~' ]$ N
{* h. e: [$ O @4 ]
t=x[i];% N3 ~% m" j: I7 R: o
x[i]=x[k];! |. c$ X3 U4 U/ D3 U+ q6 V
x[k]=t;
. Z" R4 y+ ~2 z, t! b }2 G7 `# n, T0 D
}+ x' ~6 x2 _# Y* N0 A+ P
}' D Y, W" N7 P% g* z4 G9 I: C
void main()
1 N) }9 d7 ?% \4 G* G{FILE *fp;1 c# H8 y$ ^) b1 }# C/ }/ t; o! ^
int *p,i,a[10];
' p6 \& Q0 @$ {) g! I fp=fopen("p9_1.out","w"); * b& W) _7 _3 }: H# G+ w
p=a;0 w7 _) `" \4 _! c6 ` V
printf("Input 10 numbers:");
: |& l. `5 K% S# w; t0 V) ~4 [7 dfor(i=0;i<10;i++)5 Z) W ^6 j$ f4 M' R) Q8 i
scanf("%d",p++);
9 q" ]8 a* J; Z2 m6 \" R5 p+ ?p=a;
, r) M% \. Z' H/ m6 c$ H) r9 o: I* Fsort(p,10);; | w3 }& g; Y& }2 l8 C
for(;p<a+10;p++)
" c# `, D; L8 k/ I: ?: m{ printf("%d ",*p); }1 L$ S6 Q' A$ C0 {
fprintf(fp,"%d ",*p); }3 s6 y* Z" u) t! Q) W! C
system("pause");
( h$ C; r3 m4 g" w, o6 M! O/ r fclose(fp);
0 s' \1 [5 x8 L, c# h0 I}
" @4 [! s. g6 D, Y5 }! ^
4 |' _$ a( T& F! M& X& [11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
7 Q' w* I; B( x8 q+ x* b5 b main()
9 N/ p# g2 k$ X7 g# S$ O: n( h5 s { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
}) y4 x2 Y; Z4 X3 I int x , i, j=6; /*j为元素个数*/% @# v* u' ]5 L% s+ X9 h* L
printf("Enter a number: ");8 |* u" i& k; [' P
scanf("%d",&x);
0 ^9 k6 W: [' n; Q a[0]=x;& L* v4 v1 H) a; u( a' y
i=j; /*从最后一个单元开始*/
% d: x; l- h% H, A x while(a[i]>x)
6 T$ O$ r8 Z! X { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/) R& x& f$ E8 B3 k
a[++i]=x;0 Z7 a/ ^3 C1 F( W) y3 L' H* i
j++; /*插入x后元素总个数增加*/' R! u7 I7 i! X) T. |
for(i=1;i<=j;i++) printf("%8d",a[i]);
9 N3 K7 W! t+ s8 u3 `5 y printf("\n");4 i' M0 p6 I/ Z4 C0 o/ z% W
}6 y$ [; x7 @* ?. W8 s
! @, w) D# N) K* t
. p; j2 x* u: M# p12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
( o+ T4 {+ r2 C) c2 u2 g#include<stdio.h>! P6 x; f$ ~4 W \8 m, A. M
replace(char *s,char c1,char c2)
/ D, i) o, S" J' R4 M{ while(*s!='\0')* Q0 y1 T! e0 b5 ~. W' ^1 t
{ if (*s==c1)9 y1 T2 L4 N( i
*s=c2;8 x4 ]6 ~2 M1 c0 k; p+ W
s++;
9 `2 E0 _+ `9 p' D9 |2 d }
9 j% ` v+ c! n" U# G) q. y+ p6 j" \$ z}
7 \4 U4 L! {( R- O9 r ?4 Amain()
6 r# Y/ I! B. R; g{ FILE *fp;: o9 e# v# o5 Y5 j W
char str[100],a,b;+ C; T7 U2 {& Q# n! p$ D& _
if((fp=fopen("p10_2.out","w"))==NULL)% o% Z& C4 v* L/ I! \
{ printf("cannot open the file\n");: v( `. D. r0 l
exit(0); }
2 m& }' M: w( V& X3 s6 G" f printf("Enter a string:\n");
- t8 N4 j% f( s( s: i$ b" f gets(str);
7 L1 v( _! x3 H( l6 m ?3 N printf("Enter a&&b:\n");- B, e, Q" N" \6 a# J
scanf("%c,%c",&a,&b);9 p7 E$ n8 Z: |. L
printf("%s\n",str);/ ^* t/ K/ K& k& ~
fprintf(fp,"%s\n",str);% g4 b$ V2 i" F3 j7 t0 d) l
replace(str,a,b);
' w4 X3 i2 h: M" s- V# oprintf("The new string is----%s\n",str);
9 V7 s" E9 x: V, x8 W" Pfprintf(fp,"The new string is----%s\n",str);+ x: b/ Y9 A/ z% c& i# o
fclose(fp);' S" i- V$ u/ c1 e7 `: L7 o3 d; R0 s
}! F& Q+ V" \8 n
8 s; d( ^) v( m& b13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
- L5 b$ I/ V+ U9 G; ~0 Z,不存在则返回-1。*/
]1 L4 ^/ \1 Z. z! hmain()4 K# `- N u- p; G9 r h
{char s1[6]="thisis";char s2[5]="is";
& V5 A# O$ O k4 dprintf("%d\n",search(s1,s2));
1 ?; Q1 p& Z8 K. ]* ~system("pause");1 j. d# { q* {" b: O% ~
}
3 Z D( p. w" g/ Tint search(char s1[],char s2[])
. |2 \3 e( r# P2 w! o4 z* F8 Y" O& s{int i=0,j,len=strlen(s2);. Q _8 [; X" ^7 [ q+ j1 V1 P- ?
while(s1[i]){5 O4 P( i1 V1 O, A
for(j=0;j<len;j++)9 I' D1 o2 F9 ^5 i5 p
if(s1[i+j]!=s2[j]) break;+ [, s# b) S8 l* C. j9 r' Y2 t
if(j>=len)return i;5 l L. Z) t1 U2 x# z- Z( H
else i++;
! v: q/ {6 G4 E+ j}
" }3 r) M+ M4 P, [return -1;
; f: f# U6 w0 e; l. e _}# ~( d/ t( h4 y3 T- W0 w5 F
5 I. d6 s% t1 V$ M) u. M
14、/*用指针变量输出结构体数组元素。*/6 T; I. y$ |+ B' I7 `/ s
struct student
, a# e: U2 k9 o7 i2 P/ i{
8 {# u3 N* ~( |4 A- M7 F+ Z' sint num;
/ K, g$ C! w9 ~ L' d5 x2 [char *name;
- K1 q6 e. U+ N8 Ichar sex;; S3 _$ B( m# F1 v- ?( J: L2 H* N2 w
int age;' e6 O {/ }: { {5 l$ O
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};. g4 E( g, E/ d
main()5 x0 ]; n2 i/ j
{int i;
2 h# N7 b& ?- I- A. r; Bstruct student *ps;
0 C4 |# d6 W/ P* Oprintf("Num \tName\t\t\tSex\tAge\t\n"); 0 {8 H5 W0 X* z0 r% F1 c7 z
/*用指针变量输出结构体数组元素。*/" ?6 A0 S0 q- i9 g
for(ps=stu;ps<stu+5;ps++)% n3 j- k6 b i- b
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
? q; p; b+ b" l! z n& P/*用数组下标法输出结构体数组元素学号和年龄。*/, E% [+ g6 j, I9 o7 [8 _
for(i=0;i<5;i++)& S- P1 X# D( c3 }9 k7 b# z
printf("%d\t%d\t\n",stu[i].num,stu[i].age);9 T& B& o: q( m" u
}
+ N& x& U: |" |' V- m/ u3 b
$ n% _4 [, ]0 F+ T. Z15、/*建立一个有三个结点的简单链表:*/
7 K' T8 q: |; J" }6 p( t4 B#define NULL 0- B4 |' [6 H Z _
struct student
- |) y" Y, o! t" { [8 n{) c; i: r1 g+ x8 T7 I
int num;
& S# K* l9 C7 x/ \2 @7 schar *name;* I3 ^& a- ~" @$ @! H/ I# C6 O
int age ;
9 E. _3 S) Y+ v/ ^; A' q& |, l2 Wstruct student *next;
- T- g( v. X6 p, b3 t, m};! {3 |4 m' _# q! @6 \$ ^( C" d
void main()
' v+ _6 @0 F' L x# @% }1 K{, Y4 B/ s7 B2 t5 S0 i' F
struct student a,b,c,*head,*p;, K0 t0 k% C. J5 _
a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */
) h9 h8 c% W; @" ^$ |! qb.num=1002; b.name="liuxing"; b.age=19;! L, |, D& I [& `* E, c" |
c.num=1003; c.name="huangke"; c.age=18;5 R+ c7 n. z# t- }& H5 b# t5 N5 q
head=&a; /* 建立链表,a为头结点 */
5 |% j+ W( Y. Oa.next=&b;
# A8 S9 [0 W7 M% t* pb.next=&c;8 d q( l5 a; X6 O4 V c* t
c.next=NULL;
. k) b3 V3 m- x" L) r; q: g; mp=head; /* 输出链表 */
7 Q/ F4 i: r9 f& Mdo{
0 e/ f& M% |: [4 v) C/ Pprintf("%5d,%s,%3d\n",p->num,p->name,p->age);! p- b! t% u+ Q- P2 f/ P
p=p->next;
, S" d4 p x* b- ?* Y" w}while(p!=NULL);8 x( x k- Q5 b$ F
}7 G. \( {+ X$ g, }: x, a+ R1 n
. S6 D0 U% f/ Z
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/: Q3 v) N6 P$ M
#include <stdio.h>
7 m3 F4 o0 q; F; H; x |: i" T#include <string.h>$ k( e/ p H& f4 v7 E: r0 h. T. Q
#include<string.h># X1 u6 Y& V: j; b
main()
- ]8 T& }9 [" G- ~# y{ char s[100];
# k8 A4 H, p! m" P$ v9 L6 m3 nint i,j,n;7 h O. h, `" o: `7 |: U
printf("输入字符串:\n");
4 K2 w+ u' f# P q! Z5 \gets(s);# y6 v0 x8 ]2 b; R) a1 g) E4 M
n=strlen(s);
7 C! p0 B! [2 u. k8 Ifor(i=0,j=n-1;i<j;i++,j--)4 Z$ K. l# O$ m7 z: X% s: Y7 Y
if(s[i]!=s[j]) break;
|3 g" _& N' S6 X+ P6 ?; Kif(i>=j) printf("是回文串\n");9 k+ }7 o' C9 H( t" z1 ?( r% B' b
else printf("不是回文串\n");
- H# Q- u" x& P6 d" h" c4 Y}
5 L. s8 u. j' R- j& g5 S* O# u- Q
8 H7 ]' E- q5 e! C& X6 Z17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
& ?) R9 Z/ q- E9 G3 Q7 ?( ]#include<stdio.h># }8 n/ x6 E! U
void fun(int a[],int n); Q o" ^2 Y. h- V
{int i,j,t;
. U9 a" h' L# l. A$ J1 \for(i=0;i<=n-1;i++)7 O* d1 T0 c% P7 t$ a
for(j=0;j<i;j++)
- K/ _& e, R5 a if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}' z* X. E1 j' y1 m% |
}
6 u; l5 ]! s" y+ e8 ymain()
% a* o7 I5 W3 u2 P, N+ g{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;8 s9 w: K: }! q* _1 t
FILE *f;+ r" C# V# h7 V$ d: W ^
if((f=fopen("myf2.out","w"))==NULL)& o3 f- M# k( C8 q
printf("open file myf2.out failed!\n");. @0 H3 A6 q: `" U* f) y
fun(a,10);
$ ~; K z. A. {) ~% [' c1 zfor(i=0;i<10;i++)
0 q+ p6 I: v& R& e( L" j3 s {printf("%4d",a[i]);8 x4 P$ F7 u) b) H
fprintf(f,"%4d",a[i]);1 ?/ L# F) Z* Z, L
}
/ t* m" f' R5 v4 d7 y8 ufclose(f);/ B. V% }: M0 M) } G; W
}
# L @0 |5 U- U- Y0 i+ X+ x9 Q e( Y5 \
18、编写函数countpi,利用公式# }1 z. G# Q1 w& o! f
9 Q% f& E/ I- Z0 V/ e
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
b) |. n1 X7 W0 f8 ^#include<stdio.h># p9 n, d. C! E5 E% {
double countpi(double eps) /*eps为允许误差*/8 d3 S* E2 }1 `1 s& Q) a
{9 J) D! @1 R2 a* T* x; M* k! H
int m=1;3 c$ c0 N5 o) \# O0 o! U @
double temp=1.0,s=0;, J" v, L5 S9 D! ^
while(temp>=eps)" k" A% Q) o1 j( [3 k; t
{ s+=temp;) V' H3 _4 ^* y1 W4 Z6 t
temp=temp*m/(2*m+1);- T( i' N. F5 F6 n. T
m++;
7 z$ Z7 T' O- q( L8 Z' c }& o j/ B3 c4 A {+ i8 s z: _) ]
return(2*s);
( _ ?. _ K- ^9 d1 N! I5 v+ A+ S}# O6 j$ R9 M' u6 G( O/ b
main()
, S0 S8 G. [ H7 D B{FILE *fp;( Z2 j' Q/ F9 b7 r( w
double eps=1e-5,pi;2 q$ M- g8 a" k- `; \: n
if((fp=fopen("p7_3.out","w"))==NULL)
. R! V: J& Q( {' i5 E! E5 p! s { printf("cannot open the file\n"); B5 T5 C0 I& O5 a6 m0 K) v
exit(0); @0 i6 C4 y1 O/ r% L: z0 M, K
}
# I, z4 T2 S6 l pi= countpi(eps);
9 d; r2 Y7 v# c1 T printf("pi=%lf\n",pi);. b; a- t. C) n2 }
fprintf(fp,"pi=%lf\n",pi);9 o! u8 N7 ~: K5 R
fclose(fp);
5 N8 l# g" z$ j! C+ Z* a8 G} |
|