2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 помогите с Си
Сообщение14.11.2008, 18:27 
Аватара пользователя
правильно ли инициализируется массив?
Код:
long  ports[N][N]={
0,2008,5344,5799,1892,5943,2126,3358,8305,8362,10011,8040,9089,8467,8985,14315,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
2008,0,4136,4488,1814,4628,777,2131,6969,7015,8689,8619,9694,10302,10879,16206,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
5344,4136,0,1516,5617,993,3313,2405,2914,3074,4522,7838,8943,13591,14180,19462,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
5799,4488,1516,0,5758,2347,3461,2698,4717,4779,6418,9181,10223,14035,14513,19819,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
1892,1814,5617,5758,0,6136,2291,3532,8567,8591,10243,9520,10545,8465,9274,14560,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
5943,4628,993,2347,6136,0,3890,2860,3902,3922,5548,7520,8258,14422,14758,19850,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
2126,777,3313,3461,2291,3890,0,1408,6274,6335,7965,8027,9362,10630,11051,16273,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
3358,2131,2405,2698,3532,2860,1408,0,5327,5362,6991,7587,8491,11654,12313,17560,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
8305,6969,2194,4717,8567,3902,6274,5327,0,2024,1709,10762,11953,16737,17158,22408,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,6100,
8362,7015,3074,4779,8591,3922,6335,5362,2024,0,3464,10753,11959,16724,17100,22416,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
10011,8689,4522,6418,10343,5548,7965,6991,1709,3464,0,12448,13693,18438,18773,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,5341,
8040,8619,7838,9181,9520,7250,8027,7587,10762,10753,12448,0,1066,11919,12031,14247,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
9089,9694,8943,10223,10545,8258,9362,8491,11953,11959,13693,1066,0,12866,12962,14922,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
8467,10302,13591,14035,8465,14422,10630,11654,16737,16724,18438,11919,12866,0,682,6219,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
8985,10879,14180,14513,9274,14758,11051,12313,17158,17100,18773,12031,12962,682,0,5644,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,
14315,16206,19462,19819,14560,19850,16273,17560,22408,22416,24106,14247,14922,6219,5644,0,3604,7933,8086,8347,7657,8282,8503,8996,9992,10712,11300,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,3604,0,5831,8934,9197,5406,5600,5734,6327,7280,8101,8518,8111,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,7933,5831,0,7688,8141,509,2226,2208,2547,3573,4378,5014,4583,1029,1323,1599,3447,0,3584,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,8086,8934,7688,0,349,7854,9414,9383,9795,10783,11552,12191,11812,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,8347,9197,8141,349,0,8156,9752,9694,10092,11075,11882,12489,12158,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,7657,5406,509,7854,8156,0,1776,1699,2007,3093,3826,4444,4082,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,8282,5600,2226,9414,9752,1776,0,788,1167,2250,2974,3601,3246,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,8503,5734,2208,9383,9694,1699,788,0,402,1451,2119,2826,2499,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,8996,6327,2547,9795,10092,2007,1167,402,0,1089,1826,2439,2143,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,9992,7280,3573,10783,11075,3093,2250,1451,1089,0,726,1368,1049,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,10712,8101,4378,11552,11882,3826,2974,2119,1826,726,0,683,374,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,11300,8518,5014,12191,12489,4444,3601,2826,2439,1368,683,0,295,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,10934,8111,4583,11812,12158,4082,3246,2499,2143,1049,374,295,0,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,1029,0,369,659,2905,@,3213,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,1323,369,0,359,2619,@,2918,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,1599,659,359,0,2412,@,2622,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,3447,2905,2619,2412,0,612,1481,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,612,0,@,@,@,@,@,@,@,@,@,@,@,
@,@,@,@,@,@,@,@,6100,@,5341,@,@,@,@,@,@,3584,3213,2918,2622,1481,@,0,@,@,@,@,@,@,@,@,@,@,   
};


 
 
 
 
Сообщение14.11.2008, 20:51 
Аватара пользователя
А компилятор запустить лень или религия не позволяет?

 
 
 
 
Сообщение15.11.2008, 12:43 
Аватара пользователя
компилятор выдает такую ошибку


error C2018: unknown character '0x40'

 
 
 
 
Сообщение15.11.2008, 13:20 
Аватара пользователя
Правильно делает, что выдает. Что Вы имеете в виду под символом @? Его код, как раз 0x40. Если хотите ввести в массив это число, то так и пишите - x40 или '@'.

 
 
 
 
Сообщение15.11.2008, 13:20 
Аватара пользователя
Ну правильно. Это символ @. Это же не число, а инициализировать можно только числом.

Вторая ошибка может быть связана с тем, что объявлять можно только массивы заданной длины. Если N - константа, заданная, например, через #define или со спецификатором const, то все нормально. А если это переменная - тогда будет ошибка.

Кроме того, хотя таким образом массив инициализировать можно, но, по-моему, более правильно (наглядно) делать это списками значений, примерно так:
Код:
long MyArray[2][3] = {{1,1,1},{2,2,2}};

 
 
 
 
Сообщение15.11.2008, 16:00 
Аватара пользователя
спасибо

 
 
 
 
Сообщение17.11.2008, 17:22 
Аватара пользователя
никак не могу инициализировать массив строк :oops:
приведите пожалуйста пример

 
 
 
 
Сообщение17.11.2008, 17:25 
Аватара пользователя
Код:
char szStringArray[3][50] = {"abc", "", "123"};

 
 
 
 
Сообщение09.12.2008, 01:15 
Вопрос по поводу псевдослучайных чисел.
Псевдослучайные числа получаю с помощью rand().
Только если программу запускать опять, то генерируются ровно те же случайные числа, как этого избежать?

 
 
 
 
Сообщение09.12.2008, 01:41 
Аватара пользователя
Используйте функцию randomize для инициализации датчика.

 
 
 
 
Сообщение27.12.2008, 22:11 
PAV писал(а):
Вторая ошибка может быть связана с тем, что объявлять можно только массивы заданной длины. Если N - константа, заданная, например, через #define или со спецификатором const, то все нормально. А если это переменная - тогда будет ошибка.


С етим я не согласен, ведь на некоторых компиляторах ето можна делать,хотя и нерекомендуется.

 
 
 
 
Сообщение27.12.2008, 22:21 
Уважаемый Nerazumovskiy, а вот с этого места, пожалуйста, поподробнее: где можно познакомиться с таким компилятором с языка C++, который может поддерживать в объявлении массива динамическое выражение (в частности - переменную)?

 
 
 
 
Сообщение27.12.2008, 22:45 
DevCpp 4.9.9.2
Код:
int main(int argc, char *argv[])
{
   int n = 10;
   int a[n];
   return 1;
}

отлично все работает.

 
 
 
 
Сообщение27.12.2008, 23:00 
Nerazumovskiy в сообщении #172118 писал(а):
DevCpp 4.9.9.2
DevCpp — не компилятор. Компилятор — GCC (точнее серия компиляторов). DevCpp — это IDE, т.е костыли для тех, кто так и не смог после вижака научиться ходить.

 
 
 
 
Сообщение27.12.2008, 23:06 
Уважаемый Nerazumovskiy, я не вижу в вашем примере динамического выражения, а вижу всего лишь скрытое константное выражение, которое умный компилятор сумел распознать. Речь ведь идет совсем о другом:

Код:

void func(int n)
{
  int a[n];
...

}

 
 
 [ Сообщений: 22 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group