Napisz program który:
1. Losuje z zadanego przedziału określoną przez użytkownika liczbę liczb naturalnych i zapisuje je do tablicy.
2. Znaleźć liczby pierwsze w powstałej tablicy i zapisać je do drugiej.
3. Obliczyć sumę wszystkich elementów w tablicy liczb pierwszych oraz ich średnią.
4. Znaleźć minimalny element w tablicy 1.(wszystkie elementy) oraz maksymalny (najlepiej w funkcji).
5.Sprawdzić czy suma cyfr elementów tablicy jest liczbą pierwszą.
Ten program ma być napisane w języku C++, w jak najprostszej postaci, i do tego, chciałbym aby były 3 różne wersje a mianowicie pozmieniane jakoś tylko w niektórych miescach aby byla delikatna różnica pomiedzy każdym z nich.
DAM JESZCZE WIĘCEJ PUNKTÓW, DO UZGODNIENIA :)
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Tutaj troche przejrzyściej, bo z wcięciami: http://wklejto.pl/112856
#include <cstdlib>
#include <iostream>
using namespace std;
int a,b,n;
//1. Losuje z zadanego przedziału określoną przez użytkownika liczbę liczb naturalnych i zapisuje je do tablicy.
void przedzial()
{
cout<<"Wpisz przedzial (a,b):"<<endl<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
}
bool pierwsza (int n)
{
if(n<2)return false;
if(n==2)return true;
if(n%2==0)return false;
for(int i=3;i*i<=n;i=i+2)if(n%i==0)return false;
return true;
}
int main(int argc, char *argv[])
{
przedzial();
if(a>b)
{
cout<<"Bledny przedzial, b musi byc wieksze lub rowne a \nSprobuj ponownie."<<endl;
przedzial();
}
cout<<"Wpisz ile liczb ma byc wylosowanych: ";
cin>>n;
int tab[n],tab2[n];
for(int m=0;m<n;m++)tab2[m]=0;
srand(time(NULL));
for(int m=0;m<n;m++)tab[m]=a+rand()%(b-a+1);
cout<<"Zawartosc pierwszej tablicy: ";
for(int m=0;m<n;m++)cout<<tab[m]<<' ';cout<<endl;
//2. Znaleźć liczby pierwsze w powstałej tablicy i zapisać je do drugiej. Korzystam z funkcji pierwsza.
int licznik=0;
for(int m=0;m<n;m++)
{
if(pierwsza(tab[m]))
{
tab2[licznik]=tab[m];
licznik++;
}
}
cout<<"Zawartosc drugiej tablicy: ";
if(licznik==0)
cout<<"wszystkie elementy tablicy pierwszej nie sa liczbami pierwszymi";
else
for(int m=0;m<licznik;m++)cout<<tab2[m]<<' ';cout<<endl;
//3. Obliczyć sumę wszystkich elementów w tablicy liczb pierwszych oraz ich średnią.
float suma=0;
for(int m=0;m<n;m++)suma+=tab2[m];
cout<<"Suma wszystkich elementow tablicy liczb pierwszych: ";
if(suma==0)
cout<<"brak elementow"<<endl;
else
cout<<suma<<endl;
cout<<"Srednia liczb pierwszych: ";
if(suma==0)
cout<<"brak elementow"<<endl;
else
cout<<suma/licznik<<endl;
//4. Znaleźć minimalny element w tablicy 1.(wszystkie elementy) oraz maksymalny (najlepiej w funkcji).
int przech;
bool i=1;
while(i!=0)
{
i=0;
for(int m=0;m<n-1;m++)
{
if(tab[m]>tab[m+1])
{
i=1;
przech=tab[m+1];
tab[m+1]=tab[m];
tab[m]=przech;
}
}
}
cout<<"Minimalny element w tablicy pierwszej to "<<tab[0]<<", a maksymalny to "<<tab[n-1]<<endl;
//5.Sprawdzić czy suma cyfr elementów tablicy jest liczbą pierwszą.
suma=0;
for(int m=0;m<n;m++)suma+=tab[m];
if(pierwsza(suma))
cout<<"Suma cyfr elementow pierwszej tablicy jest liczba pierwsza"<<endl;
else
cout<<"Suma cyfr elementow pierwszej tablicy nie jest liczba pierwsza"<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}