- •Void main(void)
- •Void main(void)
- •Void main()
- •Void main()
- •Viod main()
- •Условные выражения
- •Void main()
- •If(Выраженне1) Выражение2;
- •If(Выражение1) Выраженпе2; else ВыражениеЗ;
- •Void main()
- •Циклические выражения
- •Void nain()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Массивы
- •Void main()
- •Void main()
- •Void main()
- •Viod main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Адреса и указатели
- •Void main()
- •Viod main()
- •Функции
- •Void main(void)
- •Void main(void)
- •Int I; double X,step();
- •Void decart(double r, double f)
- •Void main()
- •Void decart(double r,double f,double *X,double*y)
- •Void main()
- •Void rnain()
- •Void main()
- •Void main()
- •Void main()
- •Int length;
- •Объектно-ориентированное программирование и приложения с графическим интерфейсом
- •Void main(void)
- •Int MyFunc(int, int);
- •Void NewFunc(void);
- •Void main()
- •Void FuncOut();
- •Void prob::FuncOut()
- •Void main()
- •Void main()
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Int pascal
- •Int nCmdShow)
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Void __fastcall tForm1::okClick(tObject *Sender)
- •Int I,step;
- •Введение в численные методы
Void main()
{
int i=2;
double a[]={0.23,-1.45,2.04},
b [] ={-3.12.0.03,4.66}, c=0.0;
for(;i>=0;) c+=a[i]*b[i- -] ;
printf("c=%lf",c);
}
При задании компонентов массивов в описаниях присваиваемые значения перечисляются в фигурных скобках через запятую. Как видно из текста программы, в этом случае количество элементов в массиве - длину массива можно не указывать и в описании после имени массива оставить пустые прямые скобки. Действительно, количество инициализирующих значений внутри скобок {} автоматически задает длину массива. Если же вы укажете длину массива явно, а в инициализирующем списке напишете значений меньше, чем длина, то будут заданы первые элементы массива, а остальные останутся неопределенными.
Теперь рассмотрим следующую задачу. Сформируем два массива целых чисел по 100 элементов в каждом. Заполним массивы случайными целыми числами в диапазоне от 0 до 500. Выведем на экран номера (индексы) и значения попарно совпадающих элементов массивов, продвигаясь по массивам "сверху вниз", то есть, начиная с последних элементов массивов. Задача может быть реализована следующей программой:
Void main()
{
const double f=l./32767*500;
int i,a[100],b[100];
for(i=0; i<100; i++)
{
a[i]=rand()*f;
b[i]=rand()*f;
}
for(; - -i>==0;) if(a[i]==b[i])
printf("a[%d]=b[%d]=%d \n",i,i,a[i]);
}
Сначала в программе задается глобальная вещественная константа f, которая, будучи умноженной на функцию rand(), дает вещественное случайное число в нужном диапазоне. В первом цикле for элементам массивов а и b придаются случайные значения. Поскольку массивы описаны как целые, правые части выражений присваивания автоматически будут приведены к целому типу. Если же вы (как и ваш покорный слуга) с трудом переносите такое вольное обращение с типами данных, то пишите a[i]=(int) (rand()*f). Программа от этого ничего не потеряет, хотя ровным счетом ничего и не приобретет. Из первого цикла программа выходит при значении i, равном 100. Следующий цикл должен просматривать массивы, начиная с 99-х элементов. В этой связи в проверке условия в цикле используется предварительная декрементация переменной i. Напомним, что выражение - -i>=0 сначала уменьшает i на единицу, а затем производит сравнение уменьшенного значения с нулем.
До сих пор мы говорили о числовых массивах. Массивы, однако, как и простые переменные, могут быть произвольного типа. Определенные особенности имеют место для символьных массивов. В этой связи остановимся на массивах типа char более детально.
В принципе обращение с символьными массивами может ничем не отличаться от обращения с числовыми массивами. Вот пример инициализации массива символов путем ввода значения каждого элемента с клавиатуры:
Viod main()
{
char a[5],z; int i;
for(i=0; i< 5; i++) scanf(“%c".&z); a[i]=z;
}
Инициализация при описании тоже может быть выполнена обычным образом:
Void main()
{
char s[]={'a’,’b’,’c’};
printf("%c",s[2]);
}
Напомним, что символьная константа есть это символ, заключенный в апострофы. В результате работы этой программы на экран будет выведен символ с.
Теперь обратим внимание на смысл понятия "массив символов". Это ведь не что иное, как строка в самом житейском понимании. Не правда ли? Такая интерпретация символьных массивов породила в языке С некоторые особые моменты. Начальная инициализация строки при описании, наряду со стандартным способом, может быть выполнена несколько проще: