|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
! _4 i8 [- O( u1 I7 ]0 h
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/) B4 `! n, h8 K( K
#include "stdio.h"
. g: t$ R* q+ t( hmain()
, J0 o' V6 o \4 M; \( P# x{int i,j,result;6 J7 Y2 n1 W- L. Y
for (i=1;i<10;i++)
" ]& r0 e; t9 C& e4 r, I) x& I { for(j=1;j<10;j++)
6 x% Q& p8 e( K! Q- D( m {- s# a( Z( C7 o
result=i*j;8 A, Q9 _; n$ S. E: G
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/1 e6 l' ?. i: ~) B$ l# W
}) R! P- K3 j \$ O
printf("\n");/*每一行后换行*/" V$ \! G3 J4 s4 ~9 |- ^( u, p
}
9 F4 P& ~; [' y+ _( f- ~}+ b( k% F# Q, t8 T: q- \
+ N# T; f$ K( i2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
/ E) `6 v W: f" v" B8 P兔子的规律为数列1,1,2,3,5,8,13,21....*/9 M) t5 a1 z7 ]8 s
main(): v9 ]2 r& M3 i+ ?
{: C- P0 x( w) a6 p
long f1,f2;0 F6 N+ v3 v" n5 s5 ^ U
int i;6 w \, \$ K& A1 W7 R
f1=f2=1;
9 K7 B4 R. b8 Sfor(i=1;i<=20;i++)$ [& E. ^6 k8 H" ^
{ printf("%12ld %12ld",f1,f2);; _( f+ x5 r( i( j3 N3 b
if(i%2==0) printf("\n");/*控制输出,每行四个*/! r* U6 I$ {5 ^4 Z+ y% e: G6 K
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
# n# f- }' Z3 c$ f2 N f2=f1+f2; /*前两个月加起来赋值给第三个月*/
* G4 r [0 P, W$ N' w5 n }; A6 b; r' C* `+ w0 | Y
}
I1 s$ J+ T+ [& w
" P' o' S# Y6 A9 w( f3 w0 z3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
5 G, ~3 l) O1 i: ^程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,' F. y# w% c1 _4 p
则表明此数不是素数,反之是素数。*/
, P7 i! `+ [5 j# w7 A7 F#include "math.h"0 v3 X$ D8 D: r) a, r0 y
main()1 r1 @ k X, e1 i
{. V& U2 r5 ^* j! F
int m,i,k,h=0,leap=1;
' O+ U4 I* A, m% @printf("\n");
$ b+ u4 G# {! ]3 k6 M: r* E7 R2 Rfor(m=101;m<=200;m++)
; i" A$ v$ ^$ S# ]- ^5 W& H# g! `6 P { k=sqrt(m+1);
, m1 N1 [* V! z for(i=2;i<=k;i++)
8 T3 M' ~6 p5 e* y* B if(m%i==0)! q5 h: m x& @8 d" J
{leap=0;break;}3 d: k: b) ?" @0 O* I/ Y$ y
if(leap) /*内循环结束后,leap依然为1,则m是素数*/( C9 [* o4 s# `
{printf("%-4d",m);h++;2 I( C7 N5 H' d7 q9 W
if(h%10==0)
+ T) W* g' X& r! @6 m' z! Z, W# ? printf("\n");
: M- v. `7 s) d# w+ Z }
6 P% t/ \1 l4 Q# p leap=1;
$ Q$ r- d- g- w9 [ }
4 X% ^1 q% U+ |! D7 t' Cprintf("\nThe total is %d",h);& H2 @; s* y4 ~
}
9 f- b2 z2 r3 B9 ?
0 _# q8 R( ?3 F9 W, |4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
8 M8 E& r" h, I. | 找出1000以内的所有完数。*/
. o. V2 H7 s7 D- a: r3 kmain()2 K4 n9 j4 \4 a; m/ G6 C% p
{# m* H( I: \+ [, O
static int k[10];
6 R! U4 h( n8 x% p! ?int i,j,n,s;' o$ I9 m. b9 g" Z( K* u; Z V
for(j=2;j<1000;j++)
# i! m6 Y+ j6 u6 n4 K$ ?7 J& i {6 G7 q$ f; H" H- n- K6 F
n=-1;
1 s5 g) p2 S; Z0 W2 c. k s=j;
. R2 b8 I6 P3 H0 F8 P0 `9 C0 W: O. U for(i=1;i<j;i++)8 L, B! H! I0 \! _2 C. U: ?6 u' `
{if((j%i)==0)
7 V* ^, U$ W8 h t6 N& l. @ { n++;( w. R- b8 T6 I$ f2 k! x* L
s=s-i;9 r! a) `% h5 T- {4 ], f
k[n]=i;
9 _5 b& e1 v1 G% ] }
2 ~! v2 e9 v. H2 B+ C }9 \: b) {4 ?/ y8 u" F a
if(s==0)
9 S% d: t. u! I7 i" r8 E {printf("%d is a wanshu: ",j);
) W Y; r1 n: ~ ~ for(i=0;i<n;i++)7 A$ l" R; j: b) A, H3 G
printf("%d,",k[i]);
! U+ V: i6 u0 O. X: }) i/ |! q printf("%d\n",k[n]);
6 @; }2 q) a/ ?; j }
" o, i* r6 @3 G' H- \}# E) R+ R# l, l4 A/ ?9 f1 L3 r6 S/ l
}# k; W& o7 ?, |
$ a% Z9 i2 M- n) @+ Y5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
1 J0 F( Y4 X4 i; I2 W请在空白处完善程序。*/7 x9 I6 u, k! W r$ y: Y
main()
; @5 n& D5 L3 n `# Q{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
+ l; k4 l/ C/ O$ z3 [ printf("input 16 numbers: ");
/ t5 v$ i9 V: ^0 s' n/*输入一组数据存放到数组a中,然后旋转存放到b数组中*// }0 \0 Q# C0 Q: ]" j1 o- D
for(i=0;i<4;i++)
' U4 N+ ? q3 \4 G' b for(j=0;j<4;j++)
Y/ g) n1 a, n; y: Z { scanf("%d",&a[i][j]);6 t( J' ~0 m T+ b3 v# p) `
b[3-j][i]=a[i][j];
9 B& O' R( |) `7 U2 Z3 h }
* ^, G; R7 T. M2 I printf("array b:\n");
Y/ J3 U0 G" `' {5 j for(i=0;i<4;i++)
$ O+ s, I M4 f9 O: j% n" ? { for(j=0;j<4;j++)# l, U4 I4 `- M9 f' q0 b
printf("%6d",b[i][j]);% h, l8 J2 W t+ g+ t4 R7 ^& ]
printf("\n");7 K8 }6 ^4 ]$ }: [& A: C4 V. v
}9 J! q0 t$ d+ ?0 I7 P, ^
}1 A6 M/ e5 _( \ {% a: R$ O* H
$ }% f/ Z* }! i1 b2 R2 \9 K2 R/ _
6、/*编程打印直角杨辉三角形*/6 M6 i: c6 _9 a1 `% h
main()
6 t. h0 n; ^/ X$ i{int i,j,a[6][6];
, X' u. V6 M, ]! E$ x$ Bfor(i=0;i<=5;i++)
8 l0 {) P- d0 Y5 M5 E+ o) J& |4 {{a[i][i]=1;a[i][0]=1;}
( e3 L `' s5 T4 Q3 P, Y0 rfor(i=2;i<=5;i++)4 o- C* N# p& y' Z
for(j=1;j<=i-1;j++)
6 @( ?! W7 x2 f6 P$ ^ a[i][j]=a[i-1][j]+a[i-1][j-1];
# ^% f/ [" `( Dfor(i=0;i<=5;i++), x5 w4 V0 @0 n8 ~: K4 G
{for(j=0;j<=i;j++); g J& K/ E. Y" L0 {4 B3 |/ t
printf("%4d",a[i][j]);5 `' i7 p6 G; @
printf("\n");}
* Z3 M0 c: h# J7 k. ^7 B6 ^/ s6 E6 W}
]* [. g5 k7 ^1 O7 W6 p3 _6 G) s Z
, H9 C$ f3 j! _' ^/ D$ Z |3 o7、/*通过键盘输入3名学生4门课程的成绩,% N+ j3 K4 e7 K% R' X. A2 Q
分别求每个学生的平均成绩和每门课程的平均成绩。, r4 W0 d4 j7 R. l% \/ S9 M
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车9 P7 m& d2 ~& ^5 Z6 _4 s# s# g% z
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
, B, O7 K7 E3 H$ L8 u#include <stdio.h>' z+ c( R8 e6 N2 y+ |/ Z- _; V
#include <stdlib.h>
6 a6 n7 R; _' z u4 N, fmain()
/ R4 }: h9 u. D5 }4 K0 D3 j' F{ float a[4][5],sum1,sum2;
6 _6 b% G$ w! X( X# Z( G! o4 a; ^int i,j;
* Y" B& X: y! Q1 Z1 Tfor(i=0;i<3;i++)
2 ` ^' ?7 q) ]% r5 O. W for(j=0;j<4;j++)$ L# s5 X/ R, ^) G; I/ ~
scanf("%f",&a[i][j]);
/ P3 L* Z9 C2 S# ufor(i=0;i<3;i++)
) {( |$ b; F/ X4 m* ]: ^. _{ sum1=0;
) \6 |/ ~8 I+ ~0 X, o" q$ a for(j=0;j<4;j++)+ _. B/ \' r3 y+ D6 P/ s
sum1+=a[i][j];
) s7 Q* h% D4 ]) r5 q, u a[i][4]=sum1/4;7 [0 A0 L& o. y
}
6 V# f' h$ W$ bfor(j=0;j<5;j++)
, F# I2 g0 `# Q. M{ sum2=0;
B1 v2 Y& P: ] for(i=0;i<3;i++)" I+ w( n- m. i; U9 L6 g
sum2+=a[i][j];
6 q1 O7 A4 T3 j2 P! B& u a[3][j]=sum2/3;
+ `, `- h1 R8 C3 R9 J. Y5 N' U }4 G/ N% v9 m2 e# H+ `% W' M
for(i=0;i<4;i++)
) t% Q' S+ ]! m# ^ { for(j=0;j<5;j++)4 K9 U& y) p# m: M7 D8 p$ R/ }
printf("%6.2f",a[i][j]);
0 @5 s( l% j9 f* y7 c# o printf("\n");6 y/ J7 v- F! x
}7 J& }6 f" \5 K+ h1 `6 F
}" M. C/ M% n2 \: I& N5 U3 W" Q
$ @# \0 ]9 P8 q, }8 A8、/*完善程序,实现将输入的字符串反序输出,
X& X2 ]* E5 r b! ]6 i* t# c如输入windows 输出swodniw。*/
* ^' B! ]4 B* @3 k, D- }. @#include <string.h>
% x! ~2 l" G1 Q+ p7 tmain()
( p3 o, M. U B{ char c[200],c1;
) \7 k3 o1 F6 a( \: U1 r8 V int i,j,k;
5 a+ _/ k4 u8 U5 W9 O7 n* K6 z printf("Enter a string: ");
* H4 L+ ?- d' e( t scanf("%s",c);4 A1 }4 L3 M) \8 V1 W6 w
k=strlen(c);( r1 [ N m7 y
for (i=0,j=k-1;i<k/2;i++,j--)5 x: n& S4 I& w5 z u
{ c1=c[i];c[i]=c[j];c[j]=c1; }0 S) l( g) [0 T
printf("%s\n",c);
# Y2 L, I; ~! U# }6 i: }6 Q4 o}
) h/ L; i# o, \5 d& b+ F6 G指针法:
6 \( i* R# S3 a% c- kvoid invert(char *s)
$ g* [6 u0 w2 c" k- G{int i,j,k;" Q* }+ T* L& k' ~, }
char t;& B& V- ] S8 u* h9 H
k=strlen(s);; \4 l- i ]) k8 A
for(i=0,j=k-1;i<k/2;i++,j--)
" z! |5 A# L2 m. S) o% i{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
6 ?5 u& k8 J! k0 W% [; o}
5 c5 H7 `0 t' dmain()
% _! m( ?8 z) b: N, u{ FILE *fp;
- x. F, v R1 P' E char str[200],*p,i,j;
5 Z! q; E4 h; s) I if((fp=fopen("p9_2.out","w"))==NULL)
/ j% C. C0 R& f& R+ x# } { printf("cannot open the file\n");
5 d6 Z0 z$ @' q6 `/ U1 P exit(0);
& q3 @7 G& M, a8 V3 @8 t }
`9 P- B7 y/ N' ~ printf("input str:\n");
& X/ }& S$ g2 agets(str);
$ i0 a, N5 s) a' T4 ? r8 q1 } printf(“\n%s”,str);; v: [; R S- ]. P$ `; q
fprintf(fp,“%s”,str);) J+ y4 p7 N4 k1 m/ c9 q" @8 r4 ?
invert(str);* V4 E {: A3 F; {! |' R( D
printf(“\n%s”,str);
; P5 S k9 Z) T6 W' | Sfprintf(fp,“\n%s”,str);
, [; h4 E8 W8 o# `0 c9 C$ Kfclose(fp);3 l( y4 W* j2 n. g) X( V
}, f9 d4 Q" @2 h" z: U k0 Y! L7 P- n
3 R( E6 V( I! C5 E$ S9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
; J4 ]7 m7 Q* `#include <stdio.h>0 J! y- y0 J7 y( X' F% N
main()( h4 ?: n6 \; g7 C5 B/ |1 }
{ char s[80],c;
# B% S% k" d% B5 H int j,k;
" S2 F: [5 h3 k1 R' [ printf("\nEnter a string: ");
5 C7 ?2 y* z# g# w( D c gets(s);3 L% l0 e+ e0 h3 u7 o* k& d
printf("\nEnter a character: ");3 U& w4 S& B' f. _ a
c=getchar( );
; r, i! `2 a: s5 x, R/ n* | for(j=k=0;s[j]!= '\0';j++)
t0 G1 f3 k- d, b+ Q if(s[j]!=c)8 O& m$ G) }, _& s( E+ j, _( W
s[k++]=s[j];
% m$ q2 z( A1 S, J6 K$ f" G9 @$ c s[k]= '\0';9 O- C+ {' z- k
printf("\n%s",s);6 B; A- j- |+ _9 r* [5 J
}# A, B: g" h& W
3 a' H+ W2 |/ q9 X: G3 ^
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小1 W8 O# O# q$ c0 W
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
+ L2 A$ V( i' O6 j f* o#include<stdio.h>
; n# E7 I& v+ W+ ~' V5 K) wvoid sort(int *x,int n)& I: Y1 F2 l' Z- [" ^. x
{* h" I# @" S, X+ e
int i,j,k,t;1 C% m3 c/ g& l0 B
for(i=0;i<n-1;i++)
- B5 J3 l0 _7 @0 |- p2 a{& l1 Z! j* T* D9 R0 M
k=i;
' _& u; E- u: T1 y0 y- D7 [2 R( ffor(j=i+1;j<n;j++)
, R6 F0 F0 X; }" {4 d if(x[j]>x[k]) k=j;6 x+ g3 E( C% {+ G% N4 [
if(k!=i)
9 I7 e, Y' r( P% z, O7 z4 @ {8 ^) x p! g' Z; r
t=x[i];
' r, i$ w- `& S7 D4 x+ @/ w" R2 p x[i]=x[k];" f# `2 u) h* D& c( @# C; Y
x[k]=t;
0 m# w/ m# m! X5 ?9 P4 O }5 y J+ W* T! b3 s3 S& w |
}
& K4 |+ ?% {/ Q: Z4 x" P}( G1 Q8 i; j# E2 M, U4 d
void main()4 _$ R3 i- X6 y0 G! ~
{FILE *fp;
R; h: Y5 L2 x; N int *p,i,a[10];
% ~2 p" k. R: V4 k fp=fopen("p9_1.out","w"); * `3 \( H. s8 ^ _5 ~
p=a;6 W7 |* L) S8 s! n9 v8 |% F
printf("Input 10 numbers:");
5 U) l) Y# `# h& P+ Q; Kfor(i=0;i<10;i++)
+ r' g; b) t/ C% jscanf("%d",p++);
: y$ t7 x& Z+ ~/ mp=a;
# e0 }" g/ j, {6 s' y6 Jsort(p,10);
7 R( \ a0 M1 v( ?: e: vfor(;p<a+10;p++)
% c$ h( |6 O3 F% I% d1 @7 j- v{ printf("%d ",*p);
7 W3 r' B+ s J9 X Q( s fprintf(fp,"%d ",*p); }- |# ~ r3 E5 q/ J# [, x
system("pause");& i0 _: V+ {3 h) o' j
fclose(fp);
% |; C! B% L) s3 S& G/ _+ P}
8 B( u( G- P# M" b* q$ z s0 J1 o. q+ c
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/3 c- {7 \ S3 ~0 v
main()
" N3 C( {5 P6 \2 L { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
1 G% V' f; U1 y* X1 L ^ int x , i, j=6; /*j为元素个数*/. _& j) W: Q; ]4 w+ Z
printf("Enter a number: ");
* u" @1 n' j/ O a. z( B/ @( A scanf("%d",&x);1 y$ \& k' B3 v+ O5 d
a[0]=x;8 @( I* f2 ]& Q3 K
i=j; /*从最后一个单元开始*/# H: `+ j F# C, z* r8 ]6 o
while(a[i]>x)
; {- G5 V O$ e) s* t& C { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/+ `2 _; f9 W5 E0 H- J9 k2 J9 j+ I
a[++i]=x;
k0 w8 f; B" C, s1 s: P7 w8 U j++; /*插入x后元素总个数增加*/
. ~+ J4 U8 ~. N for(i=1;i<=j;i++) printf("%8d",a[i]);
& E) x: O2 @5 Z printf("\n");0 O) Z8 p) Z' a, p; ^" }) G% D
}
) `4 B: i/ Z, X \5 q
% I) ? ?8 ~; e3 u3 B; E3 _7 L9 y0 @/ K6 s: ~- g
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/5 }, W' S& z* e) L( z5 P. z
#include<stdio.h>
) V+ T2 w! X2 c0 R) preplace(char *s,char c1,char c2)
% T5 H8 H6 T) G; |( V$ v* C7 |{ while(*s!='\0')
! [2 }! ?% i- v% h { if (*s==c1)
2 t7 Z K" v! I9 v& @3 q *s=c2;
1 @( L: U1 [& i5 p+ ^, W, P/ Q s++;( O8 {, D% @& z" [
}
0 o2 ~# f& O0 d0 s, |}! T: {% r" S, P' w5 }
main()3 P8 Z; `9 T9 Z. S" E: R
{ FILE *fp; I8 u% `! a( t" r6 a3 N# j/ d
char str[100],a,b;
5 y/ r0 q8 N) c" |2 g: f4 C5 h if((fp=fopen("p10_2.out","w"))==NULL)) d- z j4 V+ `" Q
{ printf("cannot open the file\n");
7 i; I/ r0 V* N) j% z: i exit(0); }2 y+ L$ c/ A3 I+ q6 A
printf("Enter a string:\n");) U g3 B' q6 i7 w. [, a
gets(str);
* m+ h, |* u- G printf("Enter a&&b:\n");8 `' c: A7 t0 Z
scanf("%c,%c",&a,&b);
# X* @( [- W3 ^! E$ ?! U7 Yprintf("%s\n",str);0 f1 }+ P+ B. x. h' F& K! V* X
fprintf(fp,"%s\n",str);; @; j0 X2 ? l& c% o6 p8 K+ u
replace(str,a,b);
7 K& S! n: ?9 I5 x' \2 n; Sprintf("The new string is----%s\n",str);
4 S% k$ H8 O3 O2 ]4 n( h1 Ifprintf(fp,"The new string is----%s\n",str);" T7 v4 M* m3 F; D
fclose(fp);9 G" |$ L: A% @) T, q
}
8 L4 v& \. H: U8 e5 Q
! ]5 d- Z( C) k5 |( h13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
3 j5 [8 _6 P% t# |2 {$ R,不存在则返回-1。*/
; [' w' r* s2 n* k) ymain()* p7 |7 k! ]) J% f" C
{char s1[6]="thisis";char s2[5]="is";
' A8 T0 ?! ^# B% {printf("%d\n",search(s1,s2));+ u+ `8 G' u5 d+ z% U
system("pause");
6 z9 f# v0 ^9 n}
* Q h+ P1 W2 P v# o6 Yint search(char s1[],char s2[])
% o' @9 }: w- E" u0 x$ {{int i=0,j,len=strlen(s2);5 z6 E# Q* C1 }, e' G4 }
while(s1[i]){4 a* M& G. O0 m( F; Y9 H4 z. g
for(j=0;j<len;j++)
4 s. A1 n. p1 D) X; eif(s1[i+j]!=s2[j]) break;
! G$ B7 M7 H1 `& _ m. {if(j>=len)return i;
8 C P# L9 x4 K7 kelse i++;5 a3 l& w: s8 M- D
}
, U" W+ i/ O6 G r* w4 E' treturn -1;
5 Y2 P6 g9 N" o0 w* A0 b* m} S; `2 x% a/ g [0 Y( X. A2 b
" `6 Y1 t$ m! k; q
14、/*用指针变量输出结构体数组元素。*/
) C: ^4 l, h9 n; G% X; O% G% v# pstruct student
% J- i7 c9 i! ]( o{' W+ r% ^. Q; u# ^1 k. |3 G* e6 Z
int num;
8 E8 t6 m, f3 Ichar *name;+ r8 S! f2 |+ G! L( g/ G& c
char sex;* d5 K, _' L" i+ Q# g- N
int age;: D( `( t! F2 D7 w, e
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
5 N* G+ C. G% ?5 C j+ f% H1 Mmain()" b6 s3 E, i' T: Z
{int i;
P4 n* \2 n- W+ Xstruct student *ps;
: a: w& a' ]+ @. w2 L7 }" Jprintf("Num \tName\t\t\tSex\tAge\t\n"); 9 C8 c; m" B5 o4 I1 O
/*用指针变量输出结构体数组元素。*/
1 ]. m s8 e3 \4 Q9 L( sfor(ps=stu;ps<stu+5;ps++)
: Y, R& `8 \, l u$ n% z' K/ Gprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);& Y. i6 ]' s' M: N; n
/*用数组下标法输出结构体数组元素学号和年龄。*/1 F0 f( N" m$ n: y! j s& g; N& A! E
for(i=0;i<5;i++)9 Z1 o5 l8 v9 m* Y
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
" P/ F0 Q* M4 A# E# F" i}) F9 N& A$ H- y/ t" C# Q' l3 f
( p& u# V5 k) s: Q1 W15、/*建立一个有三个结点的简单链表:*/6 Y2 {: d/ o; N" ?3 W) W
#define NULL 0
& A/ E- t. r5 O' X$ _struct student
: P$ M$ G2 n7 W3 r4 U{ \6 w( e* r) m; {& N; }
int num; a; S, A9 E$ S& c
char *name;$ k7 G! W9 H/ k- w! ^! T$ W
int age ;* h# a/ {4 X$ J- c+ N) D8 f9 T- }
struct student *next;# s4 t, Y. d4 ?: C
};
: b' S1 w+ ^9 s* y; cvoid main()9 n9 X% O0 a9 i- e" A
{
5 ^4 H- f' {9 j \) l0 C1 Rstruct student a,b,c,*head,*p;
' n8 ?1 A2 L/ |: n; n3 A [2 va.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */* w$ m% ?3 W& B: a0 E" Y
b.num=1002; b.name="liuxing"; b.age=19;- l: l X5 U( D* A, m5 h7 ?
c.num=1003; c.name="huangke"; c.age=18;; j+ ~) D9 V, S, {7 N
head=&a; /* 建立链表,a为头结点 */8 [4 s! p: w; k4 J3 m* I
a.next=&b;& c. e$ O, ]& y. ^1 B5 a
b.next=&c;
! S/ i+ n; |0 \ [c.next=NULL;
4 z; z. W( e' l1 g" }' V- x' Ap=head; /* 输出链表 */
' W0 E( Y a5 Tdo{
$ @# Y7 d- s( B% \; Nprintf("%5d,%s,%3d\n",p->num,p->name,p->age);
9 W( }# R# s# }: i' l$ ~4 C- Jp=p->next;
; ?. K) t0 s* F3 c! o- M}while(p!=NULL);
# f0 T7 W3 V% c( }- h}' e1 \& L: m/ ^( H* s
1 z6 _9 b! _% a* C) C
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
& p& W; `5 s1 ~#include <stdio.h>7 ], [$ P8 G* c, d3 ?# A
#include <string.h>* b4 i; w$ w7 z$ D$ U, l7 c! d+ s
#include<string.h>
, O! J5 y3 |/ Wmain()
; X8 u7 i0 K2 J( a z{ char s[100];8 H( q' f! b S* a% O: C8 ^/ R
int i,j,n;. U7 `; z6 N) O% z
printf("输入字符串:\n");" X% K3 z% j1 _
gets(s);$ r9 b) o! I/ K q8 [
n=strlen(s);- U" C0 A+ X% ]7 E( f
for(i=0,j=n-1;i<j;i++,j--)4 M0 P* T- U* N
if(s[i]!=s[j]) break;
% F/ @' Z2 _, |# a2 ^9 y; A; c, qif(i>=j) printf("是回文串\n");: C: T* j3 ?+ o, G
else printf("不是回文串\n");
/ Z3 v; A6 t& E0 }- D: z}
2 G& m+ c3 z; G c# {
( e! a* W7 J; t. b1 r5 ^17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
3 R' P/ ]: N! @- i#include<stdio.h>$ u2 n1 ?! i9 q' G1 w( J6 H
void fun(int a[],int n)
5 Z3 h( }- {% y% K( Y. }, W{int i,j,t;
, @& g3 I, C" Q& a/ j9 A q: jfor(i=0;i<=n-1;i++)6 p% \, O- Y- g. b% ]6 w" m
for(j=0;j<i;j++)
% U* ~ F4 c# V9 B) v* Q" [: ~; s/ Q if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
% @' `9 `4 j) K C& s4 m+ N3 h) w1 p; U2 w}
0 Q- o' c1 E# n) j6 \main()2 D# Q* O/ n% N
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
F0 }4 d/ T4 Q) M* p D. }8 V/ `FILE *f;4 r4 a1 f* U& J! Z
if((f=fopen("myf2.out","w"))==NULL)4 u3 ] j1 ~' Y5 g6 C
printf("open file myf2.out failed!\n");
1 l) n9 l5 C2 Q7 n% y% D" B5 U( w4 e/ bfun(a,10);
8 x7 Q1 }- M( ^for(i=0;i<10;i++)
8 K" ]% j t+ Z+ L' v3 g {printf("%4d",a[i]); z/ @0 V# o1 F7 `& l# D- g* p
fprintf(f,"%4d",a[i]);2 G- O( O3 o& Y. w
}
/ v" @$ W1 Q9 l2 a4 ^9 T0 hfclose(f);
8 K/ n' b" _5 L' y& v; C}# l. p' ]' ~( R, Z/ ^. M: i) j
, c0 o& B) v8 d. h! z3 i5 h( @7 r) f
18、编写函数countpi,利用公式3 L! G/ i9 F. D
7 m1 z1 Z6 R0 a1 I, q 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
+ G7 K$ p9 O5 I, c5 _#include<stdio.h>
$ o2 I) s- m* Z) K& Q" a) @double countpi(double eps) /*eps为允许误差*/
; K+ i/ U3 s+ x3 \) {' O5 s{
, e& ~+ |7 t: {; f int m=1;
- G: I9 l+ D4 ?: C double temp=1.0,s=0;
1 u! _% i3 w. k2 s0 o while(temp>=eps)
- @6 k) H* g5 V { s+=temp;
$ X0 ~, D3 t/ @ temp=temp*m/(2*m+1);3 u3 Y- J7 y& T+ p5 O* m
m++;
" _2 G! F, o8 u }! Y+ D. G+ K$ `+ M
return(2*s);/ @- R' d6 _) A# c& P. E2 j) J4 {
}1 E% J6 p- X+ B( W$ {/ N
main()
9 Y" c6 n! l3 J8 x+ N' Z7 T{FILE *fp;
3 [) \1 | Y, J: _, ^ double eps=1e-5,pi;6 ~% U! y }* m0 _, f3 R8 `( _0 F
if((fp=fopen("p7_3.out","w"))==NULL)
0 [! x2 ?1 W( F+ X% Y* h* I& r7 Y W { printf("cannot open the file\n");2 n; o: [# S$ V* e+ c( _4 M2 c! ]
exit(0);
& w/ M9 u3 R" W2 r# L3 y }8 @' S0 n' p, O1 j
pi= countpi(eps);4 Z+ J8 R: E$ m x
printf("pi=%lf\n",pi);
: y5 G- @! N; N9 p4 I$ O, afprintf(fp,"pi=%lf\n",pi);
e" B! b- s/ Y! ~fclose(fp);# { h: M: M9 W0 |+ M, O) G
} |
|