Практическое занятие №6. Обработка массивов.
//Найти два наибольших числа в массиве
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10];
int i, n,fi,se;
printf("Vvesti massiv thisel\n");
for(i=1;i<=10;i++)
scanf("%i",&a[i]);
if (a[1]>a[2]) {fi=a[1];se=a[2];}
else {fi=a[2];se=a[1];}
for (i=3;i<=10;i++)
if (a[i]>fi) {se=fi;fi=a[i];}
else if(a[i]>se) se=a[i];
printf("%i %i\n",fi,se);
system("pause");
return 0;
}
//Написать программу вычисления среднего
//значения элементов массива
#include <stdio.h>
#include <stdlib.h>
Int main()
{
int i;
const int n=10;
int a[n]={1,3,-5,1,-2,1,-1,3,8,4};
for (i=0; i<n; i++)
printf("%i ",a[i]);
int s=0;
for (i=0;i<n;i++)
s+=a[i];
s=s/n;
printf("S=%i\n",s);
system("pause");
return 0;
}
//
//1 3 -5 1 -2 1 -1 3 8 4
//S=1
//Написать программу вычисления среднего значения
// элементов массива
// и срене квадратического отклонения
// Среднее значение вычисляется по формуле
//
// Xcр= S Хi
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
Int main()
{
int i;
const int n=10;
int a[n]={1,3,-5,1,-2,1,-1,3,8,4};
for (i=0; i<n; i++)
printf("%i ",a[i]);
float s=0,r=0,d;
for (i=0;i<n;i++)
{ s+=a[i];
r+=a[i]*a[i];}
d= n*r-s*s;
s=s/n;
d=pow(d,0.5)/n;
printf("S=%f D= %f \n",s,d);
system("pause");
return 0;
}
//
//1 3 -5 1 -2 1 -1 3 8 4
//S=1.3 D=3.37
//Инициация массивов с помощью генератора случайных чисел
//и нахождение коэффициента корреляции между двумя рядами.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define n 15
Int main ()
{
int i,sx,sx2,sy,sy2,sxy,x[n],y[n];
for (i=0;i<n; i++)
{x[i]=rand()/3276;y[i]=rand()/3276;}
float r;
sx=sy=sx2=sy2=sxy=0;
for (i=0;i<n; i++)
{
sx+=x[i];
sy+=y[i];
sx2+=x[i]*x[i];
sy2+=y[i]*y[i];
sxy+=x[i]*y[i];
}
r=(n*sxy-sx*sy)/pow((n*sx2-sx*sx)*(n*sy2-sy*sy),0.5);
printf(" R= %f\n",r);
system("pause");
return 0;
}
// R= 0.21
//Cортировка массива методом пузырька
#include <stdio.h>
#include <stdlib.h>
int main(void){
int n;
printf("Enter N=\n");
scanf("%i",&n);
int i,j,a[n],s;
for (i=0;i<n; i++) a[i]=rand()/327;
for(i=0;i<n;i++)
printf("%i ",a[i]);
printf("\n");
for (j=1;j<=(n-1);j++)
for (i=0; i<n-j; i++)
if(a[i]>a[i+1]) {
s=a[i+1];
a[i+1]=a[i];a[i]=s;}
qsort(n,a);
for(i=0;i<n;i++)
printf("%i ",a[i]);
system("pause");
return 0;
}
// Для сортировки массивов в С++ имеется специальная функция
//Cортировка массива методом выбора
//Дана последовательность чисел а
//Требуется рассортировать в
//порядке убывания.
//Для этого в массиве, начиная с первого,
//выбирается наибольший элемент и ставится на первое место,
//а первый на место наибольшего и т д.
#include <stdio.h>
#include <stdlib.h>
Int main(void){
int n;
printf("Enter N=\n");
scanf("%i",&n);
int i,j,a[n],s;
for (i=0;i<n; i++) a[i]=rand()/327;
for(i=0;i<n;i++)
printf("%i ",a[i]);
printf("\n");
for (i=0; i<n; i++)
for(j=i+1; j<n;j++)
if(a[i]>a[j]) {
s=a[i];
a[i]=a[j];a[j]=s;}
for(i=0;i<n;i++)
printf("%i ",a[i]);
system("pause");
return 0;
}
// Для сортировки массивов в С++ имеется специальная функция
// qsort();
//Cортировка массива методом выбора
//Дана последовательность чисел а
//Требуется рассортировать в
//порядке возростания.
//Для этого в массиве, берется следующее число
//и вставляется в последовательность, чтобы новая
//последовательность тоже была возростающей и т д.
#include <stdio.h>
#include <stdlib.h>