结构的程序设计:顺序,选择,循环(while,do…while,for)
1)选择:出现了分支,条件
2)循环:出现了重复(相似)的代码,一个范围,执行次数不确定,范围----判定需要使用循环。
循环三要素:循环条件(通常和循环变量的变化范围有关),循环体(重复执行的相似代码),循环变量(注意循环变量的变化,初值)
1while(表达式)//注意:此处语句不能有分号,
执行:先判断表达式的值是否为真(成立),如果为真,则执行语句,然后继续判断表达式的值,一直到表达式为假,while循环结束。
注意:表达式为任意合法的表达式,为循环执行的条件,即循环条件。
语句为任意合法的一条语句(多条语句,必须加括号),是重复执行的语句,即循环体语句。
为了让循环能够结束,通常在循环体语句里有使循环条件趋于不成立的语句。
while循环
循环变量赋初值
{
循环体
循环变量的变化
}
2,do while循环:直到型循环,循环体最少执行一次。
语法
do
{
语句( 循环体
循环变量的变化)
}while表达式;//注意此处必须有分号
执行:先执行语句,然后判断表达式是否成立,如果成立,继续执行语句,否则结束do…while语句
注意:语句是循环体语句
表达式是循环条件
当循环条件(表达式)初始为真时,可以和while循环无条件转换
求axx+b*x+c=0的解
#include"stdio.h"
#include"math.h"//用到sqrt求绝对值函数,必须加math
int main()
{
double a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%d%d%d",&a,&b,&c);
printf("The equation");
if(fabs(a)<=1e-6)
printf("is not a quadratic\n");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("has two equal roots:%8.4f\n",-b/(2*a));
else if(disc>1e-6)
{
x1=(-b+sqrt(disc)/(a*2));
x2=(-b-sqrt(disc)/(2*a));
printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart/*实部*/,imagpart);//输出两个共轭的复根
printf("%8.4f-%8.4fi\n",realpart,imagpart/*虚部*/);
}
}
return 0;
}
求1·100的和
```cpp
#include "stdio.h"
int main()
{
int i=1,sum=0;
while(i<100)
{
sum=sum+i;
i++;
}
printf("%d",sum);
}
#include "stdio.h"
int main()
{
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}while(i<=100);
printf("%d",sum);
}