if(k!
=i)
{t=a[k];
a[k]=a[i];
a[i]=/**/t/**/;
}
}
}
voidmain()
{
inta[]={72,25,58,32,2,15,7,64};
inti,m=sizeof(a)/sizeof(int);
sort(a,m);
for(i=0;iprintf("%d",a[i]);
printf("\n");
getch();
}
53.补充程序Ccon053.C,使程序中的fun()函数,能根据三角形三边长a,b,c,用公式
,s=(a+b+c)/2计算这个三角形的面积(规定:
若这三条边不能构成三角形,返回-1)。
#include
#include
/**/float/**/fun(floata,floatb,floatc)
{
floats,area;
s=/**/(a+b+c)/2/**/;
s=s*(s-a)*(s-b)*(s-c);
if(s<0)
area=-1;
else
area=sqrt(s);
returnarea;
}
main()
{
floata,b,c,area;
printf("Pleaseinputthreenumbers:
\t");
scanf("%f%f%f",&a,&b,&c);
area=fun(a,b,c);
printf("Areais:
%.2f\n",area);
getch();
}
61.补充程序Ccon061.C,使其从键盘输入一个4行4列的二维整数数组表示4×4阶矩阵,并计算第1列元素之和。
如输入:
1234
5678
9101112
13141516
输出:
28
#include
#include
main()
{
inti,/**/j/**/;
inta[4][4],sum;
sum=/**/0/**/;
printf("Pleaseinput16numbers:
\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
/**/sum+=a[i][0];/**/
printf("%d\n",sum);
getch();
}
62.补充程序Ccon062.C,使程序中的fun()函数用二分法在已按从小到大排好序的数组a中查找q,若找到第一个q则返回对应的下标,没找到返回-1。
#include
intfun(inta[],intn,/**/intq/**/)
{
intleft,right,mid;
left=0;
right=n-1;
while(left<=right)
{mid=/**/(left+right)/2/**/;
if(qelseif(q>a[mid])left=mid+1;
elsereturnmid;
}
return-1;
}
main()
{inta[]={3,4,6,11,17,22,31,45};
intk,n;
n=sizeof(a)/sizeof(int);
k=fun(a,n,31);
printf("%d\n",k);
getch();
}
63.补充程序Ccon063.C,使其中的fun()函数判断输入的一个点(x,y)是否位于坐标在原点,半径为r(r>0)的圆内。
#include
#include
intfun(/**/floatr/**/,floatx,floaty)
{
intbIn;
bIn=/**/sqrt(x*x+y*y)/**/returnbIn;
}
main()
{
floatr=-1,x,y;
intbIn;
while(r<0)
{printf("Pleaseinputradiusr(r>0):
\n");
scanf("%f",&r);
}
printf("Pleaseinputthedot(x,y):
\n");
scanf("%f%f",&x,&y);
bIn=fun(r,x,y);
if(bIn==1)
printf("inthecircle!
\n");
else
printf("outoftheCircle!
\n");
getch();
}