1

Тема: Кількість

#include "StdAfx.h"
#include<conio.h>
#include <iostream>
#include <string>
#include<clocale>
using namespace std;
int kol(const int*M,const int size,int c)
{int  k=0;
    for(int i=0;i<size;i++)
    {
        if(M[i]>c)
            k++;
    }
return k;
}
int product(const int*M,const int size)
{int p=1, max=0,i_max=0;
    for(int i=0;i<size;i++)
    {
        if(max<abs(M[i]))
        {
            max=abs(M[i]);
        i_max=i;
        }
    }
    for(int i=i_max+1;i<size;i++)
    {

        p=p*M[i];

}
return p;
}
 void myFunction( int*M,const int n)
{

int neg_k=0,poz_k=0;
    int *m_neg;
    int *m_poz;
    //int *M;
    //int n=10;
          m_neg=new int [n];
m_poz=new int [n];
    int i,k,l;
for( i=0,k=0,l=0;i<n;i++)
{
    if(M[i]<0)
    {
    m_neg[k]=M[i];
    neg_k++;
    k++;
    }
        else
        {
        m_poz[l]=M[i];
        poz_k++;
        l++;
        }
}
for( k=0;k<neg_k;k++)
{
    M[k]=m_neg[k];
}
for( i=0;i<poz_k;i++)
{
    M[k]=m_poz[i];

    k++;

}



    
 }
int  main ()
{
    int n,c,kk=0;
    int pp=1,max=0,i_max=0;
    // int neg_k=0,poz_k=0;
    int *mas;
    //int *m_neg;
    //int *m_poz;
    int k,l,koli=1;
    char y='y';
    
    setlocale(LC_ALL,"Russian");
do 
    {
    cout<<endl<<koli<<"-й запус програми"<<endl;
    cout<<"Введите  размерность  масива "<<endl;
    cin>>n;
            koli++;
    if(n<=0)
        cout<<"не коректная   длина"<<endl;

    else
    {
    mas=new int [n];
    
        cout<<"Введите  элементы  масива "<<endl;
        for(int i=0;i<n;i++)
            cin>>mas[i];
        for(int i=0;i<n;i++)
            cout<<mas[i]<<" ";
        cout<<endl;
        cout<<"Введите с="<<endl;
        cin>>c; 
        cout<<"C="<<c<<endl;
        kk=kol(mas,n,c);
        cout<<"Количество элементов  больше  с="<<kk<<endl;


        pp=product(mas,n);
        cout<<"произведение  элементов  масива  после  мах= "<<pp<<endl;
        
        //koli++;
            myFunction(mas,n);
        cout<<endl;
        for(int i=0;i<n;i++)    cout<<mas[i]<<" ";

        cout<<"хотите  продолжить y/n"<<endl;
        cin>>y;
    }
    }
    while(y=='y');
    cout<<"Конец"<<endl;
   getch();
    return 0;

}

рахує   добуток  елментів   після  мак    але   якщо максимальний   стоїть  отсанім вводить   одиницю  як цього  позбутись

2

Re: Кількість

reywwe95 написав:
.
#include "StdAfx.h"
#include<conio.h>
#include <iostream>
#include <string>
#include<clocale>
using namespace std;
int kol(const int*M,const int size,int c)
{int  k=0;
    for(int i=0;i<size;i++)
    {
        if(M[i]>c)
            k++;
    }
return k;
}
int product(const int*M,const int size)
{int p=1, max=0,i_max=0;
    for(int i=0;i<size;i++)
    {
        if(max<abs(M[i]))
        {
            max=abs(M[i]);
        i_max=i;
        }
    }
    for(int i=i_max+1;i<size;i++)
    {

        p=p*M[i];

}
return p;
}
 void myFunction( int*M,const int n)
{

int neg_k=0,poz_k=0;
    int *m_neg;
    int *m_poz;
    //int *M;
    //int n=10;
          m_neg=new int [n];
m_poz=new int [n];
    int i,k,l;
for( i=0,k=0,l=0;i<n;i++)
{
    if(M[i]<0)
    {
    m_neg[k]=M[i];
    neg_k++;
    k++;
    }
        else
        {
        m_poz[l]=M[i];
        poz_k++;
        l++;
        }
}
for( k=0;k<neg_k;k++)
{
    M[k]=m_neg[k];
}
for( i=0;i<poz_k;i++)
{
    M[k]=m_poz[i];

    k++;

}



    
 }
int  main ()
{
    int n,c,kk=0;
    int pp=1,max=0,i_max=0;
    // int neg_k=0,poz_k=0;
    int *mas;
    //int *m_neg;
    //int *m_poz;
    int k,l,koli=1;
    char y='y';
    
    setlocale(LC_ALL,"Russian");
do 
    {
    cout<<endl<<koli<<"-й запус програми"<<endl;
    cout<<"Введите  размерность  масива "<<endl;
    cin>>n;
            koli++;
    if(n<=0)
        cout<<"не коректная   длина"<<endl;

    else
    {
    mas=new int [n];
    
        cout<<"Введите  элементы  масива "<<endl;
        for(int i=0;i<n;i++)
            cin>>mas[i];
        for(int i=0;i<n;i++)
            cout<<mas[i]<<" ";
        cout<<endl;
        cout<<"Введите с="<<endl;
        cin>>c; 
        cout<<"C="<<c<<endl;
        kk=kol(mas,n,c);
        cout<<"Количество элементов  больше  с="<<kk<<endl;


        pp=product(mas,n);
        cout<<"произведение  элементов  масива  после  мах= "<<pp<<endl;
        
        //koli++;
            myFunction(mas,n);
        cout<<endl;
        for(int i=0;i<n;i++)    cout<<mas[i]<<" ";

        cout<<"хотите  продолжить y/n"<<endl;
        cin>>y;
    }
    }
    while(y=='y');
    cout<<"Конец"<<endl;
   getch();
    return 0;

}

рахує   добуток  елментів   після  мак    але   якщо максимальний   стоїть  отсанім вводить   одиницю  як цього  позбутись

Контролюйте своє мовлення, будь-ласка: поважайте учасників Форуму. У тому числі стосується правопису та синтаксису: українська мова - не набір звуків, але поважна бандура.

3

Re: Кількість

ну         пропустив  кому і  описався   с  ким не   буває ??

4 Востаннє редагувалося User 298 (09.04.2013 20:53:38)

Re: Кількість

reywwe95 написав:

ну         пропустив  кому і  описався   с  ким не   буває ??

Та не в комі суть: зміст речення можна прочитати неоднозначно.

Фольклор написав:

"Мала мати моя мати, що мала не мала".


..

З.І: навіть останній пост неоднозначний...

5

Re: Кількість

  if (i_max+1 == size)
  {
    p= M[i_max];

  } else
  {
    for(int i=i_max+1;i<size;i++)
      {
    p=p*M[i];
      }
  }

  return p;

а якщо максимальних елементів в масиві 2 однакових або й більше? Що там в лабораторці про це сказано? :)

6

Re: Кількість

а якщо максимальних елементів в масиві 2 однакових або й більше? Що там в лабораторці про це сказано?  ні

7 Востаннє редагувалося Cyan (10.04.2013 14:10:51)

Re: Кількість

zmi007 написав:

а якщо максимальних елементів в масиві 2 однакових або й більше? Що там в лабораторці про це сказано? :)

зазвичай, коли є кілька максимумів, то ми можемо обрати будь-який з них - нам головне отримати саме значення
якщо ж ми потім якось його використовуємо (напр., виводим індекс), то тоді потрібно слідкувати, щоб значення елементів не повторювались