 
        
        C_Kurs_Lekt / DOC_RAZNOE / Примеры работы с массивами
.pdf/* Пример работы с массивом - вектором */ #include <stdio.h>
#include <conio.h> #include <stdlib.h>
| int main(){ | 
 | |
| 
 | int n=15,a ,b, i, S; | |
| 
 | int mas[15]; | /* выделение памяти под массив */ | 
| /* можно определять массив и сразу задать значения | ||
| */ | double mas[5]={12, 10, 11, 8, 17}; | |
| /* можно ввести значения с клавиатуры | ||
| 
 | for(i=0; i<N; i++) { | |
| 
 | printf("Введите mas[%d] элемент ", i); | |
| */ | } scanf("%d",&mas[i]); | |
| 
 | /* заполняем массив случайными целыми числами | |
| 
 | в интервале [a,b] */ | |
| 
 | a= -5; b= 24; | |
| 
 | /* randomize(); | |
| 
 | если хотим, чтобы последовательность | |
| 
 | случайных чисел не повторялась | |
| 
 | */ | 
 | 
| 
 | for(i=0;i<n;i++) mas[i]=a+random(b-a+1); | |
| 
 | clrscr(); | // очистка экрана | 
/* Печатаем значения массива (вектора) */
printf("Исходный массив\n");
for (i=0;i<n;i++) printf("%2d ", mas[i]); printf("\n");
/* Вычисление суммы */ S=0;
for (i=0;i<n;i++) S=S+mas[i];
/* Вычисление суммы. Фрагмент "переписанный на С" for (S=i=0;i<n;S+=mas[i],i++) ;
*/
printf("сумма = %d\n", S); getch();
}return 0;
| /* Пример работы с массивом – вектором (динамическое выделение памяти) */ | ||
| #include <stdio.h> | 
 | |
| #include <conio.h> | 
 | |
| #include <stdlib.h> | 
 | |
| int main(){ | 
 | 
 | 
| int n, a , b, i, S; | ||
| int mas[15]; | /* выделение памяти под массив */ | |
| /* dmas - указатель на целое (число или массив). */ | ||
| int *dmas; | 
 | |
| clrscr(); | // очистка экрана | |
| // запрашиваем размеры массива | ||
| printf(" n | =? "); | 
 | 
| scanf("%d", &n); | 
 | |
| /* выделяем память для массива и его начальный адрес | ||
| 
 | запоминаем в указателе. */ | |
| 
 | dmas=(int *)calloc(n, sizeof(int)); | |
| /* можно ввести значения с клавиатуры | ||
| 
 | for(i=0; i<N; i++) { | 
 | 
| 
 | printf("Введите mas[%d] элемент ", i); | |
| */ | } scanf("%d",&mas[i]); | 
 | 
| /* заполняем массив случайными целыми числами | ||
| 
 | в интервале [a,b] | */ | 
a= -5; b= 24;
/* randomize();
*/
если хотим, чтобы последовательность случайных чисел не повторялась
for(i=0;i<n;i++) dmas[i]=a+random(b-a+1);
/* Печатаем значения массива (вектора) */
printf("Исходный массив\n");
for (i=0;i<n;i++) printf("%2d ", dmas[i]); printf("\n");
/* Вычисление суммы */ S=0;
for (i=0;i<n;i++) S=S+dmas[i];
/* Вычисление суммы. Фрагмент "переписанный на С" for (S=i=0; i<n; S+=dmas[i],i++) ;
*/
printf("сумма = %d\n", S);
// освобождение памяти, выделенной для массива free(dmas);
getch(); }return 0;
| /* Пример работы с массивом - матрицей */ | 
 | 
 | ||||
| #include <stdio.h> | 
 | 
 | 
 | 
 | 
 | 
 | 
| #include <conio.h> | 
 | 
 | 
 | 
 | 
 | 
 | 
| #include <stdlib.h> | 
 | 
 | 
 | 
 | 
 | 
 | 
