4.編一個(gè)程序,輸入三個(gè)單精度數(shù),輸出其中最小數(shù)。
「解」設(shè)最小數(shù)存于變量min中,為求三個(gè)數(shù)中的最小數(shù),可分以下多步完成,先預(yù)置min為x,然后分別將其余兩個(gè)數(shù)逐一與min比較,當(dāng)它們中的某個(gè)值比存于min中的值更小時(shí),就用它們更新min.寫出程序如下:
# include
main()
{ float X,y,Z,min;/*變量定義*/
printf(“輸入三個(gè)單精度浮點(diǎn)數(shù)”);
scanf(“%f%f%f”, x, y, Z);
min =x;
if(min y) min= y;
if(min Z) min=Z;
printf(“浮點(diǎn)數(shù)%f,%f,%f中的最小值是%f\n”,X,y,Z,min);
}
5.編一個(gè)程序,求出所有各位數(shù)字的立方和等于1099的3位數(shù)。
「解」找出所有各位數(shù)字的立方和等于1l99的3位整數(shù)。 3位整數(shù)是100至999范圍內(nèi)的整數(shù),設(shè)分別用a,b,c存儲(chǔ)3位數(shù)的百位、十位和個(gè)位的數(shù)字,程序用三重循環(huán)求出a,b,c的立方和為1099的3位數(shù)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);
}
若用一個(gè)變量i表示3位數(shù),循環(huán)體將3位數(shù)變量i分拆出它的百位、十位和個(gè)位共3個(gè)數(shù)字,然后判這三個(gè)數(shù)字的立方和是否是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);
}
}