我想提出一個單位轉換程序,但我的代碼太長,只是永遠持續下去,這裏是我的代碼的第一部分:有沒有更簡單的方法來製作一個C單位轉換器程序?
int measure;
int from;
int to;
float input;
float output;
printf("Choose measurement :\n1 : Length\n2 : Area\n3 : Temparture\n");
measure = getch();
switch(measure){
case '1' :
printf("\nYou want to change from :\n1 : mm\n2 : cm\n3 : dm\n4 : m\n5 : dcm\n6 : hm\n7 : km\n");
from = getch();
printf("\nTo : \n1 : mm\n2 : cm\n3 : dm\n4 : m\n5 : dcm\n6 : hm\n7 : km\n");
to = getch();
printf("Enter number : "); scanf("%f", &input);
switch(from){
case '1' :
switch(to){
case '1' : output = input; printf("%f mm = %f mm", input, output); break;
case '2' : output = input/10; printf("%f mm = %f cm", input, output); break;
case '3' : output = input/1000; printf("%f mm = %f dm", input, output); break;
case '4' : output = input/10000; printf("%f mm = %f m", input, output); break;
case '5' : output = input/100000; printf("%f mm = %f dcm", input, output); break;
case '6' : output = input/1000000; printf("%f mm = %f hm", input, output); break;
case '7' : output = input/10000000; printf("%f mm = %f km", input, output); break;
}
break;
case '2' :
switch(to){
case '1' : output = input*10; printf("%f cm = %f mm", input, output); break;
case '2' : output = input; printf("%f cm = %f cm", input, output); break;
case '3' : output = input/10; printf("%f cm = %f dm", input, output); break;
case '4' : output = input/100; printf("%f cm = %f m", input, output); break;
case '5' : output = input/1000; printf("%f cm = %f dcm", input, output); break;
case '6' : output = input/10000; printf("%f cm = %f hm", input, output); break;
case '7' : output = input/100000; printf("%f cm = %f km", input, output); break;
}
break;
,它會繼續下去的情況下3,4,5, ...直到公里,不包括面積和溫度測量,以及其他我想添加的東西
有沒有更簡單的方法可以做到這一點?謝謝:)
您應該使用單位表和轉換因子。 –
如果您的程序正常工作,並且您只需要*代碼審查*,那麼您應該在http://codereview.stackexchange.com/上發帖。 –
由於CodeReview.stackexchange.com是獲取設計建議的適當場所,因此我正在投票結束此問題。 – Barmar