|
|
|
новичок
      
участник
Last Login: 02.11.2006 15:23
Сообщ.: 3,
Visits: 8
|
|
объясните плз как работает массив в "С"(подробно!) вот пример#include <stdio.h> #include <conio.h> #define eof -1 #define maxind 10 // kol.elementov massiva _ _ _ _ _ _ _ _ _ _ _ _ _ int main() { int c,i ; int nd[maxind]; for(i=0; i<MAXIND; i++) nd[i]=0; printf("Enter srting"); while((c=getchar()) !=eof) if(c>='0' && c <='9') ++nd[c-'0']; // nakopplenie v s4iot4ike printf("Num.of dig. are:"); for(i=0 ; i<MAXIND; i++) printf ("for i=%d num. of dig. are",i, nd[i] ) ; getch(); } Программа высчитывает сколько раз повторяются введенные символы.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.03.2008 15:26
Сообщ.: 701,
Visits: 7 028
|
|
Это что за хрень??????????int main() { int c,i ;
int nd[maxind];
for(i=0; i nd[i]=0; <- ... где хотя-бы окончание ?
printf("Enter srting");
while((c=getchar()) !=eof)
if(c>='0' && c <='9') ++nd[c-'0']; // nakopplenie v s4iot4ike printf("Num.of dig. are:");
for(i=0 ; i printf ("for i=%d num. of dig. are",i, nd[i] ) ; <-... скобки закрывающие считать умеешь? Say nothing about construction! getch(); }
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Silver (01.11.2006) Это что за хрень??????????Это глюк форума. Я уже исправил текст оригинального вопроса.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 30.03.2008 17:43
Сообщ.: 247,
Visits: 2 370
|
|
Как работает массив подробно почитай в книжке (Страуструпа, например), да для данного примера это и не нужно. Не копировать же сюда главу.
Основная суть программы - предположение, что символы идут по порядку в кодовой таблице от '0' до '9', ну а символ в с - это все равно что его код. И каким бы не был код '0' - '0' всегда даст 0, '1' - '0' - 1 и так далее. Т.е. это типа скоростной способ преобразования символа в число. Кстати делать так не рекомендуется, так как в случае когда коды символов цифр в таблице идут не по порядку (я такой не встречал) программа работать перестанет. В примере объявляется массив счетчиков и часть с - '0' - преобразует символ в число, получая индекс счетчика ну а потом счетчик наращивается. Более понятно наверное будет так:
int charIndex = c - '0';
if((charIndex>=0) && (charIndex <=9))
nd[charIndex] = nd[charIndex] + 1;
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.03.2008 15:26
Сообщ.: 701,
Visits: 7 028
|
|
bazile (01.11.2006)
Silver (01.11.2006) Это что за хрень??????????Это глюк форума. Я уже исправил текст оригинального вопроса. Приношу автору топика свои извинения!
|
|
|
|
|
новичок
      
участник
Last Login: 02.11.2006 15:23
Сообщ.: 3,
Visits: 8
|
|
to VADIM IQ
Скинь плз ссылку или текст на форум.Я не доганяю как работает массив!
|
|
|
|
|
новичок
      
участник
Last Login: 02.11.2006 15:23
Сообщ.: 3,
Visits: 8
|
|
| При запуске кода на С++Билдер пишет что не может найти borlnddmm.dll файл хотя он есть,что делать.Плз скинте ссылку с работающей программой турбо С.
|
|
|
|