Программирование одномерных масивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование одномерных масивов



4.3.1Описание одномерного массива

 

<тип> v1[k1], v2[k2], …, vn [kn],

 где vi – имя массива,

 ki – целая константа, указывающая размер массива

0 – (k-1)

Например

int p[[5], n=0, d[12];

float x[20], f, z[50], t=-1;

 

x[i]         x[0] x[i+6]   

        .

4.3.2 Ввод значений элементов массива

- С помощью клавиатуры

for(i=0; i<n; i++)

{

printf(“a[ %d ]=”, i+1);

scanf(“%f “, &a[i]);

}

 

- С помощью датчика случайных чисел  

 

# include <stdlib.h>

 

for(i=0; i<n; i++)

a[i]=20+5.0*rand()/RAND_MAX;или a[i]=0.001*rand();

- С помощью формул расчета

for(i=0; i<n; i++)

a[i]=k1*sin(k2*i)-k3*sqrt(k4*i);

4.3.3 Инициализация одномерных массивов.

v[k]={c1,c2,…cm }; m≤k

int s[6]={-1,5,-7,11,8,9};  s[0]=-1,s[5]=9;

int r[ ]={5,9,-1,7,-5};

4.3.4 Вывод (печать) элементов массива

for(i=0; i<n; i++)

printf(“%6.2f”, a[i]);       в строку

 

for(i=0; i<n; i++)

printf(“\n%6.2f”,a[i]);       в столбец

Пример 4.3   

Задан исходный массив А из n-элементов (n≤100).

 Определить М=(Аmax + Аmin)/2.

 

 

 


 


int main()

int i,n;

float a[100],m,amax,amin;

printf (“Укажите длину массива n”);

scanf(“%d”, &n);

printf (“Введите элементы массива ”);

for(i=0; i<n; i++)

scanf(“%f“, &a[i]);

 

for(i=0; i<n; i++)

printf(“%8.2f _”,a[i]);

 

amax =-1000;

amin =1000;

for(i=0; i<n; i++)

{

if(a[i] > amax) amax =a[i];

if(a[i] < amin) amin =a[i];

}

m=(amax - amin)/2;

printf(“\n m=%8.3 \n”,m);

return 0;

}

 

Контрольные вопросы для самопроверки

1. Что такое массив?

2. Что такое индекс, какую роль выполняет?

3. Как выполняется нахождение суммы элементов массива?

4. Как выполняется нахождение произведения элементов массива?

5. Как выполняется нахождение минимального элемента массива?

6. Как выполняется нахождение максимального элемента массива?

7. Как осуществляется взаимозамена двух элементов массива?

8. Как осуществляется удаление элемента из массива?

9. Как выполняется описание одномерного массива?

10. Как осуществляется ввод значений элементов массива с помощью клавиатуры?

11. Как осуществляется ввод значений элементов массива с помощью датчика случайных чисел?

12. Как осуществляется инициализация одномерных массивов?

13. Как осуществляется вывод (печать) элементов   массива?

 

4.4 Преобразование одномерных массивов

Пример 4.4

Задан массив действительных чисел Х размером 20 элементов.

Удалить из него все отрицательные элементы.


Текст программы

 

 int main()

 {

float a[20];

int n,i,j,ku;

n=20;

 

for (i=0;i<n;i++)

{

a[i]=-20+0.001*rand();

printf("%6.1f",a[i]);

}

ku=0;

for (i=n-1; i>=0; i--)

if(a[i]<0)

  {ku++;

   for(j=i; j<n-1; j++)

   a[j]=a[j+1];

   }

printf("\n");

printf("\n");

for (i=0;i<n-ku;i++)

printf("%6.1f",a[i]);

return 0;

}


Пример 4.5

Заданы массивы A размером n и B размером m.

Перенести в массив C те элементы массива A, которые не входят в массив B

 


Текст программы

int main()

 {

  int a[30],b[30],c[30];

int n,i,m,j,k,l=0;

 

 printf("\n введите размер массив А");

 scanf(“%d”,&n);

 

printf("\n массив А");

for (i=0;i<n;i++)

{

a[i]=0.005*rand();

printf(" %5d",a[i]);

}

 

 printf("\n введите размер массив B ");

 scanf(“%d”,&m);

 

printf("\n массив B");

for (i=0;i<m;i++)

{

b[i]= 0.005*rand();

printf("%5d",b[i]);

}

for (i=0;i<n;i++)

{

k=0;

for (j=0;j<m;j++)

if (a[i]==b[j]) k++;

if (k>0){c[l]=a[i];l++; }

}

 

printf("\n массив C");

 

 for (i=0; i<l;i++)

 printf(" %5d",c[i]);

return 0;

}

 

 

Пример 4.6

Цикл для перебора первого сравниваемого элемента массива A
Задан массив A размером n. Перенести в массив C те элементы массива A, которые повторяются 2 и более раз.

 


Текст программы

 

int main()

 {

 int a[30],c[30];

 int n,i,m,j,k,l=0,pr;

 printf("\n введите размер массив А");

 scanf(“%d”,&n);

 

for (i=0;i<n;i++) 

scanf(“%d”,&a[i]);

 

printf("\n массив А");

for (i=0;i<n;i++)

printf("%4d",a[i]);

 

for (i=0;i<n;i++)

{

k=0;

for (j=0;j<n;j++)

if (a[i]==a[j]) k++;

if (k>=2){pr=0;

      for (j=0;j<l;j++)

        if(c[j]==a[i]) pr=1;

if (pr==0

)

{c[l]=a[i]; l++; }}

}

printf("\n массив C");

for (i=0; i<l;i++)

printf(" %5d",c[i]);

return 0;

}

Пример 4.7    

Задан массив действительных чисел Х размером 20 элементов.

Передвинуть его элементы влево циклическим сдвигом так,

чтобы максимальный элемент занял первое место.

 

 

 

 


int main()

 {

float a[40],max, dop;

int n,i,k,nmax;

n=6;

for (i=0;i<n;i++)

  {

a[i]=-10+0.001*rand();

printf("%5.1f",a[i]);

}

 max=-1000;

 for (i=0;i<n;i++)

 if(a[i]>max) { max=a[i];nmax=i; }

printf("\n max=%6.1f nmax=%d",max,nmax);

for(k=1; k<=nmax; k++)

{

dop=a[0];

for (i=0; i<n-1; i++)

a[i]=a[i+1];

a[n-1]=dop;

}

printf("\n");

for (i=0;i<n;i++)

printf("%6.1f",a[i]);

return 0;

}

 

 

Многомерные массивы

4.4.1 Описание многомерных массивов.

Язык Си позволяет объявлять многомерные массивы. Самым простым из многомерных массивов является двумерный массив. Можно сказать, что двумерный массив - это массив из одномерных массивов.



Поделиться:


Последнее изменение этой страницы: 2021-04-04; просмотров: 51; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.56.45 (0.021 с.)