|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
% O1 Q; H2 p; x: v+ N2 r6 h3 w1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/4 i1 c( v/ c( ?: h; ~3 t5 M- E
#include "stdio.h"1 q2 T* }5 a" X
main()3 f& A. Y( w" @4 {4 o
{int i,j,result;
% T7 A7 V! g$ v- B; ?0 \. F; d3 t$ W3 bfor (i=1;i<10;i++)
s* ~2 Q' V# l7 h2 k `0 X { for(j=1;j<10;j++)
1 s/ M3 V' y# ?* s {4 H" p9 n4 G$ d* M) `8 G
result=i*j;
+ e" \. N. ~6 a+ P printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
7 c" E0 G: O5 l1 z4 }' f3 V2 S }" R2 \' p% W+ w" @2 K% Y
printf("\n");/*每一行后换行*/
& U, e7 ?) i0 K8 H& L }4 R2 _3 X7 u0 s1 H* p6 K
}
) \8 y0 K5 l; y- t% o% t! C$ [
- g" t1 f, M7 q7 L# m2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?( s8 G3 p" O$ }4 `: c+ a) j1 {2 Y
兔子的规律为数列1,1,2,3,5,8,13,21....*/
% J3 C" T. F- ~, R: wmain()% h4 I% h7 t+ f( Q3 [9 S& S2 V
{* F: S2 S& X8 O
long f1,f2;
9 v% {+ T$ G/ y/ V* uint i;
/ T; K/ ?* k0 af1=f2=1;
- \7 N* K2 S+ v* X5 s9 D4 tfor(i=1;i<=20;i++)
1 S1 d% o- F% o1 b7 w3 F{ printf("%12ld %12ld",f1,f2);
7 @3 p8 u7 H3 }# I2 q if(i%2==0) printf("\n");/*控制输出,每行四个*/; H$ ~! R! f6 Q& r8 b
f1=f1+f2; /*前两个月加起来赋值给第三个月*/, ~+ q5 u- Z4 E
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
_2 D$ W( {9 U7 v }
- r, N3 V- S9 e% R5 @) w0 q/ f: h}
* J1 m( ] Y2 B0 y' W; W$ _: g
" I. ?4 f. G( T0 w3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
5 |0 c- X7 _6 X* x [' M# A+ X- _6 s- F程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
* G6 g- \: [1 W+ z% Z) M$ O B5 A; I 则表明此数不是素数,反之是素数。*/
/ `* ?3 y2 g$ X#include "math.h"7 i2 i" G8 t, |2 W, d# u
main()
- ?& {5 [' Y* b# e{ C3 i1 A9 m. r! s! _
int m,i,k,h=0,leap=1;/ Q& i5 U) ^& \5 ]
printf("\n");4 F" g( I+ v# @% j
for(m=101;m<=200;m++)3 |( g4 |! O+ V- m+ z* T
{ k=sqrt(m+1);0 C) ]0 A/ {$ k1 m
for(i=2;i<=k;i++)3 n* S; B5 D& N, z, u/ s
if(m%i==0)
$ Z, M9 s' G2 o- S ` {leap=0;break;}9 u Z+ S: Y4 [' O* N
if(leap) /*内循环结束后,leap依然为1,则m是素数*/
8 W, I, V2 o2 r7 W {printf("%-4d",m);h++;
- G, ~: @( b4 h1 k+ N& b3 M G if(h%10==0)$ @) U4 _% X8 `& e: I
printf("\n");# c% S, r# q+ o# D$ j8 N
}) s$ g# {: z8 H/ y0 O: V3 Q
leap=1;- U. t* N w% C3 s# ]
}
/ _' B5 s/ W- Cprintf("\nThe total is %d",h);
7 Z+ A/ O5 E$ u" I1 _3 m7 H: p3 y}6 l( b9 O+ L7 X3 f% @) B
$ L. m% z% ^" a5 {' X
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程) |0 k# m) Q* P, I7 i3 r
找出1000以内的所有完数。*/; _1 L. D4 q, T6 u- F5 a( \( p7 M
main()! @8 P4 A4 E/ [' q# ~' ] b
{
# n! e; \* M7 t% ]9 J$ v) V9 _. d6 wstatic int k[10];
4 G! f: J6 E/ r- v7 ~int i,j,n,s;
& M& z3 F$ \* Y+ r) L; zfor(j=2;j<1000;j++)
8 i9 B( D/ p' D3 q4 T! Y {; [8 t& t, {5 T$ ]
n=-1;
3 g D" s. M) W s=j;* A( j9 W ]! ^# m
for(i=1;i<j;i++)
5 W* t+ A& W( `( R+ \" k {if((j%i)==0)3 I H$ Q) K4 H! {+ V) z
{ n++;
, u# Z- E9 \- @4 E7 r5 s4 p G s=s-i;8 H$ ^. E6 H6 ? w. v4 J
k[n]=i;
2 L! o- U) \ `1 G) L5 C, t4 |% j( y }
: D9 _1 E" g: w }6 \' B3 t( l- d& j
if(s==0)
+ T& D# A! U$ I( f {printf("%d is a wanshu: ",j);
# L$ U. D C* Y6 j4 A9 U for(i=0;i<n;i++)/ K3 X7 Y( k u* A3 s) I
printf("%d,",k[i]);
/ e# Q# R h* @& ~2 v printf("%d\n",k[n]);
# N( Z. w" ~) T# I p6 v }; o6 c: P* W6 _8 T. x
}6 p( d( {+ i7 j) F0 Y! z
}2 O5 w& n+ L) H5 h, K4 D# y: n1 B
4 p" d P. {+ s9 n: M! T+ S- L
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
( a0 N& @. `, m; m- ^请在空白处完善程序。*/
8 V6 _. t) T% ?. o8 X0 m5 u# Amain()' ?5 y8 w$ h/ W" `; U8 V% C9 {
{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/- m: y6 s5 P+ p3 L& j
printf("input 16 numbers: ");
* b' _" }8 _: r Y, Y/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/" [8 C/ p- K, S9 E9 ^
for(i=0;i<4;i++)/ ?" Q, @6 P9 ~" A ?' K
for(j=0;j<4;j++). L; D: O/ ]' N* }( k" F9 L
{ scanf("%d",&a[i][j]);
- u3 {8 b: B7 i% M, W; _ b[3-j][i]=a[i][j];% |& }9 h1 W0 u2 h
}
$ q3 x! a5 a$ X$ Y printf("array b:\n");
! g, E4 O3 c- N' ?5 a0 f+ ?8 M for(i=0;i<4;i++)
+ v- z: J' c+ r, p$ p! T { for(j=0;j<4;j++)2 W0 d: U5 _+ o: d5 N" Y4 V
printf("%6d",b[i][j]);5 n# R Z; G- I$ Y- q8 M& E
printf("\n");' S# w/ R, M2 Z" f' h
}. _- ?7 ~$ j+ k9 g+ O
}9 p4 I" A5 K ?% {" U1 a
/ H( f8 w* e' ]. x3 I6、/*编程打印直角杨辉三角形*/! i; Q$ t, t" t. c7 L, W
main()" M P! z. E$ \. Q2 d. f1 I; r( n
{int i,j,a[6][6];9 F+ b9 I- G4 q! ?; c0 U# ^
for(i=0;i<=5;i++)
5 G/ K4 L0 Q' C2 w6 o2 a, b{a[i][i]=1;a[i][0]=1;}
' }- ?5 H( l v1 z' zfor(i=2;i<=5;i++)
' Y7 r( c. h4 W, W' g for(j=1;j<=i-1;j++)
# ?# Y- J4 n9 Z2 C6 C9 d a[i][j]=a[i-1][j]+a[i-1][j-1];9 {" _1 T9 P/ _; k4 Z% A& V6 e
for(i=0;i<=5;i++)
! y" [% ~ y$ n {for(j=0;j<=i;j++)* r ]0 D* r/ _& m. h I
printf("%4d",a[i][j]);
" I$ c2 C2 G: b- ^6 v% x# L3 [ printf("\n");}- I) p( v) w$ ]2 ^) E
}" a# x$ |5 U/ g' K' c3 v* q
1 r9 Y! l0 ?' J* P7、/*通过键盘输入3名学生4门课程的成绩,1 c" E4 Y% t& s$ y9 M* b4 C
分别求每个学生的平均成绩和每门课程的平均成绩。
# L; A$ I8 \: a' V: v! L. _要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
% `4 z' u3 A' m& L5 Y其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
, N, a: `& J; R6 F; q' F) I#include <stdio.h>2 a& S& Z1 s7 D
#include <stdlib.h>' t5 x j) O- W9 t4 n
main(): _7 P! ]+ J3 {2 C
{ float a[4][5],sum1,sum2;
/ n( P4 s7 Z2 C H- F' vint i,j;9 |- C# ]3 F) H
for(i=0;i<3;i++)5 Y8 z2 ?0 Z7 [/ x5 H! w- X: l
for(j=0;j<4;j++)$ s2 p) k Q2 H. ^
scanf("%f",&a[i][j]);
, |2 }9 u) x) b% z6 G, }: Q( Q' Ffor(i=0;i<3;i++)& M% m5 M0 J' ?3 c d
{ sum1=0;2 }3 z4 p7 C. @8 H3 q- N- C* W( B
for(j=0;j<4;j++). b) R/ |0 _, K0 M7 i% `4 Y
sum1+=a[i][j];" i! Q, V$ l% G s+ r3 m7 ^
a[i][4]=sum1/4;
. l8 `8 v6 |, K) L, @) R, Z}7 Y' w. o% X% q g: x
for(j=0;j<5;j++)
: a7 J9 |. ?7 c) f. {2 r{ sum2=0;
+ r( A* W1 P: } for(i=0;i<3;i++)
8 R# Z( N* m3 g( J' v sum2+=a[i][j];
% j" V* n+ U& U3 |& W) I a[3][j]=sum2/3;
9 }1 f- w, H' f0 h }# `6 _/ O* W0 Q& m
for(i=0;i<4;i++)
% D0 b; r5 B' x { for(j=0;j<5;j++)4 G9 ?* P9 e; R& M5 s4 w
printf("%6.2f",a[i][j]);- ^/ L1 ]& ^1 x0 O5 s
printf("\n");1 M9 j9 o$ ^: R" k* M( u0 ~5 d8 Z
}
0 d( [" H ~0 k/ d}& k" h. ]8 ^/ Q% G! x# \
8 n: g! ?) E! f7 Y$ d& D8、/*完善程序,实现将输入的字符串反序输出,
" c. D& y* z2 y* E. N* s如输入windows 输出swodniw。*/' D! N9 O$ [/ k( ?! p
#include <string.h>, F9 K3 k- O" |( v5 P$ [8 D
main()9 {0 h/ m6 m& I0 T1 v
{ char c[200],c1;% c, c* g3 E: \& Z: @: ?
int i,j,k;
/ D' p- W7 K( t' @2 a printf("Enter a string: ");4 N2 F, q9 q" {! u" y' b# M: [
scanf("%s",c);2 s5 v; ]& b7 k
k=strlen(c);1 L+ c2 |) f5 T& o9 S
for (i=0,j=k-1;i<k/2;i++,j--)
0 T/ Y/ f+ ]; F/ P% | { c1=c[i];c[i]=c[j];c[j]=c1; }
1 u3 q2 M. m) } printf("%s\n",c); ( D( R" X# x4 q0 h( a8 I
}' R1 Y1 C: _& M) t
指针法:* R8 {+ d& \9 q e0 r
void invert(char *s)/ i2 t/ ^! H1 [3 L2 q" ~: K. x
{int i,j,k;- l+ c4 E" ~8 X& z. I" h
char t;
; j5 l( @- ^+ n, {k=strlen(s);
+ E: N3 Z4 [' q Mfor(i=0,j=k-1;i<k/2;i++,j--)
, M. e$ k6 g8 C i" \7 \{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
/ `2 _0 `6 I) D8 [$ x}$ j$ t5 p+ d3 O \
main()3 d c) U0 f* F4 F7 s
{ FILE *fp;
1 q% K7 U$ m. T( e8 R! b" `$ } char str[200],*p,i,j;
U5 K4 I5 y( F: q" ^ if((fp=fopen("p9_2.out","w"))==NULL) , C& G# D8 y- U4 a/ x! {
{ printf("cannot open the file\n");
8 {- E# v3 H: z* a- l1 a exit(0);
/ `- q1 G. y D1 l. k; b }2 X" [& ]% G# y/ l$ v9 R4 t* l
printf("input str:\n");7 A( a( m8 x* z; N1 d
gets(str);, b N& Y/ K, y6 x# s# g
printf(“\n%s”,str);
; F* I: [- d( ?- xfprintf(fp,“%s”,str);- b0 m8 c+ H" j( H L) p
invert(str);
9 L6 t9 K7 A! z6 v printf(“\n%s”,str);8 K8 }2 h# l, d: l! y
fprintf(fp,“\n%s”,str);
: z% J& \1 {" k! D6 A& {8 lfclose(fp);( |8 n, B' o6 D" ?/ w5 W
}
( H2 |! g- F; A; V
0 n) m# m- e5 R' T. h, n6 D9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/3 L) c& }' \, V* h
#include <stdio.h>
; u1 o4 |0 F' N" f% ?! g# zmain()+ n. i4 S% W( w4 B$ X
{ char s[80],c;
! X+ a7 R7 O& t, K int j,k;
2 q& Z5 _* O( q- K) R( h( I# w1 p& h printf("\nEnter a string: ");+ L& {1 s5 b; h
gets(s);9 R% |+ ^& [9 c! P* I
printf("\nEnter a character: ");
6 v3 p8 x! x0 c3 w c=getchar( );6 c$ X8 t/ I3 G/ U- X$ v
for(j=k=0;s[j]!= '\0';j++), y. z+ E0 O! k- C8 T) k7 B
if(s[j]!=c)4 \/ ~$ z- k1 o( S# f3 U
s[k++]=s[j];7 M3 M+ t. U8 w, D% T9 n
s[k]= '\0';
: @3 n: u; C; Q# } printf("\n%s",s);8 f9 F6 O" D0 f( J
}% a/ j( d+ F1 n, c3 Q( t0 ?' ]
" M8 G( G1 ^# D% k9 X' F/ v, t5 ^ C
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
% a6 E. p. z: i# I排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/, { _* p/ f0 }3 V. F0 S
#include<stdio.h>' k2 }9 S2 N) q2 ?! f; ^' N# k
void sort(int *x,int n)
+ s6 b* M* A) O{
; F( b, k5 Z* c6 `/ _+ hint i,j,k,t;+ \' Q, v* e$ X2 _1 A: ~
for(i=0;i<n-1;i++)
( T; d2 z* L. w( W" W7 a{6 M2 M! z' X+ D9 P4 h2 H' ]
k=i;
; N% x" X+ D( k4 F. S1 Xfor(j=i+1;j<n;j++), V# o- F/ b0 ~
if(x[j]>x[k]) k=j;4 C! V# D* J ]
if(k!=i)8 k- |, _9 ^. `% @* }
{ Q s: N9 {0 a. d- U; a1 ]+ V
t=x[i];) r' I+ v$ F. s! [+ |# m: O2 k
x[i]=x[k];
4 D- h1 V& s0 l w# Z$ N x[k]=t;. h1 a, S- q: U+ d
}
9 m7 r2 {; j) c* ~" F( q3 V}
+ x$ T1 j8 c' q8 [}
7 a% }; v- g1 M8 E0 Evoid main()0 s& w, c; R& W) }
{FILE *fp;" Z- w% v, c' v
int *p,i,a[10];
. A/ p" o; w2 `- w. D" v% R& y fp=fopen("p9_1.out","w");
" d6 a4 U- |( L# N; [ [ p=a;
9 [* ?: e0 m1 s0 L- V+ {* Lprintf("Input 10 numbers:");- r7 }) m$ [5 S
for(i=0;i<10;i++)
. F2 H6 @( t v* O- A6 gscanf("%d",p++);/ A( i: B8 M. F4 t" a& t2 X5 J
p=a;1 v2 J6 O: ^& h( w! k" E
sort(p,10);9 J5 C0 F' O; ^0 b$ u/ r1 C& D
for(;p<a+10;p++)/ |: }. n( u: j. i5 i# O" | V
{ printf("%d ",*p);; @" ~# f+ V( g3 A) v4 w
fprintf(fp,"%d ",*p); }
+ v2 ~7 ]% E- c" X. Q5 h* ^; z- N( | system("pause");
+ N. W- y; x; o- v fclose(fp);& D+ b0 X1 {) R5 A4 J1 o
}
& U4 R9 r4 S/ A7 G: G1 T `
( p8 E# ], J1 k' ]) P, U11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/6 D$ [: R0 B( _& ^6 A6 m7 U& ^* a
main()
. Q+ b! P: b5 y3 s* Q8 D3 L { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/* d8 ^! C7 v% u5 y3 O
int x , i, j=6; /*j为元素个数*/+ s. }! G+ V- r+ @' p
printf("Enter a number: ");* H+ ?' G& u) j8 \- U& b- T& h$ c
scanf("%d",&x);
% N3 G' [8 v3 o0 H a[0]=x;
( E( Q! r1 `! ^; n( H, Z i=j; /*从最后一个单元开始*/+ H$ i8 n3 q2 l% g3 d& [# K4 [& m
while(a[i]>x) x4 y) y& A' J I( I- u2 e+ X% B
{ a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/- ?" h9 ]8 Z# K( X# n8 F
a[++i]=x;# L0 Y# e; C p" x! P- D7 |' a5 j1 }
j++; /*插入x后元素总个数增加*/ u' S; w/ U/ p% o3 C
for(i=1;i<=j;i++) printf("%8d",a[i]);
0 U+ P$ p- a" n9 b% f( n printf("\n");
( M/ @; [5 ^! F" C8 i+ Q* y; w}
! k3 |0 o. V) d6 t- e% W, T
1 X7 ~" K- h3 I# S& S
: S- M ?& p# V6 m/ ], }12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
5 P5 K" C/ H7 H9 [& ^: z+ r' \#include<stdio.h>
) A( x3 Z1 `1 Y( T4 h# S7 h' wreplace(char *s,char c1,char c2)
. ?# a Z7 v) s4 {/ E( z{ while(*s!='\0')
! s5 a2 Y; c) k- O. f { if (*s==c1)! ?/ w$ C# w3 O& [6 c* {
*s=c2;' M1 X& A- Y% f1 r3 \
s++;
* K) W7 i) O- L* \0 h }0 m" R& ]. B6 Y; @; S( k0 S- ^- c
}- P6 I# q. H' O0 t* w( a- i
main()4 T* d2 k( W& ^5 S" i8 ]- O
{ FILE *fp;" [6 F& P$ @9 X
char str[100],a,b;
# |( Y$ e- R1 X" ]( x0 _5 W if((fp=fopen("p10_2.out","w"))==NULL)
9 \4 |4 d: A8 R2 ?* X8 S* A { printf("cannot open the file\n");
5 g( _' D; Y/ N9 B4 Y: E exit(0); }
6 u% x* V! i0 u/ ^& o printf("Enter a string:\n");
( t: J8 i1 A$ s4 B! L; R2 d) ?/ [, K gets(str);
3 g( Y9 i4 q. `$ R$ G: g printf("Enter a&&b:\n");
( {0 ?6 C9 z& d, ?( \6 _ scanf("%c,%c",&a,&b);
) {" o7 F7 L, k3 B0 fprintf("%s\n",str);
/ Y& `9 ?; D3 ~) p! d! n4 Zfprintf(fp,"%s\n",str);3 N" b6 c* m0 A- |, B; u6 A
replace(str,a,b);) Y+ t$ y2 D Z
printf("The new string is----%s\n",str);
9 |+ Y* M/ k4 Q4 g+ @fprintf(fp,"The new string is----%s\n",str);: m( t$ c" `/ w' R
fclose(fp);
% I) Y2 z8 I5 `1 l+ [4 Q* @. ?: W}
& p c+ f- N4 k2 |* F7 ?
) O/ i' d/ e+ x* ]* @5 ~13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置; H5 {; K, [% U$ h1 U
,不存在则返回-1。*// n9 N- l5 w) N+ {3 j1 h* w6 {
main()7 F9 _0 Z" K, {1 f" i
{char s1[6]="thisis";char s2[5]="is";
& e& z' _/ p' X% a' K1 P; [printf("%d\n",search(s1,s2));
/ D8 n, O, T" o6 L asystem("pause");: h/ Y9 h; v: f9 T# `
}& y0 U" g& s/ I; N/ m( v! W2 }; d
int search(char s1[],char s2[])4 Z" D# c6 I7 @# w. W
{int i=0,j,len=strlen(s2);4 z7 R0 j% ]. y* `
while(s1[i]){
( i; \& [( H6 S1 h% Jfor(j=0;j<len;j++)! E% S( z6 m B- f. L% E
if(s1[i+j]!=s2[j]) break;
0 [5 v, |- G( s. ?2 Iif(j>=len)return i;, L9 O$ Y$ ]# K7 {& h' ^9 I" C
else i++; B& G+ _0 p- |
}6 V2 l& U! `$ ^ ~+ Z$ v
return -1;
( J# P8 B2 W, q: Q; x2 G. Y}
+ l" f) a; M9 v! g5 G7 W/ o0 f* F, ~+ x1 q- ^1 S7 J8 z; D
14、/*用指针变量输出结构体数组元素。*/
) o5 z; L- U. b3 u5 S% { tstruct student$ n4 n" C9 A' r
{- s) z$ ?& j. l* K' F
int num;
' u8 Q m3 h5 K1 g& fchar *name;
" |7 E7 l c! b# mchar sex;2 f) H" e3 C6 Q. M3 B
int age;, X/ }0 q0 A$ K* f
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};$ ]2 o1 a8 c# ^5 W
main()
4 s/ {( }) @5 y+ i8 N% @4 f' M{int i;
& ?- E5 w- z; Y5 p/ Gstruct student *ps;* E3 b. [; i. y1 K
printf("Num \tName\t\t\tSex\tAge\t\n"); 5 e; C& g/ F# t0 G
/*用指针变量输出结构体数组元素。*/
) u7 N% Z. N4 D" r3 q- n& g+ Nfor(ps=stu;ps<stu+5;ps++)
6 ?" K# t# I) b |1 z. Rprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);/ F. ?- T. z/ T
/*用数组下标法输出结构体数组元素学号和年龄。*/
6 J, _* F9 {- C5 N3 s8 _- sfor(i=0;i<5;i++)8 K/ d# Q9 n% G
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
+ m* h) Y. P- g% J+ d}
7 p% m# D3 Y7 c! Y+ e
' }4 {8 `) S `4 H9 o: d0 m: t% i8 z15、/*建立一个有三个结点的简单链表:*/
1 c) {: L1 J3 b6 L, Y#define NULL 0& Z* E1 _: F& T7 G" h1 t# L" F
struct student/ R+ w/ r4 ~2 g- p4 A
{5 e$ ^0 \1 v- M
int num;
. u0 M3 V: h6 E8 y, N3 G5 ?char *name;, O. k! e( ?8 s+ p
int age ;3 X0 K2 t$ Y5 N$ _5 P2 P: I
struct student *next;4 q& E5 y$ S/ ]- {% p0 u
}; m) A: a# O+ J* ?
void main()
" X- U6 v4 T. e7 Y{
0 j9 y+ d7 x( Kstruct student a,b,c,*head,*p;, L1 ~% n: s9 H, T
a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */7 n, t7 ~( m& {( A) j/ J0 u
b.num=1002; b.name="liuxing"; b.age=19;
5 T5 L) \2 V& ~) b/ u5 qc.num=1003; c.name="huangke"; c.age=18;
* x3 w# H! a% a! {6 Chead=&a; /* 建立链表,a为头结点 */
+ V( ^& }& [5 @9 X Va.next=&b;
; R( H& @2 w+ Ub.next=&c;' y/ P+ N' f* B& v6 |
c.next=NULL;
) A% `: v- D2 Y2 g& @( Up=head; /* 输出链表 */
: h1 g7 _$ n" l6 A |do{$ z5 W* K0 T3 `, d$ j
printf("%5d,%s,%3d\n",p->num,p->name,p->age);' Y; Z. ~- g$ K4 a/ H2 N1 C1 |& D
p=p->next;
9 d& @/ U, i; N7 D% E+ ~}while(p!=NULL);
0 U5 G* R( f9 j, n4 E5 ~. I}
$ W4 v6 ~2 c T! Y' w4 m
+ W) x; G2 ]* h4 X9 Q, Q6 H16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
2 [, M+ t4 p6 b% ^! j( c/ h$ p#include <stdio.h>1 v/ }( [# i! e* N' V
#include <string.h>
5 x6 U7 C8 ^/ N+ P8 W$ Z; w1 L#include<string.h>5 [) W& C: k) L2 e [* `" n# Y
main(). S' _7 b+ \9 U2 P6 ^
{ char s[100];
: ~2 n: s" z) D n# O, o; Zint i,j,n;
. D% U6 w' O( i& tprintf("输入字符串:\n");
5 p0 f( K/ E: b/ N# f6 \' k# A% Hgets(s);
e. A" \& |% a% q0 i- ?4 Cn=strlen(s);
+ {4 g9 B3 @4 ^& d- R9 ~$ q. Nfor(i=0,j=n-1;i<j;i++,j--)2 U% i% b2 c. T4 J1 U+ Y
if(s[i]!=s[j]) break;
( `, N! T% f- o6 Nif(i>=j) printf("是回文串\n");+ Y1 h& u) `+ G. e1 x0 P) F
else printf("不是回文串\n");
6 b/ B% e- y; }}) ]2 F; k" H/ [, [2 E
7 k$ `0 G5 x/ g! D. B& p( W
17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/3 {0 L& a# }1 E9 V W
#include<stdio.h>
6 `. x; n% u. xvoid fun(int a[],int n)
: L8 D, ^ E1 Z; {{int i,j,t;4 {2 x* ?: L8 T' K
for(i=0;i<=n-1;i++)8 E W/ @" W* K1 y9 \! C
for(j=0;j<i;j++)
6 R7 |# x0 a* }4 b$ q* U" \% Q ^1 D if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
7 T5 t& S+ B J; W- b6 l% A}
- j* j6 W2 ~/ P- @9 A. Wmain()4 j, i5 @$ E# I* U: \& _. a7 V* F
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
" C a" @4 k( W Y) \ xFILE *f;
( r( A3 f' p2 c3 Q( L1 Q4 jif((f=fopen("myf2.out","w"))==NULL)
9 E1 n! A* w$ g1 Q printf("open file myf2.out failed!\n");+ y7 S" L( i) ^7 |. }( t2 W) i
fun(a,10);
. B* N$ E3 P/ U5 }. Gfor(i=0;i<10;i++)9 Z6 T8 ?: R. H- ~7 k2 ]; Y
{printf("%4d",a[i]);4 z* J! W$ B ~5 b' Z2 p
fprintf(f,"%4d",a[i]);) e3 u! n4 v, A! f1 d
}2 V7 g* P; x, W3 l& `6 I; n
fclose(f);9 O$ j3 ]: j6 D' p& R% I
}$ d N- a+ p+ z9 C, r T
! X) K; L: k& t, ?$ J7 C, x% J& Q! W+ n18、编写函数countpi,利用公式
2 ]4 J( R- q5 c0 [6 C' P ( b& X! s9 X5 C% A
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
; [2 h) l) u$ Z9 H9 l#include<stdio.h>* N$ N9 k l) G8 ?
double countpi(double eps) /*eps为允许误差*/
" S; }- z0 b; @4 h( r$ e& v{
1 j8 u/ ?6 Q* k' d: U5 m int m=1;
7 G( B+ E: k* I" l5 a1 v/ q double temp=1.0,s=0;
2 ?- K0 s& C% X9 t8 g while(temp>=eps)
, u6 Q0 b! G6 k& I/ U K, o { s+=temp;$ w0 w, v6 X% s# w+ e
temp=temp*m/(2*m+1);% ?" R9 q* k# k+ L
m++;
1 e" G/ u. Q8 o }
1 m" |+ s+ l8 g# [5 [! X return(2*s);" ~ Z" u7 R$ p. M2 c
}. ^4 ^) m2 S8 o8 o) M; P
main()
: K: H s6 q+ g+ C9 w) p{FILE *fp;
4 n2 k2 J' y1 r+ C& P$ E' m8 D) ~ double eps=1e-5,pi;
, V3 n& i( w( `( a" Y; W" L0 C# V if((fp=fopen("p7_3.out","w"))==NULL)2 w/ Y& i3 I3 O1 j( \3 Y
{ printf("cannot open the file\n");2 r1 X3 w) X) S( g$ u. I' H4 n
exit(0); ( Z/ V% W/ S2 e2 f
}
- E8 `0 I) n6 S) V4 z pi= countpi(eps);7 ?$ a$ e1 T; ]4 d
printf("pi=%lf\n",pi);
1 W. x% f% u* w( [0 v+ \+ y$ [fprintf(fp,"pi=%lf\n",pi);
1 `" G- ~/ f2 s8 J9 x/ Qfclose(fp);" H7 D0 \. }* p" j
} |
|