Инструменты пользователя

Инструменты сайта


reshenie_zadachi_6

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

reshenie_zadachi_6 [2010/11/07 11:17] (текущий)
Строка 1: Строка 1:
 +**Задача**. Дан массив целых чисел. Найти в массиве все простые двухзначных числа, если таких чисел больше двух удалить их из массива. Проверить изменился ли максимальный элемент массива.
 +<​file>​
 +/* 
 + * File:   ​arraydelsimple.cpp
 + * Author: darkfire
 + *
 + * Created on November 7, 2010, 4:58 PM
 + */
 +#include <​iostream>​
 +#​include<​stdlib.h>​
  
 +/*
 + * Дан массив целых чисел.
 + * Найти в массиве все простые двухзначных числа, если таких чисел
 + * больше двух удалить их из массива.
 + * Проверить изменился ли максимальный элемент массива.
 +*/
 +
 +/​*Алгоритм
 + */
 +using namespace std;
 +
 +void EnterRandArray(int *arr, int );
 +void ViewArray(int *arr, int );
 +int MaxElment(int *, int );
 +bool num_simple (int);
 +int *del_symple(int *arr, int &sz, int count);
 +
 +int main(){
 +        int SIZE = 10;
 + int *parr = new int[SIZE];
 + int maxarr,​maxparr,​ zn2,​count=0;​
 + //​заполним массив
 + EnterRandArray(parr,​ SIZE);
 + //​выведем масив на экран
 + ViewArray(parr,​ SIZE);
 +        //​Находим максимальный элемент
 + maxarr=MaxElment(parr,​ SIZE);
 + cout<<"​\n"<<"​Max arr1: "<<​maxarr<<"​\n";​
 +        //​Найдем количесво двухзначных простых чисел
 + for (int i=0;​i<​SIZE;​i++){
 +            if((parr[i]>​10)&&​(parr[i]<​99))
 +                if (num_simple(parr[i]))count++;​
 + }
 + cout<<"​count:​ "<<​count;​
 +        //если таких цисел больше двух -удаляем их
 +        if (count>​2){
 +            parr = del_symple(parr,​ SIZE, count);
 +            cout<<"​\n";​
 +            ViewArray(parr,​ SIZE);
 +        }
 +        maxarr=MaxElment(parr,​ SIZE);
 + cout<<"​\n"<<"​Max newarr: "<<​maxarr<<"​\n";​
 +
 +        delete [] parr;
 +        cout<<"​\n";​
 + return 0;
 +}
 +
 +int *del_symple(int *parr, int &sz, int count){
 + int new_sz=sz-count;​
 + int pos =0;
 +                int *newarr= new int [new_sz];
 + for(int i=0,​j=0;​i<​sz;​i++){
 +                    if((parr[i]<​10)||(parr[i]>​99)){
 +                        newarr[j]=parr[i];​
 +                        j++;}
 +                    else if(!(num_simple(parr[i]))){
 +                        newarr[j]=parr[i];​
 +                        j++;
 +                    }
 + }
 +                sz=new_sz;//​изменяем(уменьшаем) размер массива
 + return newarr;
 +}
 +
 +bool num_simple (int number){
 +//​простое число делится без остатка только на самого себя и единицу.
 + for (int i=2;​i<​number;​i++)
 + if(number%i==0){
 +                    return false;}
 +return true;
 +}
 +int MaxElment(int *arr, int SIZEA){
 + int max=arr[0];//​правильней брать элемент массива
 + for (int i=1;​i<​SIZEA;​i++){
 + if (arr[i]>​max)max=arr[i];​
 + }
 + return max;
 +}
 +
 +void EnterRandArray(int *arr, int SIZEARR){
 + for (int i=0;​i<​SIZEARR;​i++)arr[i]=rand()%110;​
 +}
 +
 +void ViewArray(int *arr, int SIZEARR){
 + for (int i=0;​i<​SIZEARR;​i++)cout<<​arr[i]<<"​\t";​
 +}
 +</​file>​
загрузка...
reshenie_zadachi_6.txt · Последние изменения: 2010/11/07 11:17 (внешнее изменение)