почему «long int` не работает на turbo c

#c #data-structures #long-integer #unsigned #turbo-c

#c #структуры данных #длинное целое число #неподписанный #турбо-с

Вопрос:

Наш учитель требует, чтобы мы использовали turbo c в наших заданиях. Программа отлично работает с другими приложениями компилятора, но не с turbo c. Вот код:

 #includelt;stdio.hgt;   struct Name {  char last[100];  char first[100]; };  struct Address {  char province[100];  int zipCode; };  struct PBEntry {  struct Name name;  struct Address address;  int age;  long int mobile; }pb[10];  void showAll(struct PBEntry *p, int SIZE);   int main() {    int choice = 1, SIZE=0, c=0, j;  clrscr();  printf("Welcome to Phonebook Applicationn");  while(choice != 4 )  {  struct PBEntry *p;  struct PBEntry edit[10];      printMenu();  scanf("%d", amp;choice);    switch(choice)  {   case 1:   printf("Enter Entry %dn", SIZE);  printf("Enter full name: ");  gets(pb[SIZE].name.first);   gets(pb[SIZE].name.last);  printf("Enter province: ");  gets(pb[SIZE].address.province);  printf("Enter ZIP code: ");  scanf("%d", amp;pb[SIZE].address.zipCode);  printf("Enter age: ");  scanf("%d", amp;pb[SIZE].age);  printf("Enter mobile number: ");  scanf("%ld", amp;pb[SIZE].mobile);  SIZE  ;  break;    case 2:  printf("What entry number to edit?: ");  scanf("%d", amp;j);  printf("Change Entry %dn", j);  printf("Change full name: ");  gets(pb[j].name.first);   gets(pb[j].name.last);  printf("Change province: ");  gets(pb[j].address.province);  printf("Change ZIP code: ");  scanf("%d", amp;pb[j].address.zipCode);  printf("Change age: ");  scanf("%d", amp;pb[j].age);  printf("Change mobile number: ");  scanf("%ld", amp;pb[j].mobile);  c  ;    case 3:   showAll(pb, SIZE);   break;    case 4:   exit(0);    }  }     getch();  }    void showAll(struct PBEntry *p, int SIZE) {  struct PBEntry edit[10];  int i=0, c=0;  while(i != SIZE)  {  if(cgt;0)  {    p = amp;edit;    printf("Entry %dn", i);  printf("Name: %s %sn", p[i].name.first, p[i].name.last);  printf("Province: %sn", p[i].address.province);  printf("ZIP code: %dn", p[i].address.zipCode);  printf("Age: %dn", p[i].age);  printf("Phone number: %ldn", p[i].mobile);  printf("n");    }  else  {    p = amp;pb;  {  printf("Entry %dn", i);  printf("Name: %s %sn", p[i].name.first, p[i].name.last);  printf("Province: %sn", p[i].address.province);  printf("ZIP code: %dn", p[i].address.zipCode);  printf("Age: %dn", p[i].age);  printf("Phone number: %ldn", p[i].mobile);  printf("n");    }  }  i  ;  } }    int printMenu() {  printf("n1. Add Entryn");  printf("2.Edit Entryn");  printf("3 Show Alln");  printf("4 Exitn"); }  

Наш номер телефона здесь состоит из 11 цифр или максимум 12. Но длинный int и даже неподписанный lont in не работают на turbo c. Я не знаю, где я ошибся.

Комментарии:

1. Может быть, представить номер телефона в виде строки?

2. Обычный int в Turbo C 16-разрядный, а длинный int 32-разрядный. Лучше используйте строку.

3. Кроме того, просто чтобы вы знали: у вас будет много других проблем с этим компилятором, который серьезно устарел. Удачи.

4. Телефонные номера могут начинаться с нуля, даже больше единицы, и целые числа не могут содержать эту информацию.

5. Не используйте инструменты, которые старше вас. Но я полагаю, что ваша школа сказала вам использовать Turbo C по какой-то неясной причине.