Member 14940088 Ответов: 3

Как мне преобразовать этот код в C


def getDescription (type_plan ):

    string = ""

    # Check the plan type GENERAL
    if type_plan[0] == 'A':

        # Check the type of plan
        if type_plan == "A1":
            string += "Annual Claim Limit 100.000\n"

        # Check the type of plan
        elif type_plan == "A2":
            string += "Lifetime Claim Limit 500000\n"

        string += "Room Charges 150/day\n"
        string += "Intensive Care Unit (ICU) Charges 300/day\n"
        string += "Hospital Supplies and Services : As charged. Subject to approval by EZMediLife. Surgical Fees\n"

    # Check the plan type GENERAL
    elif type_plan[0] == 'B':

        # Check the type of plan
        if type_plan == "B1":
            string += "Annual Claim Limit 200000\n"

        # Check the type of plan
        elif type_plan == "B2":
            string += "Lifetime Claim Limit 1000000\n"

        string += "Room Charges 200/day\n"
        string += "Intensive Care Unit (ICU) Charges 500/day\n"
        string += "Hospital Supplies and Services : As charged. Subject to approval by EZMediLife. Surgical Fees\n"

    # Check the plan type GENERAL
    elif type_plan[0] == 'C':

        if type_plan == "C1":
            string += "Annual Claim Limit 300000\n"
        elif type_plan == "C2":
            string += "Lifetime Claim Limit 2000000\n"
        string += "Room Charges 300/day\n"
        string += "Intensive Care Unit (ICU) Charges 900/day\n"
        string += "Hospital Supplies and Services : As charged. Subject to approval by EZMediLife. Surgical Fees\n"

    return string


Что я уже пробовал:

я попробовал требования написать на python. я мало что знаю о языке Си.

3 Ответов

Рейтинг:
21

CPallini

Что-то вроде следующего кода должно сделать трюк, при условии, что вы завершите его (просто план " а "покрыт") и сделаете его надежным.

#include<stdio.h>

int get_description(const char type_plan[], const char ** description, const char ** claim_limit )
{
  int result = 0; // 0 is 'success' , non-zero is 'failure' 

  switch (type_plan[0])
  {
  case 'A':
    *description = "Room Charges 150/day\nIntensive Care Unit (ICU) Charges 300/day\nHospital Supplies and Services : As charged. Subject to approval by EZMediLife. Surgical Fees\n";
    switch(type_plan[1])
    {
    case '1':
      *claim_limit = "Annual Claim Limit 100.000\n";
      break;

    case '2':
      *claim_limit = "Lifetime Claim Limit 500000\n";
      break;

    default:
      result = -1;
      break;
    }

    break;
  case 'B':
    //...

  case 'C':
    //...

  default:
    result = -1;
    break;
  }

 return result;

}


int main()
{
  const char * plane[]  = { "A1", "K3", "A2" }; -- test planes

  for ( size_t n=0; n<sizeof(plane) / sizeof(plane[0]); ++n)
  {
    const char * description, * claim_limit;
    if ( get_description( plane[n], &description, &claim_limit) == 0)
    {
      printf("plane %s: %s%s", plane[n], claim_limit, description);
    }
    else
    {
      printf("unknown plane %s\n", plane[n]);
    }
    printf("\n");
  }
  return 0;
}


Shao Voon Wong

Мои 5!

CPallini

Большое спасибо!

Рейтинг:
1

OriginalGriff

Это не служба преобразования кода: мы здесь не для того, чтобы переводить код для вас.
Даже если бы мы это сделали, то в конечном итоге вы получили бы не "хороший код" на целевом языке – они основаны на очень разных фреймворках, и то, что заставляет что-то работать на одном языке, не всегда "переводится" непосредственно на другой.
Таким образом, вы получаете очень плохой код, который трудно, если не невозможно поддерживать, который не может быть хорошо обновлен, и это вызовет у вас огромную головную боль, если оригинал будет изменен. И это будет кошмар для отладки, если он не будет работать "прямо из коробки".
Вместо этого используйте исходный код в качестве спецификации для нового приложения, написанного на целевом языке / фреймворке, и напишите его с нуля, используя оригинал в качестве "шаблона". Вы получите гораздо, гораздо лучший результат, который сэкономит вам много времени в долгосрочной перспективе.


Рейтинг:
0

KarstenK

Вам нужно выучить язык Си из какого-нибудь учебника, например Учитесь С.

вам нужно понять некоторые отличия от Python:
- C-это другой язык, поэтому у вас есть другие ключевые слова, такие как if и else
- C имеет parenthis правила формы фигурных скобок и не фигурных скобок
- C не имеет классов, поэтому вам нужно перекодировать обработку строк полностью