所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> c语言习题答案(第7章,新版第8章)(潭浩强,清华出版社) |
第七章
7.1
hcf(u,v)
int u,v;
{int a,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)
int u,v,h;
{return(u*v/h);}
main()
{int u,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);
}
7.2
#include"math.h"
float x1,x2,disc,p,q;
greater_than_zero(a,b)
float a,b;
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
equal_to_zero(a,b)
flaot a,b;
{x1=x2=-b/(2*a);}
smaller_than_zero(a,b)
float a,b;
{p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
main()
{float a,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);
}
else if(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);
}
}
7.3
main()
{int number;
scanf("%d",&number);
if(prime(number))
printf("yes");
else
printf("no");
}
int prime(number)
int number;
{int flag=1,n;
for(n=2;n<number/2&&flag==1;n++)
if(number%n==0)
flag=0;
return(flag);
}
7.4
#define N 3
int array[N][N];
convert(array)
int array[3][3];
{int i,j,t;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
main()
{int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
convert(array);
for(i=0;i<N;i++)
{printf("\n");
for(j=0;j<N;j++)
printf("%5d",array[i][j]);
}
}
7.5
main()
{char str[100];
scanf("%s",str);
inverse(str);
printf("%s\n",str);
}
inverse(str)
char str[];
{char t;
int i,j;
for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--)
{t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
}
7.6
char concate(str1,str2,str)
char str1[],str2[],str[];
{int i,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()
{char s1[100],s2[100],s[100];
scanf("%s",s1);
scanf("%s",s2);
concate(s1,s2,s);
printf("\ns=%s",s);
}
7.7
main()
{char str[80],c[80];
void cpy();
gets(str);
cpy(str,c);
printf("\n%s\n",c);
}
void cpy(s,c)
char s[],c[];
{int i,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';
}
7.8
main()
{char str[80];
scanf("%s",str);
insert(str);
}
insert(str)
char str[];
{int i;
for(i=strlen(str);i>0;i--)
{str[i*2]=str[i];
str[i*2-1]=' ';
}
printf("%s\n",str);
}
7.9
int alph,digit,space,others;
main()
{char text[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)
char str[];
{int i;
for(i=0;str[i]!='\0';i++)
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
alph++;
else if(str[i]>='0'&&str[i]<='9')
digit++;
else if(strcmp(str[i],' ')==0)
space++;
else
others++;
}
7.10
int alph(c)
char c;
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return(1);
else
return(0);
}
int longest(string)
char string[];
{int len=0,i,length=0,flag=1,place,point;
for(i=0;i<=strlen(string);i++)
if(alph(string[i]))
if(flag)
{point=i;
flag=0;
}
else
len++;
else
{flag=1;
if(len>length)
{length=len;
place=point;
len=0;
}
}
return(place);
}
main()
{int i;
char line[100];
gets(line);
for(i=longest(line);alph(line[i]);i++)
printf("%c",line[i]);
printf("\n");
}
7.11
#define N 10
char str[N];
main()
{int i,flag;
for(flag=1;flag==1;)
{scanf("%s",str);
if(strlen(str)>N)
printf("input error");
else
flag=0;
}
sort(str);
for(i=0;i<N;i++)
printf("%c",str[i]);
}
sort(str)
char str[N];
{int i,j;
char t;
for(j=1;j<N;j++)
for(i=0;(i<N-j)&&(str[i]!='\0');i++)
if(str[i]>str[i+1])
{t=str[i];
str[i]=str[i+1];
str[i+1]=t;
}
}
7.12
#include<math.h>
float solut(a,b,c,d)
float a,b,c,d;
{float x=1,x0,f,f1;
do
{x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
return(x);
}
main()
{float a,b,c,d;
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
printf("x=%10.7f\n",solut(a,b,c,d));
}
操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖 |
|