|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" o4 h5 R* \% m$ c1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
6 b" z* n% n& {( Z& K" c, E#include "stdio.h"% V/ K) `! l9 V2 E$ @. |) J9 H
main()
$ w+ ^5 S P+ s S1 N0 `. X8 B2 N: C{int i,j,result;
( m- I5 P, C5 F) z# g" ]for (i=1;i<10;i++)
1 y2 t* N8 X: o1 A; }- r& R { for(j=1;j<10;j++)
3 T* m& {0 n7 v; ?5 A8 l {" |4 W/ L* j4 Q M( K# A4 [& V
result=i*j; \2 \! V w7 z
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
3 b8 a* ~# j8 y8 ` }* D/ n- @5 P. f: i6 J: [) k$ m6 {: c
printf("\n");/*每一行后换行*/4 D/ S6 K# A6 `, S
}1 v3 @# G) m$ w" l) M) X; b
}7 X. r0 j; N6 ~/ s- j
W# g2 _" i% n/ ]5 S; ?
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?3 D$ B/ Z8 e, I n
兔子的规律为数列1,1,2,3,5,8,13,21....*/
, P, ^% E" Y( u& {& i* G* Rmain()7 Z# i: J) z) t- p0 G$ {
{
! h9 Y$ J/ @6 A1 klong f1,f2;
4 N: O8 i. x; u" [+ ]! Aint i;
4 B- ]8 w( h/ l$ Wf1=f2=1;8 g9 S& A/ l& m( q; d' `6 z/ \2 Q
for(i=1;i<=20;i++)
/ c: y. B) I8 I{ printf("%12ld %12ld",f1,f2);! s4 N" E1 P8 ?7 l" v* J: k
if(i%2==0) printf("\n");/*控制输出,每行四个*/
! }( }5 ]& o$ ~; i/ ]: M, L8 B f1=f1+f2; /*前两个月加起来赋值给第三个月*/
9 ?; @' V/ ]& I f2=f1+f2; /*前两个月加起来赋值给第三个月*/+ o' ]& _, U2 z9 N) D5 c
}
8 ?" ?# X# V3 ^$ p$ P}
' s5 x8 R" R6 [+ Z; N: }; |
5 r% i0 y5 _ d4 F3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。0 {6 ^( M$ s$ D A$ e8 S# C9 P
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,+ h) }. t: s- j0 H2 S. c* T* N
则表明此数不是素数,反之是素数。*/) Z9 y; C: x4 B) J
#include "math.h"
3 }/ z& m' C1 F0 I2 zmain()
6 Q4 @- X, a. k" A{
9 T$ d# i( ^4 ~1 c' Qint m,i,k,h=0,leap=1;
/ e5 M3 a2 N/ jprintf("\n");5 E% b3 I7 L- f2 p+ D5 j8 V+ e
for(m=101;m<=200;m++)
. o+ s* o+ j$ S! z/ @' _ { k=sqrt(m+1);8 Z3 I! M( ]% i8 F: A
for(i=2;i<=k;i++)
) U9 g7 y: m$ o* y( p1 e7 @ if(m%i==0)
0 q, |0 U9 d& T p; q {leap=0;break;}
% C; b H5 g) X$ C# O if(leap) /*内循环结束后,leap依然为1,则m是素数*/8 F5 Q u/ _! B0 |% I
{printf("%-4d",m);h++;* h* b$ r! [/ l8 d" z+ [6 |9 \
if(h%10==0)
: R! _8 G8 E0 T; J. n! b5 D6 ]% H printf("\n");' k7 U- o/ Q7 p, f; G) Z
}
7 P" {% z3 K* ] y/ v, |' x leap=1;# Y" S8 v) g+ _
}; `5 P7 p) g9 |
printf("\nThe total is %d",h);
9 x( l8 Y, K. V7 `}
1 v5 K1 E3 a& ~' [/ v0 D; h6 j' H( @3 |# j5 k: d
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
8 Z' l. X- A6 D' W. j8 V: ~6 M 找出1000以内的所有完数。*/3 {7 w2 z8 [+ |" a/ q: @( h# F) z
main()
7 e: R4 B% C7 y. o& a5 M$ |{
8 R# S' z+ x4 W' m4 j4 L& t" Xstatic int k[10];) U- a1 |" Q; Z- m
int i,j,n,s;9 }, ~- |0 Y, ~. F) T1 S. L
for(j=2;j<1000;j++)
4 `4 P7 O' s0 u) J) ^6 z {
/ }* Y$ k2 D# P, ^ U3 s n=-1;4 s1 `( @1 k$ P+ d8 W& V
s=j;
. f5 Q7 V+ O" j4 A1 O" X) g ] for(i=1;i<j;i++)
1 v8 c. `% \5 g, ]; D, G2 s" ` {if((j%i)==0)( K+ P } k: j8 p; m0 U
{ n++;
- {! i2 R' N8 I3 K; O1 k s=s-i;
$ o/ [" ~: v" ?% o# I' O k[n]=i;3 u/ F3 t* n7 c8 l9 P
}7 w+ ?% o7 @6 h3 I) _% S
}9 C/ H9 L1 W3 ^
if(s==0)
4 _% M. m/ O5 [( n {printf("%d is a wanshu: ",j);0 a* J( ^. W/ C: r6 Y( C
for(i=0;i<n;i++)
. j U% m4 u5 u, q' t3 l printf("%d,",k[i]);0 o4 c# o' a4 [) Q4 C
printf("%d\n",k[n]);
8 V C$ |6 m) g- R, i3 V0 Q$ Z }# a7 O2 g+ |4 X. `8 m0 p, }
}
1 {6 p: J8 u! Y1 ?, p}
$ |1 p) c: J Q/ i& `3 I7 P1 B$ W8 M; A+ N- z. q! R# t
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,/ k, j1 K8 p" ]# ~4 o( a
请在空白处完善程序。*/
1 e& j' N; ~$ J' v; zmain()
9 v' g" g9 a+ E. t{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/3 R: A) F' r3 f5 U T
printf("input 16 numbers: ");
# N1 [8 |* h+ b- q6 `) j3 ]1 W" b/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
1 o; O# v% L# O3 m) T- r for(i=0;i<4;i++)
5 [! F' w/ A: Z: f4 T: G for(j=0;j<4;j++). M L1 o& L2 r0 z; U! L
{ scanf("%d",&a[i][j]);
5 K# v8 u* k5 ^ f b[3-j][i]=a[i][j];5 u1 s( X$ T3 n6 `% T
}
6 p! l- J# r! [( W1 ^" b }" X printf("array b:\n");
7 f$ y9 W `" q( S+ N: ~ for(i=0;i<4;i++)9 E, X6 l$ n) x3 d6 O
{ for(j=0;j<4;j++)
: J1 Z0 B& a U, `9 L9 U1 o+ k7 N0 D printf("%6d",b[i][j]);
! m3 v8 ^# ^2 a3 n printf("\n");
1 i9 M; o- ~" C0 {* p6 o3 ~! _ }: [+ N4 O, h/ Y2 x. L- f& H
}
* P; Y5 }2 r3 J4 `/ m1 A% D& U- D5 G5 c8 b$ v3 o# Y
6、/*编程打印直角杨辉三角形*/+ H: i- h7 M, {8 x9 |
main()% z- N* Q3 N+ l# t
{int i,j,a[6][6];- J8 F! }7 E& }4 ?- d g
for(i=0;i<=5;i++)9 h) D* \7 A( k+ b" y3 R
{a[i][i]=1;a[i][0]=1;}
- t% U; x) O3 r3 x0 U G5 kfor(i=2;i<=5;i++)6 W: C5 K Q; Z$ K
for(j=1;j<=i-1;j++)8 e$ p+ M' O1 ?
a[i][j]=a[i-1][j]+a[i-1][j-1];: k5 ]$ G+ T7 _& U4 h6 w# J
for(i=0;i<=5;i++)" M" k& T# N" d
{for(j=0;j<=i;j++)
" l/ O/ I; m! ^3 {- | printf("%4d",a[i][j]);
* h! z9 r& z" Z3 a! ?" \6 f printf("\n");}0 E' j2 P( ~/ s% W/ p4 }
}# a" A# B1 ]( e
: ^9 L# e" l0 ]
7、/*通过键盘输入3名学生4门课程的成绩,6 Z- w! A; N0 A8 ^
分别求每个学生的平均成绩和每门课程的平均成绩。5 G( P' }" L' o8 M; K7 J' l
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车 j) x/ x: \, J0 c
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/% O) @% E; h- S1 y& _* D
#include <stdio.h>2 `1 ^8 ?& m" S. M9 B
#include <stdlib.h>" B2 u. b" |% I' |; Z
main() `3 [+ J7 P( k' `1 S2 b! R0 {
{ float a[4][5],sum1,sum2;
5 Q3 n0 C" n+ k% o) ~int i,j;
' g8 f: F f5 H1 a6 Afor(i=0;i<3;i++)* j; x" W3 A4 c9 F# ^. _' w
for(j=0;j<4;j++)
( U7 P) E {) R; f7 }% Y6 ^ scanf("%f",&a[i][j]);
$ G! e/ Q. g& f& u( A3 X* {for(i=0;i<3;i++)
7 G' X) V6 \' B& T{ sum1=0;
4 K2 k% E! r Z, p' S" k+ ? for(j=0;j<4;j++); x, H8 D- Y( S8 e
sum1+=a[i][j];
* h' t# d/ Z" x5 Y3 g; Q# m$ o a[i][4]=sum1/4;
& D8 z& }7 P5 n: e; R4 @}. n, y+ M/ {2 g4 }- z" c: I
for(j=0;j<5;j++)# {7 ^' ` g. j# q+ w8 W/ |
{ sum2=0;
1 B. b* S* T+ O; p6 u for(i=0;i<3;i++)
# Z% H# j0 z M2 @2 c7 R sum2+=a[i][j];4 L5 ^; _% q O) q) E
a[3][j]=sum2/3;
/ Y" x% `6 I/ D' y5 { }
3 h0 z# O: g0 g for(i=0;i<4;i++)7 C9 w1 X+ o1 ?) i$ T$ [" G
{ for(j=0;j<5;j++)5 ?8 z7 |2 x+ c E+ i' V
printf("%6.2f",a[i][j]);. m8 |' g3 e2 r' x" b" s3 J
printf("\n");
% Z" p6 }5 _8 R- e2 i }
) u& X6 K9 j& f: l}9 ]# e7 D- W% O4 \
. v& i4 ] A8 @% p/ O" a. S8、/*完善程序,实现将输入的字符串反序输出,
5 x, Q7 B& U2 w/ j如输入windows 输出swodniw。*/' M @# i: g/ R8 s" G+ G
#include <string.h>
) c9 t e; r4 ~% s0 [$ u$ `/ L; t8 Ymain(). v% ^0 j' U: H/ O$ T
{ char c[200],c1;! {5 o3 R/ z/ X3 W
int i,j,k;
- _4 d2 h. v& U1 O" j printf("Enter a string: ");
" v6 K$ }) l X6 V; ^, g scanf("%s",c);
" Y; p" F- J4 X$ }: V k=strlen(c);! Y6 K: l. |* m5 x* h! E$ y
for (i=0,j=k-1;i<k/2;i++,j--)# U% |* z6 D* M# `
{ c1=c[i];c[i]=c[j];c[j]=c1; }9 }9 O9 W9 n+ h7 f& f) _+ s* I
printf("%s\n",c);
2 G+ l7 e1 s) W) A3 q% O}
% j; ]1 U$ S# u, @$ t指针法:' m' z9 `6 M) P* T a, B* w7 [, t) D
void invert(char *s)- ?: g1 n8 o" r: G+ Q7 p- Z. }* n+ e
{int i,j,k;
U* y+ r7 x d1 ]6 uchar t;
! s1 W0 G- \( r0 w, D9 g2 ek=strlen(s);
G7 t/ b0 F7 h: P6 z+ _) ?for(i=0,j=k-1;i<k/2;i++,j--)9 I! c, ?" h) [: V2 C
{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }5 ]% V% r/ `, I* H/ F# k
}
4 j+ P/ ]0 U& N" Rmain()
: P+ d( r; ^" t. D' z$ k9 S{ FILE *fp;# I0 V. x- ]7 x! l' k v S
char str[200],*p,i,j;
1 ~( R1 g D; ], x if((fp=fopen("p9_2.out","w"))==NULL)
) \0 D' z/ j+ v" U0 ^5 } { printf("cannot open the file\n");5 @4 Y0 L* m i- D7 f2 E
exit(0);
1 }/ }; ]9 W1 b2 |7 |2 C }' p% r! d, r% u) E# v
printf("input str:\n");$ V+ o w/ U( \# W, \" z
gets(str);2 b* X" M* ^! ]" H
printf(“\n%s”,str);' J, Y1 g( K$ U* V4 G9 H
fprintf(fp,“%s”,str);
- U' f- b6 f) q+ {, Tinvert(str);; [ D* Z4 T$ T: T X
printf(“\n%s”,str);
C. B) [% r: Zfprintf(fp,“\n%s”,str);
) S$ q6 R* V* b5 l6 tfclose(fp);1 K5 c3 f9 G# b3 x) i
}
* P& y+ c: o% j$ x c2 Y* F' c8 L3 I6 V9 J9 V, L* W
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
' o3 @0 [8 d/ V0 K) C" e @#include <stdio.h>5 F7 Q; |% t0 ]7 I5 B
main()
! I Z5 a1 A+ Q, Z8 v! _2 y{ char s[80],c;1 C3 G! ]: \. d5 b7 N; J. x8 o
int j,k;
6 u! L$ |" `) \ N' L+ m2 ~ printf("\nEnter a string: ");: b J1 @5 `6 Z9 c4 A
gets(s);
0 K$ L6 h+ R% `( P* G1 v printf("\nEnter a character: ");
/ N& G* T* E: {6 p% l c=getchar( );
% {* l, ` `6 Z$ O( P for(j=k=0;s[j]!= '\0';j++)
' {7 @ _* _( N3 Z: V if(s[j]!=c)
9 j2 L+ |, Y4 e s[k++]=s[j];
" U: H7 k% y+ I& J' I, W s[k]= '\0';' b8 \ L- {5 Z% w8 H" C. I
printf("\n%s",s);3 |: G7 S# v- e3 D2 y+ @
}
+ J' Y# [/ a9 C4 M) U# x4 L4 C& j/ z6 T* i" A( W0 }
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小7 ~/ \1 [& Q5 K/ E5 m7 ]/ v
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/" V+ D8 S, o9 |8 z
#include<stdio.h>+ n) c: Z2 T& R
void sort(int *x,int n)
- K6 K2 a, Y( ?* N9 u4 X{
* x! ~8 G5 ^& p! wint i,j,k,t;
( M; @ T7 C* `/ y" j/ z4 W5 Dfor(i=0;i<n-1;i++)
3 o7 ?( v$ }. D5 X3 Q* z{
# n1 B, z) d8 q" x7 j" Tk=i;) r! y8 H/ Q |4 {; G: P* ?! [
for(j=i+1;j<n;j++)
/ l Z0 @' E+ s0 ^( _ if(x[j]>x[k]) k=j;
2 ]( }( i3 t, ~$ h! k if(k!=i)
+ I* A+ ?/ o+ y: l( h8 j: G {
: f6 W r. `. \$ T+ ] B! d; ? t=x[i];
/ n. b0 X* @! [ x[i]=x[k];
* \" I$ P) Q/ Q# F x[k]=t;
; _. Y6 E4 R! t1 E0 h }
$ D3 f; X% H; v! S0 W/ H}. w% F& Y6 ~- u! C# c
}1 |3 |5 Z% @4 V: c
void main(); _0 {5 e7 Y' y- q
{FILE *fp;7 ]- d+ r. }5 X- H. n' w/ S5 b' c
int *p,i,a[10];
3 [; R# y( T. J' `5 z1 G fp=fopen("p9_1.out","w");
. e8 I5 K0 X o+ ^6 D p=a;: X% S. \6 L" M$ U
printf("Input 10 numbers:");' q$ V/ C; c7 G: `' f/ v
for(i=0;i<10;i++)3 G. I& [) ^* h. F7 e) ~2 ~- }/ e
scanf("%d",p++);9 D' H# L+ Y# m! M. b
p=a;/ J* z7 H! ^$ X
sort(p,10);
# n. W# b; b8 U# g; kfor(;p<a+10;p++)
8 V; n0 o4 n: t/ H+ y{ printf("%d ",*p);" O9 i+ Z* F' T( S% _' Y( y! s5 M
fprintf(fp,"%d ",*p); }
( q. E$ c5 ^0 X" [/ F- [% Q system("pause");
6 h: ^8 X9 D, G1 ?! h fclose(fp);: i0 n. U; {; N3 H
}
) _. _ Y' _) f" K
$ `+ |" t2 p& z1 Q11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
! x% w- ~, [3 c7 R2 y# z9 Q; z main()
5 H3 i8 E! w3 @7 Q- v% i { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/# r; v7 W7 f, c: e7 j5 k( {7 F
int x , i, j=6; /*j为元素个数*/* D, _* D$ G) d1 h/ K/ e
printf("Enter a number: ");
6 Q- @3 P/ `9 a& J2 A3 o; Y0 d scanf("%d",&x);
/ Y6 v3 ]5 h7 c" w. J5 P a[0]=x;6 s9 b5 I9 r1 R# m) B
i=j; /*从最后一个单元开始*/
# k! v( ~. u) u% v5 | while(a[i]>x)
6 A# ~5 ]# t" h" M1 A' [1 U7 M6 ^ { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/: ^/ P, b. t4 `/ P
a[++i]=x;( L- _: f: i" V. ?
j++; /*插入x后元素总个数增加*/& y6 T- `; k8 m% P" Z0 V2 D1 @
for(i=1;i<=j;i++) printf("%8d",a[i]);; h2 t% ?8 _! ~$ K+ R3 Y6 j3 f. U
printf("\n");
1 r. `. L; Y3 G V# z}
2 c4 \9 S& y! f& T& D, m$ T5 R! Y1 X6 e8 {: p2 o1 _
- h% E5 d8 ^/ G, d* Y12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/$ K, v" d/ t8 f0 n0 @; L2 u
#include<stdio.h>% }, m! F! H. w% Q" ]7 z% e3 N
replace(char *s,char c1,char c2)5 [, a) X7 B* f5 K, M1 {3 c7 R1 T, V' G3 G
{ while(*s!='\0'). i* U" I! O9 [; S9 h
{ if (*s==c1)
, l$ `1 i& {0 C *s=c2;" X. O; T3 F# a1 m6 y+ U6 f' u! H
s++;9 _4 X7 V$ D6 Z4 K8 x
}
( y! i C8 z/ P7 c. M) Z# a}. S7 R$ c% A- i$ f7 ?
main()1 z3 a8 T0 D! [0 _9 x7 F! l
{ FILE *fp;
4 m( L7 v# m2 J* @char str[100],a,b;
: W0 R3 T! k% o. {# E if((fp=fopen("p10_2.out","w"))==NULL)' n. N3 J+ x2 p, K; y) w; x O
{ printf("cannot open the file\n");, G7 y- O! q7 q2 d% l
exit(0); }
% k" G- _" B8 r/ ] printf("Enter a string:\n");& L8 F! G2 a7 J! [' Q5 r, D0 p ]
gets(str);
( i3 h& H# w1 O3 Q8 ]0 j H printf("Enter a&&b:\n");
! } I' }+ j% H" a1 ^6 U3 D1 \: P scanf("%c,%c",&a,&b);# O, d" A c0 L; W
printf("%s\n",str);3 k- v1 W, A! D9 v
fprintf(fp,"%s\n",str);
7 B( N6 |1 P: s4 a9 u5 {replace(str,a,b);) e/ ^/ n8 P k$ B
printf("The new string is----%s\n",str);+ y$ p% c+ o; W( y
fprintf(fp,"The new string is----%s\n",str);
( [& o/ c+ A6 q0 H1 I* Bfclose(fp);
4 a& o- v: J- U3 R% \* J" D% J, i: R}
. E6 z! q# M1 [ f5 H' {- |- x/ q6 n3 _+ E7 N) Y
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置6 v4 M. V' x# U% L+ U
,不存在则返回-1。*/$ b( J/ h; l) Z5 K# U8 b, t, f% c
main()
* w' E$ b" i p{char s1[6]="thisis";char s2[5]="is";
) d( {. R- j+ t' c) F8 z% Wprintf("%d\n",search(s1,s2));! ?+ W$ l% p" A
system("pause");9 H( ^9 y, i7 S
}, ~7 L( _9 K2 b3 s1 E& R8 V# S) O
int search(char s1[],char s2[])
0 n9 h2 N1 N* k: r- k# A: A{int i=0,j,len=strlen(s2);0 d8 @9 P8 x% x
while(s1[i]){. S1 Z m2 Q) ^1 u- n! d; I- F7 X! ]
for(j=0;j<len;j++)
& m# |' C/ ~, O: \if(s1[i+j]!=s2[j]) break;+ f8 ^5 P" p& W3 G V
if(j>=len)return i;1 w6 n L# z5 x% g
else i++;% |; P! `! {8 V ^. C& e/ x" q
}
3 _+ L5 ?/ m5 Preturn -1;' K: d1 V1 s( ~ p
}
O1 K* a( s$ `- l! M) V8 e
6 T8 s4 C8 o% P5 v14、/*用指针变量输出结构体数组元素。*/
' U K9 q6 B* s9 R t+ ~struct student0 s9 O$ r- H4 k8 P) d* Y4 {7 u
{) ~# u& b2 i+ G! @$ j3 \4 u
int num;3 s( L6 L8 p4 a0 L1 k% R( W
char *name;5 _! Y c: B; y6 Z
char sex;; F9 g: ?9 o. j6 @
int age;$ F6 z6 ]2 D$ [8 K) \
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};, S# l: E& V) x
main()% h) I$ q& G3 S- |+ P& P( ^+ F
{int i;
; T$ g+ r: ^; e2 X0 |3 R/ }3 Nstruct student *ps;/ c9 v: e) e9 n6 r
printf("Num \tName\t\t\tSex\tAge\t\n"); ( h& K& s/ G7 A$ H
/*用指针变量输出结构体数组元素。*/: t6 l' X& y& d& j
for(ps=stu;ps<stu+5;ps++)
1 J; W0 k* r& T, B$ x# y& }printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);3 F3 B T9 c! X5 {$ Y, m
/*用数组下标法输出结构体数组元素学号和年龄。*/. e9 y$ J1 l! [! M4 U; T
for(i=0;i<5;i++)
) h4 }) Z" {# J, e7 |9 Kprintf("%d\t%d\t\n",stu[i].num,stu[i].age);) U! p% i+ z. b! f3 S, d; F
}
y0 ^1 b1 |3 V. R H9 U# G2 f& ^) [% U* u' F4 y, m% h# }' g( d
15、/*建立一个有三个结点的简单链表:*/
. w, E: m8 c8 |#define NULL 0! [( O2 I; ~) C4 G/ m
struct student& ^! D% ]: T+ O# s. Q+ E
{
# W+ Q( p' H0 `( a; W- Eint num;
7 z/ z! w# f% N5 E7 kchar *name;
0 l# J9 z: A ]- L u% P/ ~$ Vint age ;, {$ Z) E) c8 J* ]* M
struct student *next;
4 G, G2 a1 P: q) Z6 v+ ]) P+ Z};7 m M+ r& V- B1 Y+ N! U- `7 Q! O& t
void main()
# ~) V" {; A' S G. s( ~- I{3 V& L5 s1 e$ d; U* m6 v, w2 z
struct student a,b,c,*head,*p;$ u% l1 a a. n6 Q* q) s
a.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */
6 @6 V4 b8 M# p4 Tb.num=1002; b.name="liuxing"; b.age=19;8 |7 r5 U5 r/ c) F: J& k: @
c.num=1003; c.name="huangke"; c.age=18;
4 J0 U" K5 }5 mhead=&a; /* 建立链表,a为头结点 */
+ \% a$ U. ^6 _0 L: Q# M; S2 da.next=&b;) Q; j0 i/ |7 A' j3 }6 ^
b.next=&c;
n! o$ V) M B2 W1 _4 B/ Jc.next=NULL;% G+ Y/ F0 ^, q& r7 {, b
p=head; /* 输出链表 */4 {) A J% a: c( o2 v
do{
/ _5 ~( I; n: v8 e; a. Hprintf("%5d,%s,%3d\n",p->num,p->name,p->age);1 K* H3 ^; G: a3 I. d9 F. V
p=p->next;
4 Q/ u7 `7 a6 y}while(p!=NULL);, B# l, ?: ^7 U5 z% Z$ K; `
}
. V' j- G7 I& H. I( O2 G# \9 [5 g8 [) p. g) G
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/' Q* v; C) [7 T
#include <stdio.h>& K" e, a+ i8 I
#include <string.h>
8 } U9 G: l1 M#include<string.h>0 g7 ^* O* w0 |& Q, j
main()
8 h7 |! l& s% G- R' }# v{ char s[100];
0 l+ P* I3 O4 u. kint i,j,n;: f4 O6 v# K3 ?" _. C9 w
printf("输入字符串:\n");+ p! Q- K1 ]) A: K; ^1 Z# L5 i$ L
gets(s);5 L: p* d0 L; u+ s! n! m1 C
n=strlen(s);
" x' U: v" U0 p0 e8 K5 k- kfor(i=0,j=n-1;i<j;i++,j--)$ m% c; `9 @" u! a( A: f
if(s[i]!=s[j]) break;% V6 W% `- X* n) v- l O7 T
if(i>=j) printf("是回文串\n");
8 O9 C- h+ m0 ^) yelse printf("不是回文串\n");
- M0 T# x% v$ c/ A2 L7 w}! {6 b/ s) d5 n$ Z( S0 T6 O
. e& H: B( k8 z M4 W$ z5 v- k17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/, Z5 o( r) t' S: @
#include<stdio.h>9 `3 A4 X$ m' u$ H7 _; I+ g& @: I8 E
void fun(int a[],int n); h7 u+ ~$ r- l* I0 X6 _
{int i,j,t;0 x! T- s" f. N& n+ Q. Z; ~
for(i=0;i<=n-1;i++)
4 N2 M4 X( I- n$ sfor(j=0;j<i;j++)
1 ?% n2 h) Y4 ^ q; L% c+ y if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}( D. z" f% A) w
}5 C; u* e& H, N5 ] l! I
main()
i# m' U1 V7 @{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
- q) ~, n5 J$ R$ v8 {% VFILE *f;0 P/ o/ X8 Z* K1 x' X* H
if((f=fopen("myf2.out","w"))==NULL)7 Y; _1 ~+ m5 A# _% ]# a, X
printf("open file myf2.out failed!\n");# x8 Z9 |4 O6 n# p5 A
fun(a,10);2 `: ~7 f" h2 @3 p x1 | R/ k0 u
for(i=0;i<10;i++)$ c7 y8 u# s& `) v8 c
{printf("%4d",a[i]);
* @! K& z3 U |6 [0 _ fprintf(f,"%4d",a[i]);0 v" _! |& h: i
}) n# `2 h6 `! ~1 p5 n
fclose(f);
) {+ {: x2 A% I& C}% ]& x6 B: U, ]& M4 u- k
# g) ~, @ i/ ]! \4 h18、编写函数countpi,利用公式# W- ?0 _; J/ q9 l4 q
$ i! |7 K" e( `7 G 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。* |1 J8 w% a1 y& S" ^
#include<stdio.h>
2 e6 N' f( Q" W6 [% ddouble countpi(double eps) /*eps为允许误差*/
% \! k3 x: I- h{# @! t$ q" T0 M( T3 C
int m=1;
1 f7 J2 W* [2 x. l5 B5 \ double temp=1.0,s=0;; a2 p/ T/ w. L/ Z" k% J" W
while(temp>=eps)) j3 y) r2 @% G9 L3 K- Y9 d# v2 i
{ s+=temp;" ]3 Y* _3 H" i) m+ `& f4 |: s
temp=temp*m/(2*m+1);/ M6 h! m3 a1 E5 r* i3 F* l
m++;
3 A! b {2 Q, k' V }
' Y) } y l: A7 {6 p7 s return(2*s);
' W- H- ?! v5 T2 I4 R}
: \- ]4 s& D7 Y# G$ W) Umain()4 a8 ?% `# d1 N8 w* Y S
{FILE *fp;
# y6 z) d, Z5 @$ p double eps=1e-5,pi;
+ z* @4 w+ l3 v s1 j if((fp=fopen("p7_3.out","w"))==NULL)3 V3 p! }0 R, R
{ printf("cannot open the file\n");6 G3 f9 m2 F: l0 K: W
exit(0);
/ W' v$ |& h( W' i }
* y5 ^! a* I6 c3 ~ pi= countpi(eps);
0 o6 H j: [# F& j printf("pi=%lf\n",pi);
( L- f$ n- `0 bfprintf(fp,"pi=%lf\n",pi);. _% W+ K1 Y% o+ J
fclose(fp);. B& g6 V2 ?. N2 b. \
} |
|