| int main(){ | 
 | 
 | 
 | 
 | 
 | 
 | 
| int n=5, m=6, a ,b, i, j, S; | 
 | под массив */ | ||||
| int mas2[5][6]; | /* выделение памяти | |||||
| /* можно определять массив и сразу | задать значения | |||||
| int mas2[5][6] = { {0, | 1, | 2, | 3, 4, | 5 | }, | |
| 
 | {10, | 11, 12, | 13, 14, | 15 | }, | |
| 
 | {20, | 21, 22, | 23, 24, | 25 | }, | |
| 
 | {30, | 31, 32, | 33, 34, | 35 | }, | |
| 
 | {40, | 41, 42, | 43, 44, | 45 | } }; | |
*/
/* можно ввести значения с клавиатуры for(i=0; i<n; i++)
for(j=0; j<m; j++) {
printf("Введите mas2[%d][%d] элемент ", i,j); } scanf("%d",&mas2[i][j]);
*/
*/
/* заполняем массив случайными целыми числами в интервале [a,b] */
a= -5; b= 24;
/* randomize();
*/
если хотим, чтобы последовательность случайных чисел не повторялась
for(i=0; i<n; i++)
for(j=0; j<m; j++) mas2[i][j]=a+random(b-a+1); clrscr(); // очистка экрана
/* Печатаем значения массива (матрицы)
*/printf("Исходный массив\n"); for (i=0;i<n;i++) {
for(j=0; j<m; j++) printf("%2d ", mas2[i][j]);
} printf("\n");
/* Вычисление суммы */ S=0;
for (i=0;i<n;i++) for(j=0; j<m; j++) S=S+mas2[i][j];
/* Вычисление суммы. Фрагмент "переписанный на С" for (S=i=0;i<n; i++)
for(j=0; j<m;S+=mas2[i][j], j++);
printf("сумма = %d\n", S); getch();
}return 0;
/* Пример работы с массивом – матрицей (динамическое выделение памяти) */ #include <stdio.h>
#include <conio.h> #include <stdlib.h> int main(){
int n, m, a ,b, i, j, S;
| /* dmas2 - указатель на указатель (указатель на массив). */ | |
| int ** dmas2; | 
 | 
| clrscr(); // очистка экрана | |
| // запрашиваем размеры массива | |
| printf(" n m =? "); | 
 | 
| scanf("%d%d",&n,&m); | 
 | 
| /* выделяем память для массива указателей. */ | |
| dmas2=(int **)calloc(n,sizeof(int *)); | |
| /* выделяем память для массивов-строк (построчно) и их начальные адреса | |
| запоминаем в массиве указателей. */ | |
| for (i=0; i<n;i++) | 
 | 
| dmas2[i]=(int *)calloc(m,sizeof( int )); | |
| /* можно ввести значения с клавиатуры | |
| for(i=0; i<n; i++) | 
 | 
| for(j=0; j<m; j++) { | 
 | 
| printf("Введите mas2[%d][%d] элемент ", i,j); | |
| } scanf("%d",&mas2[i][j]); | |
| */ /* заполняем массив случайными целыми числами | |
| в интервале [a,b] | */ | 
| a= -5; b= 24; | 
 | 
| /* randomize(); | 
 | 
| если хотим, чтобы последовательность | |
| случайных чисел не повторялась | |
*/for(i=0; i<n; i++)
for(j=0; j<m; j++) dmas2[i][j]=a+random(b-a+1); /* Печатаем значения массива (матрицы)
*/
printf("Исходный массив\n"); for (i=0;i<n;i++) {
for(j=0; j<m; j++) printf("%2d ",dmas2[i][j]);
} printf("\n");
/* Вычисление суммы */ S=0;
for (i=0;i<n;i++) for(j=0; j<m; j++) S=S+dmas2[i][j];
/* Вычисление суммы. Фрагмент "переписанный на С" for (S=i=0;i<n; i++)
for(j=0; j<m;S+=dmas2[i][j], j++); */ printf("сумма = %d\n", S);
// освобождение памяти, выделенной для массива for (i=0; i<n;i++) free(dmas2[i]); free(dmas2);
getch(); }return 0;
