КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Массивы числовых данных
Замечание Int I; Int I; Примеры
Foat x; Char name[50]; Scanf(“%d %f %s”, &i, &x, name); Вводим строку = 25 54.32е-1 Thompson В результате получим I=25; x=54.32*10-1; name= Thompson (к строке Thompson автоматически будет добавлен признак конца строки)
Foat x; Char name[50]; Scanf(“%2d %f %*d %2s”,&i, &x, name); Вводим строку = 56789 0123 45a72 В результате получим I=56; x=789.0; name= 45;
При разработке программ рекомендуется по возможности реже использовать функцию scanf, а пользоваться getc, gets и другими. Они более просты и выполняются с более быстрой скоростью.
При объявлении массива компилятор выделяет для него блок памяти, хранящий весь массив сразу. Отдельные элементы массива располагаются в памяти последовательно.
int array[10];
Большое значение имеет то, где именно в программе объявлен массив. Элементы массива можно использовать в любом месте программы, где допускается применение числовой переменной соответствующего типа. a[1]=89.97; a[5]=a[1]; Индекс может быть литерной константой или индексным выражением. В массиве из n элементов индексы находятся в диапазоне 0..n-1: float b[100]; int a[10]; b[i]=100; b[2+3]=10; b[a[2]]=100; Например если a[2]=8, то b[a[2]] это тоже что и b[8].
Пример: программа, осуществляющая ввод элементов в массив и вывод содержимого на экран. (для исключения нулевого элемента его просто игнорируют)
# include <stdio.h> float b[13]; int I; int main() { for (i=1; i<13; i++) { printf(“ Enter expenses for month %d:”, i); scanf(“%f”, &b[i]); } for (i=1; i<13; i++) { printf(“Month %d=$%.2f :”, i, b[i]); / %.2f указывает что должно выводится вещественное число с 2 цифрами после десятичной точки / } return 0; } Многомерные массивы В языке С допустимо использование массивов с неограниченным количеством измерений. int с[4][5]; int aaa[10][2][3][10]; При объявлении массива количество элементов можно указать литерной константой или символической константой, созданной с помощью директивы #define. #define n 12; int array[n]; это эквивалентно объявлению int array[12]; Инициализация массивов
При объявлении массива можно инициализировать его полностью или частично. int a[4] = {100, 200, 300, 400}; перечисленные в списке значения присваиваются в порядке, начиная с нулевого. Если не указать длину массива при инициализации компилятор создаст массив такой длины, что бы поместились все начальные значения. int a[] = {100, 200, 300, 400}; Допускается возможность указать меньшее количество начальных значений, тогда неинициализированные элементы будут равны 0 (не всегда использовать с осторожностью). int b[10]={1, 3, 6}; Инициализация многомерных массивов осуществляется аналогичным способом: int a[4][3]={1, 2, 3, …, 12} или int a[4][3]={{1, 2, 3},{4, 5, 6},{7, 8, 9},{10, 11, 12}};
Пример: программа создающая 3-х мерный массив из 1000 элементов целого типа и заполняет его случайными числами. Программа выводит элементы созданного массива на экран по 100 элементов. #include <stdio.h> #include <stdlib.h> int R[10][10][10]; int a, b, c; int main() { for (a=0; a<10; a++) for (b=0; b<10; b++) for (c=0; c<10; c++) R[a][b][c]=rand(); for (a=0; a<10; a++) { for (b=0; b<10; b++) { for (c=0; c<10; c++) printf (“ R[%d][%d][%d] = %d”, a, b, c, R[a][b][c]); printf(“ ”); } printf(“ Press enter”); getchar(); } return 0; }
Максимальный размер массива не должен быть больше 64 Кбайт. Размер зависит от количества элементов в массиве и от типа каждого элемента. float b[500] потребуется 500*4=2000 байт Оператор sizeof определяет длину переменной любого типа в т.ч. и массивов. sizeof[b]=2000;
Дата добавления: 2014-01-14; Просмотров: 416; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |