原來的代碼:
#define PI 3.1415926
#include <stdio.h>
void main()
{float bj;float zc,mj,tj;int pd;
scanf("%f",&bj);
zc=2*bj*PI;
mj=bj^2*PI;
tj=3/4*bj^3*PI;
printf("確認輸入%f?",bj);
printf("是否重新輸入?1是,2否.");
scanf("%d",&pd);
printf("輸入的半徑為:%f",bj);
printf("周長:%f,面積:%f,體積:%f",zc,mj,tj);
return 0;
}
這樣原本可以了,但是我想在scanf輸入bj後做一個判斷,printf("%f",bj);顯示半徑,是否確認,否輸入1,在重新輸入bj.本來用goto,可以了,但是其他就不會了.
這樣如何呢,加一個flag,在while循環裡做判斷
#define PI 3.1415926
#include <stdio.h>
#include <math.h>
void main()
{
float bj;
float zc, mj, tj;
int pd;
int flag = 1;
scanf("%f", &bj);
while (flag)
{
printf("輸入的半徑為:%f\n", bj);
printf("確認輸入%f?\n", bj);
printf("是否重新輸入?1是,2否.\n");
scanf("%d", &pd);
if (pd == 2)
flag = 0;
else if (pd == 1)
{
printf("請重新輸入半徑:\n");
scanf("%f", &bj);
}
}
zc = 2 * bj * PI;
mj = (bj ^ 2) * PI;
tj = (bj ^ 3) * PI * 3 / 4;
printf("周長:%f,面積:%f,體積:%f", zc, mj, tj);
while (getch() != 'q'); //我自己加的,按q退出……要不一閃而過
return 0;
}
輸出結果在這裡……
1
輸入的半徑為:1.000000
確認輸入1.000000?
是否重新輸入?1是,2否.
1
請重新輸入半徑:
2
輸入的半徑為:2.000000
確認輸入2.000000?
是否重新輸入?1是,2否.
2
周長:12.566370,面積:12.566370,體積:18.849556