|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
S* H! ?$ ~- ?# i
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
C- I4 h6 Y& r3 C. y* G$ I9 X#include "stdio.h"
" |" h+ o, Q9 o8 F0 Jmain()
+ @+ J1 \, @* }/ X% x{int i,j,result;8 q4 i9 H* { \" Y; R) G8 U
for (i=1;i<10;i++)
# x! E# i$ W) I { for(j=1;j<10;j++)$ c. B {4 {7 Y3 n( ]
{
8 M4 ~' O: s% D# h* X: a result=i*j;
N; P' S4 B7 @4 X- `" ~ printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/. P8 R1 G- ~! u; x( E
}
& T6 \( I+ N4 O1 V: O* h1 ] printf("\n");/*每一行后换行*/
1 ]" g0 x V* H7 d6 I9 d' j }! L7 `5 k" f, q
}' J: M4 n5 ^* d2 x
9 H$ c; C+ Y- }" ~2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 D# a7 X0 f: ^! z" y! e1 z1 Q
兔子的规律为数列1,1,2,3,5,8,13,21....*/ ?3 ~6 P0 `3 _& }3 d/ x4 b, }
main()# F; s+ K5 H# h# F' t! [
{
7 |3 m# s3 L& L! o7 ilong f1,f2;* b L$ X+ Q! i
int i;
. r' k, U0 u! @8 S) o. {4 jf1=f2=1;
; w6 @7 k: R) _. Kfor(i=1;i<=20;i++)+ ?1 h1 q u' q' n
{ printf("%12ld %12ld",f1,f2);
0 z: i5 b( l% {( ^, @ if(i%2==0) printf("\n");/*控制输出,每行四个*// D" \$ g( Z, x! `9 ]$ m
f1=f1+f2; /*前两个月加起来赋值给第三个月*/" n+ |/ E7 ]% N6 I4 a- C( ~$ ?1 G- X
f2=f1+f2; /*前两个月加起来赋值给第三个月*/6 D2 S/ _# Q x
}
& |2 R2 ~" b# l5 ?: I( C% a}
' w5 l9 @- @" f, X) r# r5 c( ?. B8 F9 Z7 f
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
/ u$ A' g8 y& I程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
0 `' H4 Z" K& d6 \2 B& a- E 则表明此数不是素数,反之是素数。*/
! r3 K+ k0 ]( n4 p! Q& f$ d; o#include "math.h"9 T( y/ f+ [2 v0 M% S
main()
: S( _# _+ P8 p9 X" j8 q{
2 @9 m' H) I$ F! H9 Yint m,i,k,h=0,leap=1;' S& F5 n4 C/ S2 G: B
printf("\n");. z0 L! ^5 d# x* k8 F
for(m=101;m<=200;m++)% D8 @& d; j/ [2 \6 L- @1 @
{ k=sqrt(m+1);& o) `' d- D6 B' t; |
for(i=2;i<=k;i++)
/ f; a% w/ @" t$ a4 ]0 @9 F/ | if(m%i==0)+ a' j" G4 C2 B+ K
{leap=0;break;}
6 x( d, i% c$ `% Z0 W if(leap) /*内循环结束后,leap依然为1,则m是素数*/* _" b5 W7 f4 y9 c8 @9 U- s; M" A
{printf("%-4d",m);h++;8 l4 ~) n% J0 G3 m; y( V
if(h%10==0)
+ P2 D3 l5 ~0 W u* P printf("\n");
' I- E8 R- |7 y* ^. w4 L. u2 Z }" v- Z$ @% K% J8 ^
leap=1;6 l! R0 _* I! E9 A# G
}- |+ D" @4 b8 F l! h/ B
printf("\nThe total is %d",h);
1 Q7 g, t. f! `4 l}
$ x7 H, |/ _: a3 J, R. l% j
9 ?- U+ i8 Z) H0 f" j5 Q5 q. \. c4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程) Q* W( s& Y3 z. r4 T4 F
找出1000以内的所有完数。*/( q; ?5 M+ H) n! D2 J( ~
main(): e& c4 `) }7 k" ^
{9 m6 S+ q* L& G, u$ m% f6 A3 k
static int k[10];# _/ U3 z7 l- P5 \( s6 Q
int i,j,n,s;
( ^9 M- u7 G: F% w' |* U. }) Wfor(j=2;j<1000;j++)
3 Y5 n) e7 S% l/ d% |( g {
6 d+ M& ~/ v$ l6 y/ I8 H9 h n=-1;1 ?+ d' J! d6 q3 |" `6 k5 S
s=j;
5 W- p2 o7 ?* ?$ ?& E& C for(i=1;i<j;i++)
3 ]& ~6 o) q& }8 v {if((j%i)==0)! v+ a8 K* T) k+ b/ H% g5 x0 b: V
{ n++;
' q$ V: O$ I: D* l* w; j s=s-i;9 q; B/ U' ^2 [( W, n( B8 o
k[n]=i;1 T7 i3 w' J4 F( W8 a
}
0 {& b* Q$ t y/ M3 z% ` }, K0 B& Z" x3 Z/ N9 w
if(s==0)
' O/ L9 \1 ?5 [ {printf("%d is a wanshu: ",j);
" i: w/ S: P! H5 }4 o9 A3 c for(i=0;i<n;i++)
' ~! f- a5 X9 i, N printf("%d,",k[i]); _9 U& B3 G2 p. i" Q1 p1 K8 h
printf("%d\n",k[n]);
, i: Q: O0 V0 k/ Z9 i }
: \7 z+ z& E: q}
" e) R" N9 T9 J4 f" v; W5 `8 _}
& X$ [0 b3 `: j' k
& D, d4 w6 N K9 k$ Y- y7 _; w5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,# F' t! f4 A7 a# [. x
请在空白处完善程序。*/
6 g/ l* n0 k5 I* nmain()
! X2 Y' J0 q# N( O# x{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
' K6 N( m% E9 Z6 u1 ^1 s printf("input 16 numbers: ");
9 T3 C) ~! B5 l# B" _/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
9 j, V: ?4 y A2 {, C+ `0 x for(i=0;i<4;i++)
5 g4 U- g U+ E: | for(j=0;j<4;j++)
3 b, j3 {4 c8 |: Y { scanf("%d",&a[i][j]);! q# \, C* W" @( Z$ _
b[3-j][i]=a[i][j];+ H7 l3 t$ C8 C) M3 p, p$ s
}
3 g& Y* f9 u/ c3 X printf("array b:\n");6 b/ K$ \. u+ o+ a
for(i=0;i<4;i++)* b9 l+ p5 Z1 @ A; u
{ for(j=0;j<4;j++). [ }9 @8 l5 Z& q. d2 I
printf("%6d",b[i][j]);$ h5 P* w% d _
printf("\n");( D" F# Q1 ^# a. ?; s
}
3 Q5 p% ?2 c7 Y$ P0 U}
# i8 T8 a2 r) t! j. s
+ E5 v; j5 B) R: ^4 Y! {) ?3 ]6、/*编程打印直角杨辉三角形*/
) H B! O! ?8 }, G! gmain()
* k' l. _) t' v* d2 J& `& L{int i,j,a[6][6];6 e. P' r/ p+ b$ C: C9 m4 ^! e
for(i=0;i<=5;i++)
3 Q+ @3 ~" ^; E{a[i][i]=1;a[i][0]=1;}
6 [ S" `" \+ ], h& `! W3 t' f2 Qfor(i=2;i<=5;i++)
4 `) J g( K5 M2 D) x5 t) T for(j=1;j<=i-1;j++)% T$ r$ d8 g( S5 M8 y
a[i][j]=a[i-1][j]+a[i-1][j-1];
6 J$ y' R! F: z: L; K& T' S% Mfor(i=0;i<=5;i++)3 h& _; |/ c" r Q' _' L+ p% [& M
{for(j=0;j<=i;j++)
* I A) V ^/ m8 u( B printf("%4d",a[i][j]);
- K: K, w6 H0 ?2 I0 C3 Q printf("\n");}' B, f- v0 I1 P. y
}0 X, x# B" O8 K" m6 Z7 c
/ x3 E9 c0 s8 l; b& _7、/*通过键盘输入3名学生4门课程的成绩,' I. w. ^, s, ^0 J3 T _, g
分别求每个学生的平均成绩和每门课程的平均成绩。# E5 M1 {( J& L4 m& j" e6 N
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车
1 ?5 I3 \4 C R; X, O其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
( q" g6 c6 D: R" E3 o#include <stdio.h> C9 K4 i* W# |8 k' o$ i5 ~0 i
#include <stdlib.h>& ?5 J# y m( ^* i2 `
main()
/ b: g5 `& Q- V5 L6 U{ float a[4][5],sum1,sum2;; ?9 j% F$ n+ U5 f
int i,j;% m6 K P4 u" }
for(i=0;i<3;i++)
6 s# H; z, N e' _$ A for(j=0;j<4;j++)& z0 [5 @! l K( k; e# L
scanf("%f",&a[i][j]);8 [4 n0 z" M( e: M4 ^
for(i=0;i<3;i++)
* w* ~% \& b. ^) v' \# E1 `{ sum1=0;" e; J! Z7 g" B1 ]# n1 c
for(j=0;j<4;j++)
% _5 r0 y- Y5 x- U3 L6 ] sum1+=a[i][j];
' d* w; i8 i* b) V& k+ F a[i][4]=sum1/4;' e! B( A8 l, l; R8 Z! S
}. J0 E4 D, [+ n4 y! `
for(j=0;j<5;j++)
5 G0 ^+ X4 E c9 {7 a5 o{ sum2=0;
& g2 |9 |! R8 m9 p/ s/ B9 E2 X for(i=0;i<3;i++)
# j! o8 {5 S$ H+ _- F5 U: L, T# A sum2+=a[i][j];
) Y. l; T! l, y# r' U3 ~+ Q4 B3 d a[3][j]=sum2/3;
* b" _- \4 y3 b: h }* I; b( m% \/ @7 z0 v1 j
for(i=0;i<4;i++): L; s, t8 C0 F: A3 [
{ for(j=0;j<5;j++)
! E+ g o5 _" V" _ { printf("%6.2f",a[i][j]);
" w- Z$ D' J$ l; z# E9 O printf("\n");
' D: H/ Y6 ?& k1 |4 ^( D/ T }
1 W# l Y- z' u( U& E}
$ D9 M7 J$ g4 V0 C" W# a
2 H `2 g6 C$ e( p, C! P! V- y: {1 m8、/*完善程序,实现将输入的字符串反序输出,
# U$ } ^0 P) c& u5 `( H如输入windows 输出swodniw。*/
' |7 n. H+ m" n1 i#include <string.h>) [# n0 b1 v; V+ ~; Z. @/ d. r2 W# k
main()
2 U, V { r O( @) R) K, J3 y# Y{ char c[200],c1;6 }- u: S6 K2 H
int i,j,k;* L9 D; C. h5 L6 r& _
printf("Enter a string: ");/ B+ D" J2 C. I% H! R8 Z# ~
scanf("%s",c);
3 |, \+ j$ a% n k=strlen(c);
* F. X0 d( Y, t3 P# y/ `" e for (i=0,j=k-1;i<k/2;i++,j--)
# V' f8 n8 S/ c) t& G3 D# F { c1=c[i];c[i]=c[j];c[j]=c1; }
( r% M; l0 h8 B& j+ V* ]6 e printf("%s\n",c); y8 m. z# D- J3 K
}
. }; b+ H0 q! e指针法:. s2 A1 Z3 h5 D7 d' d5 g/ b. m7 P
void invert(char *s)
7 z# z7 T# p1 e; `6 C) F7 j. } z{int i,j,k;; y8 P8 S d' X; B
char t;- d& A- v/ l* n( y
k=strlen(s);
8 O: d7 L5 p% w B7 nfor(i=0,j=k-1;i<k/2;i++,j--), S4 `3 u2 Q3 _. I: o% S
{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }0 b$ F% g- @+ z, d
}
9 c9 E; o* U! S: ]5 smain()
8 |3 _$ t( F- q- u( U! d, \! f0 [{ FILE *fp;/ O5 I+ S- l5 j$ {
char str[200],*p,i,j;3 G P5 ~% o6 c' B7 g
if((fp=fopen("p9_2.out","w"))==NULL) . S6 Y6 S, c: ?$ a# g% `& `
{ printf("cannot open the file\n");/ @6 V2 d$ b$ D" T: V( E; ]2 c. i$ C
exit(0); # O9 X; ]1 S9 D% }* p& f- D/ l
}
0 Y$ q! Y+ u9 e5 o( X5 ? printf("input str:\n");
! C/ y, T/ \5 H. p" y+ ?gets(str);4 |! n( C3 W# `' C( m
printf(“\n%s”,str);
8 E( O3 ?, o1 ~" kfprintf(fp,“%s”,str);
3 @& p6 w9 I3 S* ^4 G! t) X7 yinvert(str);; a. V& n% k; A' `5 q8 |0 Z2 D
printf(“\n%s”,str);" q. z0 x( M( J% ?( X
fprintf(fp,“\n%s”,str);
+ F) E) b; j* |( `$ [- w9 \fclose(fp);5 m* P( N8 V2 O) M1 g9 S6 U
}
3 [* ?9 Y# j! ^; t
* T, f/ `0 f0 B4 C5 y& u9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
$ I2 E" H- M$ u#include <stdio.h>0 O2 u: W1 O* y H! X
main()
7 `9 I6 w1 |( {9 r" X{ char s[80],c;
; s# v2 S/ l6 L, p/ C int j,k;: [1 _6 C2 @& S# o; \ u% A& m; @
printf("\nEnter a string: ");# a- s2 X" G) l. d7 j, V
gets(s);
8 Q" D" W n( r: N6 m1 f, z8 r printf("\nEnter a character: ");
+ ]+ ]8 [9 \5 \5 }6 Y6 L" R, m c=getchar( );5 M/ p) i: q* g! ^1 `/ m& j" Q
for(j=k=0;s[j]!= '\0';j++)& Z/ Q8 C1 _; R* b
if(s[j]!=c)" [( L$ X. M+ |5 t
s[k++]=s[j];
4 L- {6 j) y w' U s[k]= '\0';* B$ a! m2 K R) w; O4 E: C0 g* F
printf("\n%s",s);! P2 e( F/ ]+ T* u0 _
}1 P9 U+ j- e4 H2 n( j& B
. C) p3 H9 @$ M. C4 w
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小5 @/ H ?+ c0 Q4 Q8 I# S7 z! {
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/# ]9 A* d9 @% q+ H, o1 A4 M; N" L
#include<stdio.h>
& e4 L5 [& j9 s0 Jvoid sort(int *x,int n)
v: T( U0 y( z4 ^3 |- q: f# o{
2 w/ v6 L# Q; }7 p \' h( Bint i,j,k,t;
' i6 v! b8 c2 j. e( f& H, Q; p T% Vfor(i=0;i<n-1;i++)$ H# U) |$ A+ F C: O% h z; X
{
& ~4 Q/ T3 L! O) b1 n# gk=i;
: {4 ]3 l* Z5 M1 B, y( Kfor(j=i+1;j<n;j++)' E- r# M+ I5 x3 ]8 X* ?
if(x[j]>x[k]) k=j;
" _& L. O7 g8 V( x" ^# T ]5 X* U/ B# | if(k!=i)
N/ b, m: ~5 y- g! e# L; K. o {
6 Q+ W; H7 |* j t=x[i];
" H7 R1 C9 h4 P0 W$ A x[i]=x[k];/ n# e B" t" w0 n @: g( k/ ?
x[k]=t;- {* V5 j F3 `% z6 I. `
}
% q: @1 w- N/ s$ D2 h9 ^" K}
5 {2 r. r9 {$ w+ S* Z8 w}
! \- u- }. d; L- ^void main()
9 {/ z% Q. T5 d2 h1 ]{FILE *fp;6 }4 \) M( j6 k
int *p,i,a[10];
V" t: ?3 C- ?+ {' ?6 Z. O fp=fopen("p9_1.out","w"); 8 _2 N7 J" R8 P8 g0 L$ y
p=a;! j! J% C! N: A
printf("Input 10 numbers:");
' B$ H, F" e5 K0 r0 ]: P* tfor(i=0;i<10;i++)
4 L) }! U% f1 D. x' ? {1 Zscanf("%d",p++);
7 [8 U9 Y7 h3 L% U7 L: m: kp=a;
5 R- q8 ^2 z/ P2 b7 {, Y" Y5 {sort(p,10);" E6 q; n5 a/ F
for(;p<a+10;p++)$ n7 ^$ l% ]5 y& N1 w. _' W
{ printf("%d ",*p);
" j* ^. i, K. Y* s; R/ \ fprintf(fp,"%d ",*p); }8 Z* p6 m% t/ ^
system("pause");4 U3 g3 A$ e1 j+ I9 W$ D0 D
fclose(fp);3 \; e& a' ~2 y; R' `
}
' E: z A8 e2 _8 V1 f5 E/ V
2 _0 a, X# d# k- J; K/ M' d, M$ @11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/5 T8 }9 R7 k$ [8 z9 B5 t2 C
main()
# ~. {" t+ N) R { int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/0 J6 `" O; |6 T! A/ y9 @
int x , i, j=6; /*j为元素个数*/
$ L& y5 x$ p4 F {0 `6 Q$ f printf("Enter a number: ");: {- M* L( a5 o1 v& s% N1 w
scanf("%d",&x);3 r8 s1 F) E* E0 Y
a[0]=x;$ y8 U& c5 g g/ q& r
i=j; /*从最后一个单元开始*/9 f1 t; ~8 g) u8 H' H: I$ W
while(a[i]>x)
9 \) t( x/ D4 g) C( [ { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/' u' H9 a$ F! [; }
a[++i]=x;0 D/ T [" G7 [, {
j++; /*插入x后元素总个数增加*/, g8 {) j- q* [4 j9 v- ]; m
for(i=1;i<=j;i++) printf("%8d",a[i]);
% M' G- N# }: n/ r printf("\n");
9 C# p; ?, x9 A3 }6 A* K}. {% J; B8 I( L
+ F1 W9 j9 h# F; @( c3 d$ ^; j& @
$ a2 v, B0 B# N1 v7 @8 `+ @7 ~) ~
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/: L) J9 a8 W0 g
#include<stdio.h>+ p# j+ G% K* h* }/ ^# }1 X" k
replace(char *s,char c1,char c2)
8 g" s& ]% j( o. x{ while(*s!='\0')
4 G) B7 f7 n6 Y' C! N5 t* V! [ { if (*s==c1)7 C% z* s% `1 ?6 b5 d5 v6 y
*s=c2;
) t( w5 W- O' G! h4 | s++;4 ?1 _$ G: J+ Q" Q' v$ J7 n
}3 g' \* Z% p$ f8 r6 h! x, l1 e# S y
}/ `8 }' g1 I8 g n
main()
: n- e$ g' g5 P/ e" x0 ~{ FILE *fp;
2 }$ ~( h+ U+ b6 W' \char str[100],a,b; S* s8 T7 O0 b' Z+ a/ f2 m
if((fp=fopen("p10_2.out","w"))==NULL)
. \1 t+ [( m0 t/ @1 { { printf("cannot open the file\n"); V. ?; u# j7 w. I; D
exit(0); }. c" G' h( E2 S r% j
printf("Enter a string:\n");! i4 V" `9 {6 I, z1 k F- h6 @
gets(str);
, X h# x! c0 K% v) u! H printf("Enter a&&b:\n");; ~* S' H {; D
scanf("%c,%c",&a,&b);
' b& {+ H4 } K( w% A7 H- }printf("%s\n",str);
3 T# a$ U: @& f: o2 jfprintf(fp,"%s\n",str); \$ W, p8 d/ [2 k6 X, H* o
replace(str,a,b);
/ Q, ~* x) P3 n! x8 } wprintf("The new string is----%s\n",str);
8 V+ j z& d7 p) N6 m& } L" yfprintf(fp,"The new string is----%s\n",str);
c I0 i+ j0 ofclose(fp);
# k/ M/ W8 _+ i3 e}2 {# ]7 I+ r( n* H0 X
8 C* _7 Y" B8 R$ S/ v# |' ^13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
+ y8 e$ |( E5 r$ e+ X8 V$ X( T+ b; a,不存在则返回-1。*/
; T% X: h$ l$ O5 N6 ^2 O" L, @main()" ~9 y) y- O4 \/ \
{char s1[6]="thisis";char s2[5]="is";4 u- j5 b, U; D# d
printf("%d\n",search(s1,s2));
! M8 ~7 P1 T7 [( G- Ssystem("pause");
' W6 T9 W% i0 g}
: V# o; ^8 X* v Y. q0 lint search(char s1[],char s2[])
4 D0 l7 x7 b. J4 X# O, {, y3 w{int i=0,j,len=strlen(s2);6 P% o$ x6 L& q" y" F" @/ M8 o: ^* T
while(s1[i]){6 `' g% B a+ o8 H# [4 s
for(j=0;j<len;j++)
1 w2 l0 G# {5 I3 `5 t" i3 i' P6 |if(s1[i+j]!=s2[j]) break;" M6 I/ z- H5 N5 D, m# b; |
if(j>=len)return i; ]4 X! L, y9 k, e' S7 O! z
else i++;/ f5 k( N6 G' K, R) S! d
}
& n' ^" s- W9 \; S* Vreturn -1;
( i8 y( s. y4 ]8 b}
+ h% h& s% `& N) D" w. r& f! n' e' G3 o; ^6 X- _, `+ x* p
14、/*用指针变量输出结构体数组元素。*/' j, L% F0 a. l) O( b+ u6 B7 q* K4 z
struct student+ \0 E3 R7 E+ S1 U8 e
{* z8 b6 O- J4 R, a0 H' J
int num;5 ^. x& w0 T; X3 O0 J
char *name;
" A) N. ^ p! K- q4 Tchar sex;. L1 x6 h# }5 D m
int age;
* I: R1 Z8 R& `5 L, n7 o' w* ^}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
/ x4 `( e+ ~8 W0 B* |* w' n* Hmain()
+ @+ g/ q- c( C1 t, S% [ P{int i;
4 d8 y7 S% C$ s* pstruct student *ps;4 h6 i( Z% B1 C
printf("Num \tName\t\t\tSex\tAge\t\n"); ' d: _4 t+ c4 D+ ~
/*用指针变量输出结构体数组元素。*/
( v7 k1 a# E: v# R" t0 U( Y% o5 Wfor(ps=stu;ps<stu+5;ps++)
/ G4 E, q* s: W6 L1 J6 E" v6 l- Pprintf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);; V" q. k/ y3 [2 e# ^- r7 b
/*用数组下标法输出结构体数组元素学号和年龄。*/# u. u1 Z) }2 X, }
for(i=0;i<5;i++)
- O) N4 E; f; Y3 Kprintf("%d\t%d\t\n",stu[i].num,stu[i].age);5 b$ J( h' g" W, B
}& B8 d6 a+ y* d' G# @( k3 K
& b- Q; Y0 F; d c* R8 \15、/*建立一个有三个结点的简单链表:*/
4 I+ y: O6 U& C. {% a#define NULL 0
3 Q- u% r6 I, Y1 Tstruct student) a0 q+ W/ I5 q
{
0 J; j# `5 d4 c' G: `- z1 [7 b; Tint num;
% [( z/ W l+ Bchar *name;4 V7 l8 _, i0 Q% `0 G
int age ;
2 d! Y( s# C( |5 d7 i9 I* L! Dstruct student *next;$ q; @2 T- I) s9 Z9 m
};
: @2 x2 n0 b0 }( j" c9 uvoid main()
: }0 ]* @- N& B* v" T0 |1 z{$ Y. m& {; u! p' C2 p0 r% `0 J6 T
struct student a,b,c,*head,*p;
1 @. S0 T# l( ?* `. S; Ga.num=1001; a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */
4 q* P1 x9 g' ?" _b.num=1002; b.name="liuxing"; b.age=19;, {; I) h9 e% c$ t5 J/ q) |4 ^- j" L) [
c.num=1003; c.name="huangke"; c.age=18;2 N# c6 E5 }0 b& V4 G8 M
head=&a; /* 建立链表,a为头结点 */
7 M- }7 H) _2 ?/ ea.next=&b;
. `, n h$ ~4 xb.next=&c;
" j# E, l- K5 R. |c.next=NULL;1 f# k4 C" U3 Y' I' V7 f9 F
p=head; /* 输出链表 */
" d6 r& p% |- E: T6 udo{
9 y3 y }% u' L6 c1 q5 bprintf("%5d,%s,%3d\n",p->num,p->name,p->age);
; J! Z; a, I t9 Z( ^& Vp=p->next;
9 P) d, V) \) O7 c: e}while(p!=NULL);
% o5 Y3 G# {# m}
& E! v1 c7 S. v8 I: e! @, N# f: h: Q3 y4 ?
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
0 `& K! I G r; r4 e, }/ _( `#include <stdio.h>
3 Q2 W; a( D. v2 \5 w7 e#include <string.h>6 `3 C& I' P+ i, c( _9 r
#include<string.h>) e0 {2 A- ^! b5 @2 O
main()* b$ x& W3 N! ~" r6 E
{ char s[100];
' c6 |4 }1 s- l$ i$ Z& C9 Vint i,j,n;
- R" H0 U4 K- T8 r9 k* Hprintf("输入字符串:\n");
! y" |% M) x( v* _gets(s);
5 }. \9 o/ }, J- In=strlen(s);
" f# f, T, \2 p, Z5 h% efor(i=0,j=n-1;i<j;i++,j--)
" b, z8 ?9 d9 V: J# G if(s[i]!=s[j]) break;% ^1 @* W' c& {6 K
if(i>=j) printf("是回文串\n");$ I- {& v W2 p. E! }% k
else printf("不是回文串\n");: u! A$ d' B3 f5 t7 @
}8 O) _% l4 Z9 `$ ]0 h1 S( o7 X
0 I7 x1 I3 O$ S$ o/ _/ e17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
8 i5 k! h; k* }6 z#include<stdio.h>
/ e6 J* c+ r6 x$ G0 x$ ovoid fun(int a[],int n)0 |) _; k. x4 |/ d
{int i,j,t;( x0 @" T8 P/ u: N) X
for(i=0;i<=n-1;i++)7 c8 U7 b: n t
for(j=0;j<i;j++)' P( Y( D# C+ q( A
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
/ L$ K' D" b1 {( C- U# m7 U}
: v$ A) W* R! fmain(): L- Y# p; d( J4 U
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
% [0 d5 M6 Q8 H. c! HFILE *f;
$ y+ T3 w8 D3 |+ mif((f=fopen("myf2.out","w"))==NULL)/ Y8 d) L3 T" m
printf("open file myf2.out failed!\n");
8 V8 m) V* _; Qfun(a,10);
( U. a/ s# ?: V6 s( Nfor(i=0;i<10;i++)
: C o# _, s" @# q0 y H {printf("%4d",a[i]);- f M2 M: m$ @; n3 w) |- ?3 Q
fprintf(f,"%4d",a[i]);% p7 R9 `9 G! c
}
2 ^$ b |( }5 c3 ~( n: {* ofclose(f);
1 l a8 `8 R' j5 ~ \4 n) X} r* ?: h( B# s; X+ _4 s& S+ j
& ^5 f8 c. W2 [2 {# S& a- }( S
18、编写函数countpi,利用公式# j% @* Y1 K T6 w
4 V/ f% d! L: H+ }' Q% S 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。$ b0 P/ x% B( |' l5 z
#include<stdio.h>+ r# r; A: L5 p+ T* ^
double countpi(double eps) /*eps为允许误差*/
1 L1 a) k& J ?* R9 c' a{; ]% b, d! A) V) c% a' d
int m=1;+ `' x! M4 l- s: D& Y
double temp=1.0,s=0;
$ u! V9 f# q7 K; O6 B/ [& | while(temp>=eps)
: F) V1 W( b% R5 v1 Q1 h4 q* X' R { s+=temp;
+ R- j- Q! u+ L% } temp=temp*m/(2*m+1);1 f- Y) P* d, u" _; Y$ O
m++;
% M; {' G$ G# o c! l6 ~3 n" z }& j. q& ~0 w) u& n
return(2*s);
* E" P1 u) @6 Z- V}
L( y6 o1 i: l( rmain()2 H+ j, N! G3 k
{FILE *fp;( U- R B4 k* O8 M: b3 g; R
double eps=1e-5,pi;
# P6 a7 K0 v8 Q; w9 ^1 o if((fp=fopen("p7_3.out","w"))==NULL)
- v( O" |4 j/ V: O- S( R5 Q { printf("cannot open the file\n");
1 e6 a' O* I T, v- K }# g& ] exit(0); " O* V5 ?6 ^9 Q0 f2 \; d5 t0 Z8 \ y
}; m, u, B, E8 ^$ ~- y, K
pi= countpi(eps);
9 W- q, p! T9 K c3 z. _5 M printf("pi=%lf\n",pi);& M4 a4 z0 H, v/ _2 C
fprintf(fp,"pi=%lf\n",pi);* y7 A1 P/ Q/ H. m# R! g# h
fclose(fp);
' u% p w+ [' O} |
|