4.编一个程序,输入三个单精度数,输出其中最小数。
「解」设最小数存于变量min中,为求三个数中的最小数,可分以下多步完成,先预置min为x,然后分别将其余两个数逐一与min比较,当它们中的某个值比存于min中的值更小时,就用它们更新min.写出程序如下:
# include
main()
{ float X,y,Z,min;/*变量定义*/
printf(“输入三个单精度浮点数”);
scanf(“%f%f%f”, x, y, Z);
min =x;
if(min y) min= y;
if(min Z) min=Z;
printf(“浮点数%f,%f,%f中的最小值是%f\n”,X,y,Z,min);
}
5.编一个程序,求出所有各位数字的立方和等于1099的3位数。
「解」找出所有各位数字的立方和等于1l99的3位整数。 3位整数是100至999范围内的整数,设分别用a,b,c存储3位数的百位、十位和个位的数字,程序用三重循环求出a,b,c的立方和为1099的3位数a*100+b*10+c.程序如下:
# include
main()
{ int a,b, c;/*变量定义*/
for(a=1; a =9;a++)
for(b=0; b =9; b++)
for(c=0;c =9;c++)
if(a*a*a+b*b*b+c*c*c==1099)
printf(“%d\n”,(10*a+b)*10+c);
}
若用一个变量i表示3位数,循环体将3位数变量i分拆出它的百位、十位和个位共3个数字,然后判这三个数字的立方和是否是1099,若是就输出该变量的值。程序如下:
# include
main()
{ int i,a,b, c;/*变量定义*/
for (i=100;i =999;i++) {
a=i/100;
b=(i0)/10; /*或b=(i/10)%l0*/
c=i;
if(a*a*a+b*b*b+c*c*c==1099)
printf(“%d\n”, i);
}
}