Napisz program, który wypełni 20-elementowa tablice liczbami losowymi typu int z
przedziału [a, b] podanego przez uytkownika i wykona na niej nastepujace operacje:
1. srednia arytmetyczna elementów tablicy
2. liczba wystapien elementu podanego przez uytkownika
3. liczba elementów nieparzystych oraz ich suma
4. element minimalny oraz jego indeks
5. element maksymalny oraz jego indeks
6. para sasiednich elementów o najwiekszej sumie
7. element najczesciej wystepujacy w tablicy
Program powinien zawierac funkcje:
1. wczytujaca dane: void czyt_dane(int A[ ], int &n);
2. wypisujaca tablice: void pisz_tab(int A[ ], int n);
oraz
3. srednia(int A[ ], int n);
4. ile(int A[ ], int n);
5. nieparzyste(int A[ ], int n);
6. min(int A[ ], int n);
7. max(int A[ ], int n);
8. sasiednie(int A[ ], int n);
9. najczestszy(int A[ ], int n);
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
W zalaczniku skompilowany program pod dev c++
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void wczytaj_dane (int *array, int size)
{
int start_interwal, end_interwal;
cout<<"Podaj poczatek przedzialu: ";
cin>>start_interwal;
cout<<"Podaj koniec przedzialu: ";
cin>>end_interwal;
for (int i=0;i<size;i++)
{
array[i]=start_interwal+int((end_interwal-start_interwal+1)*rand()/(RAND_MAX+1.0));
}
}
void wypisz_tablice(int *array, int size)
{
cout<< "TABLICA:" <<endl;
for (int i=0;i<size;i++)
{
cout<<" " <<array[i] << " ";
}
}
double srednia (int *array, int size)
{
double sum;
for(int i=0;i<size;i++)
sum+=array[i];
return sum/size;
}
int ile(int *array, int size, int x)
{
int iCounter=0;
for(int i=0;i<size;i++)
{
if(array[i]==x)
iCounter++;
}
return iCounter;
}
int nieparzyste(int *array, int size, int &suma_nieparzystych)
{
int iCounter=0;
suma_nieparzystych=0;
for(int i=0;i<size;i++)
{
if(array[i]%2==1 && array[i]>0)
{
iCounter++;
suma_nieparzystych+=array[i];
}
}
return iCounter;
}
int min (int *array, int size, int &index)
{
int iMin=array[0];
for(int i=0;i<size;i++)
{
if (iMin>array[i])
{
iMin=array[i];
index=i;
}
}
return iMin;
}
int max (int *array, int size, int &index2)
{
int iMax=array[0];
for(int i=0;i<size;i++)
{
if (iMax<array[i])
{
iMax=array[i];
index2=i;
}
}
return iMax;
}
void sasiednie (int * array, int size)
{
int index2;
int iMax=max(array,size,index2);
if (iMax+array[index2+1]>iMax+array[index2-1])
cout <<endl<<"Para sasiednich elementow o najwiekszej sumie to elementy na pozycji: "<< index2+1<< " i " <<index2+2<< " a ich suma wynosi: " << array[index2]+array[index2+1]<<endl;
else
cout <<endl<<"Para sasiednich elementow o najwiekszej sumie to elementy na pozycji: "<< index2+1<< " i " <<index2<< " a ich suma wynosi: " << array[index2]+array[index2-1]<<endl;
}
int main()
{
srand ( time(NULL) );
int size;
cout <<"Ile danych chcesz wczytac?: ";
cin >> size;
int array[size];
wczytaj_dane(array,size);
wypisz_tablice(array,size);
double dSrednia=srednia(array,size);
cout<<endl<<"Srednia wynosi: "<< dSrednia <<endl;
int iIle;
cout<<"Podaj wartosc do zliczenia powtorzen: ";
cin>>iIle;
int ile_powtorzen=ile(array,size,iIle);
cout<<endl<<"Liczba "<<iIle<<" wystepuje w tablicy "<<ile_powtorzen<<" raz(y)"<<endl;
int suma_nieparzystych;
int l_nieparzystych=nieparzyste(array,size,suma_nieparzystych);
cout<<endl<<"W tablicy jest "<<l_nieparzystych<<" liczb(y) nieparzyste a ich suma wynosi: "<<suma_nieparzystych<<endl;
int index;
int minimalna=min(array,size,index);
cout<<endl<<"Liczba minimalna to: "<<minimalna<<" i jest na "<<index+1<< " pozycji"<<endl;
int index2;
int maxymalna=max(array,size,index2);
cout<<endl<<"Liczba maksymalna to: "<<maxymalna<<" i jest na "<<index2+1<< " pozycji"<<endl;
sasiednie (array,size);
return 0;
}