C_Kurs_Lekt / C_II_семестр / Примеры работы с массивами
.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;