C语言课后习题8.docx
- 文档编号:12976324
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:10
- 大小:21.02KB
C语言课后习题8.docx
《C语言课后习题8.docx》由会员分享,可在线阅读,更多相关《C语言课后习题8.docx(10页珍藏版)》请在冰点文库上搜索。
C语言课后习题8
8.1
hcf(u,v)
intu,v;
{inta,b,t,r;
if(u>v){t=u;u=v;v=t;}
a=u;b=v;
while((r=b%a)!
=0)
{b=a;a=r;}
return(a);
}
lcd(u,v,h)
intu,v,h;
{return(u*v/h);}
main()
{intu,v,h,l;
scanf("%d,%d",&u,&v);
h=hcf(u,v);
printf("H.C.F=%d\n",h);
l=lcd(u,v,h);
printf("L.C.D=%d\n",l);
}
8.2
#include"math.h"
floatx1,x2,disc,p,q;
greater_than_zero(a,b)
floata,b;
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
equal_to_zero(a,b)
flaota,b;
{x1=x2=-b/(2*a);}
smaller_than_zero(a,b)
floata,b;
{p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
main()
{floata,b,c;
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(fabs(disc)<=1e-5)
{equal_to_zero(a,b);
printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);
}
elseif(disc>0)
{greater_than_zero(a,b);
printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);
}
else
{smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fi\tx2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
8.3
main()
{intnumber;
scanf("%d",&number);
if(prime(number))
printf("yes");
else
printf("no");
}
intprime(number)
intnumber;
{intflag=1,n;
for(n=2;n if(number%n==0) flag=0; return(flag); } 8.4 #defineN3 intarray[N][N]; convert(array) intarray[3][3]; {inti,j,t; for(i=0;i for(j=i+1;j {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } } main() {inti,j; for(i=0;i for(j=0;j scanf("%d",&array[i][j]); convert(array); for(i=0;i {printf("\n"); for(j=0;j printf("%5d",array[i][j]); } } 8.5 main() {charstr[100]; scanf("%s",str); inverse(str); printf("%s\n",str); } inverse(str) charstr[]; {chart; inti,j; for(i=0,j=strlen(str);i {t=str[i]; str[i]=str[j-1]; str[j-1]=t; } } 8.6 charconcate(str1,str2,str) charstr1[],str2[],str[]; {inti,j; for(i=0;str1[i]! ='\0';i++) str[i]=str1[i]; for(j=0;str2[j]! ='\0';j++) str[i+j]=str2[j]; str[i+j]='\0'; } main() {chars1[100],s2[100],s[100]; scanf("%s",s1); scanf("%s",s2); concate(s1,s2,s); printf("\ns=%s",s); } 8.7 main() {charstr[80],c[80]; voidcpy(); gets(str); cpy(str,c); printf("\n%s\n",c); } voidcpy(s,c) chars[],c[]; {inti,j; for(i=0,j=0;s[i]! ='\0';i++) if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'|| s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U') {c[j]=s[i];j++;} c[j]='\0'; } 8.8 main() {charstr[80]; scanf("%s",str); insert(str); } insert(str) charstr[]; {inti; for(i=strlen(str);i>0;i--) {str[i*2]=str[i]; str[i*2-1]=''; } printf("%s\n",str); } 8.9 intalph,digit,space,others; main() {chartext[80]; gets(text); alph=0,digit=0,space=0,others=0; count(text); printf("\nalph=%d,digit=%d,space=%d,others=%d\n",alph,digit,space,others); } count(str) charstr[]; {inti; for(i=0;str[i]! ='\0';i++) if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) alph++; elseif(str[i]>='0'&&str[i]<='9') digit++; elseif(strcmp(str[i],'')==0) space++; else others++; } 8.11 #defineN10 charstr[N]; main() {inti,flag; for(flag=1;flag==1;) {scanf("%s",str); if(strlen(str)>N) printf("inputerror"); else flag=0; } sort(str); for(i=0;i printf("%c",str[i]); } sort(str) charstr[N]; {inti,j; chart; for(j=1;j for(i=0;(i ='\0');i++) if(str[i]>str[i+1]) {t=str[i]; str[i]=str[i+1]; str[i+1]=t; } } 8.13 main() {intx,n; floatp(); scanf("%d,%d",&n,&x); printf("P%d(%d)=%10.2f\n",n,x,p(n,x)); } floatp(tn,tx) inttn,tx; {if(tn==0) return (1); elseif(tn==1) return(tx); else return(((2*tn-1)*tx*p((tn-1),tx)-(tn-1)*p((tn-2),tx))/tn); } 8.14 #defineN10 #defineM5 floatscore[N][M]; floata_stu[N],a_cor[M]; main() {inti,j,r,c; floath; floats_diff(); floathighest(); r=0; c=1; input_stu(); avr_stu(); avr_cor(); printf("\n number class 1 2 3 4 5 avr"); for(i=0;i {printf("\nNO%2d",i+1); for(j=0;j printf("%8.2f",score[i][j]); printf("%8.2f",a_stu[i]); } printf("\nclassavr"); for(j=0;j printf("%8.2f",a_cor[j]); h=highest(&r,&c); printf("\n\n%8.2f %d %d\n",h,r,c); printf("\n %8.2f\n",s_diff()); } input_stu() {inti,j; floatx; for(i=0;i {for(j=0;j {scanf("%f",&x); score[i][j]=x; } } } avr_stu() {inti,j; floats; for(i=0;i {for(j=0,s=0;j s+=score[i][j]; a_stu[i]=s/5.0; } } avr_cor() {inti,j; floats; for(j=0;j {for(i=0,s=0;i s+=score[i][j]; a_cor[j]=s/(float)N; } } floathighest(r,c) int*r,*c; {floathigh; inti,j; high=score[0][0]; for(i=0;i for(j=0;j if(score[i][j]>high) {high=score[i][j]; *r=i+1; *c=j+1; } return(high); } floats_diff() {inti,j; floatsumx=0.0,sumxn=0.0; for(i=0;i {sumx+=a_stu[i]*a_stu[i]; sumxn+=a_stu[i]; } return(sumx/N-(sumxn/N)*(sumxn/N)); } 8.17 #include voidconvert(n) intn; {inti; if((i=n/10)! =0) convert(i); putchar(n%10+'0'); } main() {intnumber; scanf("%d",&number); if(number<0) {putchar('-'); number=-number; } convert(number); } 8.18 main() {intyear,month,day; intdays; scanf("\n%d,%d,%d",&year,&month,&day); days=sum_day(month,day); if(leap(year)&&(month>=3)) days+=1; printf("days=%d\n",days); } staticintday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31} intsum_day(month,day) intmonth,day; {inti; for(i=1;i day+=day_tab[i]; return(day); } intleap(year) intyear; {intleap; leap=year%4==0&&year%100! =0||year%400==0; return(leap); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 习题