Помогите пожалуйста написать программу в С или С++. Пользователь вводит число q и последовательность ненулевых целых чисел до нуля, необходимо сохранить
5-9 класс
|
их в массив и вычислить их медиану.
#include <iostream>
#include <cstdlib>
using namespace std;
void Shell(int *a,int n){
int i,j,step,t;
step=n/2;
while (step>0){
for(j=n-step;j>=1;j--){
i=j;
while (i<=(n-step)) {
if (a[i]>a[i+step]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
i+=step;
}
}
step/=2;
}
}
int main() {
int i,q,k;
float m;
cout<<"Vvedite q: ";
cin>>q;
int a[q+1];
// ввод
for (i=1; i<=q; i++){
cout<<"Vvedite "<<i<<"-e chislo massiva a: ";
cin>>a[i];
}
Shell(a,q); // сортировка
k=q/2;
if (q==2*k)
m=(a[k]+a[k+1])/2;
else
m=a[k];
cout<<"\nMediana="<<m;
return 0;
}
Тестовое решение:
Vvedite q: 10
Vvedite 1-e chislo massiva a: 3
Vvedite 2-e chislo massiva a: 0
Vvedite 3-e chislo massiva a: -5
Vvedite 4-e chislo massiva a: 3
Vvedite 5-e chislo massiva a: 2
Vvedite 6-e chislo massiva a: 7
Vvedite 7-e chislo massiva a: -1
Vvedite 8-e chislo massiva a: 4
Vvedite 9-e chislo massiva a: 9
Vvedite 10-e chislo massiva a: 6
Mediana=3
--------------------------------
Process exited after 34.48 seconds with return value 0
Для продолжения нажмите любую клавишу . . .
Другие вопросы из категории
1110 десятичное перевести в двоичную
1011 двоичная перевести в десятичную
111101 двоичная перевести в десятичную
Помогите пожалуйста ! Срочно! Заранее спасибо !
Читайте также
Составьте программу, которая формирует массив из 40 случайных целых чисел от 0 до 20 и вычисляет:
1). сумму чисел, не превышающих 10;
2). сумму чисел,кратных 3. Помогите пожалуйста,написать эту программу на PaskalABC.
Если дано трехзначное число, например 123 его можно представить в виде 3+2*10+1*10*10. Воспользовавшись этой информацией, создайте программу, которая, получая от пользователя трехзначное число, будет определять из каких цифр оно состоит и выводить их через пробел (например, 1_2_3).
1)Написать программу которая меняет местами числа a и b(линейная и оператор присваивания)
2)Программа проверки существования треугольника по его 3 сторонам
Напишите пожалуйста***
ввести 3 значное число и находит сумму его цифр.
2. Написать программу, которая предлагает ввести 3 значное число и меняет порядок цифр наоборот. (123- 321)
3.Написать программу, которая предлагает ввести три числа с клавиатуры, находит их сумму, произведение и среднее арифметическое.
Ответ пользователя проверяется и комментируется. Должен быть random)Спасибо!