程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言 循環問題

C語言 循環問題

編輯:C語言問答

C語言 循環問題

10

原來的代碼:

#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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved