2011-02-10 87 views
0

我有一個菜單時,我選擇2個變量,然後我必須一個男人和一個女人之間作出選擇。之後,我必須去man.c或woman.c與以前選擇的2個變量,但我不知道我該怎麼做。需要有基本的程序幫助用C

我的main.c(僅當在菜單中選擇人):

printf("Insert weight: "); 
scanf("%f",&a); 
printf("Insert high: "); 
scanf("%f",&b); 
switch(opcion){ 
    case 'm':; 

--here我想去man.c繼續與其他菜單,但知道變量的重量和high--

man.c和woman.c是同類者的ionly差是當計算的身體質量指數

man.c:

int bmi(float weight, float high){ 

    float bmi; 
    char opcion; 

    printf("a) Calculate body mass index"); 

    switch(opcion){ 

    case 'a': bmi = weight/high; 
       break; 

    } 
} 

現在我只有這個和女人是一樣的。什麼時候完成man.c和woman.c將有4個選項使用權重,高和一些變量更多,他們需要什麼時候用scanf問。

+0

你能解釋更多什麼`man.c` and`woman.c`嗎?顯示的代碼是一樣好。這將有助於我們弄清楚什麼是你一個不錯的辦法。 – birryree 2011-02-10 13:55:51

+0

你是什麼意思轉到man.c或女人.c .......你必須調用man.c或woman.c中定義的函數......按照@Eimantas的答案 – vrbilgi 2011-02-10 13:58:58

回答

1

我建議你調用一個函數(比如manMenu()),並保持它在同一.c文件。

0

最簡單的方法是調用在開關性別特定的功能。例如man_menu()和woman_menu()。 這些也可能位於不同的.c文件中,但您需要將對象文件鏈接在一起。

1

1)你不能簡單地通過C文件導航在C.
2)你可以做,使用包括&類,但它是一個有點硬初學者
3)這樣做是正確的方式是這樣的:

printf("M/F"); 
    scanf("%f",&option);  
    switch(option){ 
    case M: 
     do_man(); 
     break; 
    case F: 
     do_woman(); 
     break; 
    } 

你應該申報前的主要功能do_man()和do_woman()。

0

那麼你必須定義男人和女人和呼叫流程程序switch語句,並在各自的方法執行你的個人活動。

1

一般

  • 這是關於在文件名的方式思考的代碼錯誤。相反,你應該考慮功能。
  • 加入錯誤處理菜單例如驗證輸入並在循環中重複,直到正確的輸入或轉義字符。

解決方案

加入兩種功能void handleMan(float weight ,float height);void handleWoman(float weight ,float height);原型MAIN.C(menu()main()之前只是複製代碼,並在man.c和woman.c實現它們後來經用戶選擇調用正確的方法。