為了加深對for語句的理解,我們看三個利用c語言編程輸出*形的例子,這裡的*形包括直角形、等腰形和鑽石形。所用編程環境Microsoft Visual C++ 6.0。讓我們在這裡體驗算法和編程的魅力。
工具/原料
Microsoft Visual C++ 6.0
輸出直角*形
#include
void main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
}
編程界面和輸出結果:
輸出等腰形*
#include
void main()
{
int n,m,k;
for(n=1;n<=7;n++)
{
for(m=7;m>=n;m--)
{
printf(" ");
}
for(k=1;k<=2*n-1;k++)
{
printf("* ");
}
printf("\n");
}
}
編程界面和輸出結果:
鑽石*形
#include
#include
int main(void)
{
int i,j,k;
for(i=1;i<=10;i++)
{
for(j=1;j<=abs(5-i);j++)
printf(" ");
for(k=1;k<=9-2*(abs(5-i));k++)
printf("*");
printf("\n");
}
return 0;
}
編程界面和輸出結果:
附例1:用二分法求方程的根。這裡給出方程:
2*x*x*x-4*x*x+3*x-6=0
求出方程在(-10,10)之間的根。
二分法的數學意義大家可以先提前複習一下。
這裡給出編程代碼,供大家參考。
#include
#include
float Function(float x)
{
float Function=2*x*x*x-4*x*x+3*x-6;
return Function;
}
void main()
{
float a=-10;
float b=10;
do
{
if(Function((a+b)/2)>0)
{
a=a;
b=(a+b)/2;
}
else
{
a=(a+b)/2;
b=b;
}
}while(fabs(Function((a+b)/2))>=1e-5);
printf("%f\n",(a+b)/2);
}
運算結果如下:
求得:
x=2
注意事項
每一個例子、每一種方法都要好好體會。
有時候覺得簡單的程序,自己扣上書,自己來寫,又不會寫了,這就是還沒有好好的掌握。