Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C_Kurs_Lekt / C_II_семестр / Примеры работы с массивами

.pdf
Скачиваний:
10
Добавлен:
13.02.2016
Размер:
52.98 Кб
Скачать

/* Пример работы с массивом - вектором */ #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;

Соседние файлы в папке C_II_семестр