Witam, nie wiem czy to odpowiedni dział, ale proszę o pomoc...
Jestem początkującym programistą i dostałem takie zadanie domowe, nie mogę sobie poradzić z kawałkiem zadania.
Jak widać program generuje tablice o 1000 elementach z przedziału od 1 do 999.
Ta część poszła mi ok. Teraz mam tę tablicę posortować takim algorytmen, że znajduję największy element w tablicy, daję mu indeks 999, potem o jeden mniejszy, on dostaje indeks 998 itd aż znajdę ostatni najmniejszy element ( czyli tablica wynikowa powinna być po kolei od 1 do 999 ).
Ze znalezieniem elementów nie mam problemu.
Natomiast chcę zrobić takie coś, że:
- jeśli dany element = m ( np. te 999 ), to
- jego wartość przypisz elementowi o indeksie 999 tablicy o indeksie j ( tablica [j] )
- po tym odejmij od m jedynkę, dodaj do j jedynkę i ponów wyszukiwanie
- rób dopóki m>0
Z odjęciem od m jedynki nie ma problemu, cały program pięknie szuka mi elementów ( jako pomoc tutaj zastosowałem sobie, ze wypisuje mi czy element jest równy m czy też nie i podaje jego indeks ).
Nie wiem natomiast jak przypisać ( skopiować, nie wiem jak to powiedzieć ) element właśnie znaleziony do nowej tablicy tablica[j].
Mam nadzieję, że dało się mnie zrozumieć
Proszę o pomoc bo juz siedzę cały dzień nad tym
Jestem początkującym programistą i dostałem takie zadanie domowe, nie mogę sobie poradzić z kawałkiem zadania.
#include<iostream>
#include<stdlib.h>
using namespace std;
main()
{
int i;
int tab[1000];
int j;
srand(30001);
for(i=0;i<=999;i=i++)
{
tab[i]=rand()%1000;
cout << tab[i]<<" ["<<i<<"] ";
}
cout<<"\n-----------------------------------------------------------------------------------\n";
int m;
i=0;
m=999;
int tab2[1000];
do {
for (i=0;i<=999;i++)
{
cout<<tab[i]<<" ";
if (tab[i]==m) //jesli wartosc rowna sie m
{
cout<<"tak , jest to index "<<i<<" ";
cout<<" m wynosi "<<m<<"\n";
}
else { //jesli sie nie rowna
cout<<"nie, jest to index "<<i<<" ";
cout<<"m wynosi "<<m<<"\n";
}
}
m=m--; //odejmij od m 1
j=j++;
cout<<" m rowna sie "<<m;
}
while (m>0); //rob dopoki m bedzie wieksze od 0
cout<<"\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n";
}
Jak widać program generuje tablice o 1000 elementach z przedziału od 1 do 999.
Ta część poszła mi ok. Teraz mam tę tablicę posortować takim algorytmen, że znajduję największy element w tablicy, daję mu indeks 999, potem o jeden mniejszy, on dostaje indeks 998 itd aż znajdę ostatni najmniejszy element ( czyli tablica wynikowa powinna być po kolei od 1 do 999 ).
Ze znalezieniem elementów nie mam problemu.
Natomiast chcę zrobić takie coś, że:
- jeśli dany element = m ( np. te 999 ), to
- jego wartość przypisz elementowi o indeksie 999 tablicy o indeksie j ( tablica [j] )
- po tym odejmij od m jedynkę, dodaj do j jedynkę i ponów wyszukiwanie
- rób dopóki m>0
Z odjęciem od m jedynki nie ma problemu, cały program pięknie szuka mi elementów ( jako pomoc tutaj zastosowałem sobie, ze wypisuje mi czy element jest równy m czy też nie i podaje jego indeks ).
Nie wiem natomiast jak przypisać ( skopiować, nie wiem jak to powiedzieć ) element właśnie znaleziony do nowej tablicy tablica[j].
Mam nadzieję, że dało się mnie zrozumieć
Proszę o pomoc bo juz siedzę cały dzień nad tym