Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конструирование.doc
Скачиваний:
3
Добавлен:
22.08.2019
Размер:
182.78 Кб
Скачать

1 Дублирование (числа, температура)

Задача 9

Решите следующую задачу, используя одномерный массив: прочитайте 10 целых чисел. После того как прочли очередное число, напечатайте его, но только в том случае, если оно не дублирует ранее прочитанные числа. Предусмотрите случай, когда все числа различны.

 

#include<conio.h>

#include<iostream.h>

int main()

{

int mas[10];

for (int i=0;i<10;i++)

{int k(0);

cout<<"mas["<<i<<"]=";

cin>>mas[i];

for (int j=0;j<i;j++)

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

if (k==0) cout<<endl<<mas[i]<<endl;

}

getch();

return 0;

}

Тест 9

Введите

1 2 3 4 5 5 4 3 2 1

Ответ

1 2 3 4 5

Задача

Вводятся показания температуры воздуха за первую декаду месяца. Выведите на экран показатели, не дублируя одинаковую температуру. Предусмотрите случай, когда все числа различны.

( Использовать одномерный массив)

 

#include<conio.h>

#include<iostream.h>

int main()

{

int mas[10];

for (int i=0;i<10;i++)

{int k(0);

cout<<"mas["<<i<<"]=";

cin>>mas[i];

for (int j=0;j<i;j++)

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

if (k==0) cout<<endl<<mas[i]<<endl;

}

getch();

return 0;

}

 

 

 

способ 2

  #include "stdafx.h" #include <conio.h> #include <iostream>

using namespace std;

int main() {  setlocale(LC_ALL,"Russian");  int mas[10],mas2[10],c(0);  for (int i=0;i<10;i++)  {   int k(0);   cout<<"mas["<<i<<"]=";      cin>>mas[i];      for (int j=0;j<i;j++)    if(mas[i]==mas[j]) k++;   if(!k) mas2[c++]=mas[i];  }  cout<<"Показатели температуры без дублирования значений:"<<endl;  for(int i=0;i<c;i++) cout<<mas2[i]<<" ";*/  int mas[10];  for (int i=0;i<10;i++)  {int k(0);  cout<<"mas["<<i<<"]=";  cin>>mas[i];  for (int j=0;j<i;j++)   if (mas[i]==mas[j]) k++;  if (k==0) cout<<mas[i]<<endl;  }  getch();  return 0; }

2 Миним и макси (произведение, количество)

Задача10

В одномерном массиве, состоящем из 10 вещественных элементов, вычислить:

произведение элементов массива, расположенных между максимальным и минимальным элементами.

 

#include <iostream.h>

#include <conio.h>

void main()

{

int i,k,l, n;

double p=1, max,min;

double mas[10]={5,6,-3,6,-14,16,11,19,0,4};

max=mas[0] ;

min=mas[0] ;

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

{ cout<<"mas[i]="<<mas[i]<<endl;

if(mas[i]>max) {max=mas[i]; k=i;}

if(mas[i]<min) {min=mas[i]; l=i;} }

cout<<" max="<<max;

cout<<" min="<<min;

cout<<endl;

if (k>l) {n= k;k=l;l=n; }

for(i=k+1;i<l;i++)

p=p*mas[i];

cout<<"\nproizvedenie="<<p<<endl;

getch();

}

Тест 10

Введите

0.1        0.2 0.3 0.4 0.5 5 4 3 2 1

Ответ

0,012

Введите

1             2 3 4 5 0.5 0.4 0.3 0.2 0.1

Ответ

0.012

Задача

Дана таблица показателей выработки продукции за месяц. Посчитать количества дней, в которые выработка была больше минимального и меньше максимального значения.

#include <iostream.h>

#include <conio.h>

void main()

{int i,k,l, n;

double p=0, max,min;

double mas[10]={5,34,-3,6,-14,16,11,1,0,4};

max=mas[0] ;

min=mas[0] ;

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

{

cout<<"mas[i]="<<mas[i]<<endl;

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

if(mas[i]<min) {min=mas[i]; } }

cout<<"max= "<<max;

cout<<" min= "<<min;

cout<<endl;

;

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

if (mas[i]< max && mas[i]>min) {p++;}

cout<<"\day="<<p<<endl;

getch();

}

 

 

способ 2

#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std;

int _tmain(int argc, _TCHAR* argv[]) {  setlocale(LC_ALL,"Russian");  int days=0;  double max,min;  double mas[10]={5,34,-3,6,-14,16,11,1,0,4};  max=mas[0];  min=mas[0];  for(int i=0;i<10;i++)  {     cout<<mas[i]<<" ";     max=mas[i]>max?mas[i]:max;     min=mas[i]<min?mas[i]:min;  }  cout<<endl<<"max="<<max<<endl;  cout<<"min="<<min<<endl;  for(int i=0;i<10;i++)   if (mas[i]>min && mas[i]<max) days++;  cout<<"Число дней: "<<days<<endl;  getch();  return 0; }