在while的用法中,还存在do……while的用法
结构:
do
{
……
} while ();
(注意while括号后一定要加封号)
此结构和while的最大的区别就是while先进行while括号内语句的判断,而do……while先进行语句,在do之后才判断while括号内语句。
下面为一元二次方程求解程序案例:(用do……while)
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c;
double del;
double x1,x2;
char ch;
printf(“请输入一元二次方程的三个数:\n”);
printf("a = ");
scanf("%d",&a);
printf("b = ");
scanf("%d",&b);
printf("c = ");
scanf("%d",&c);
del=b*b-4*a*c;
do
{
if (del>0)
{
x1=(-b+sqrt(del))/(2*a);
x2=(-b-sqrt(del))/(2*a);
printf("有两个不等的实根: x1= %d x2= %d\n",x1,x2);
}
else if (0==del)
{
x1=-b/(2*a);
printf("有两个相等的实根: x1 = x2 = %d\n",x1);
}
else printf("无实数根.\n");
printf("是否需要再次运行:(y/n) ");
scanf(" %c",&ch);
}while ('Y'==ch || 'y'==ch);
}
这里有一个疑问,在别的地方看到scanf里%c前要加一个空格,希望能有大佬能解惑