#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 по какой-то неясной причине.