18. oktober 2005 - 02:20Der er
10 kommentarer og 1 løsning
find den største af vilkårligt atal indtastede positive tal
Jeg skal lave et program, der kan finde ud af, hvilket af et vilkårligt antal indtastede positive heltal, der er det største. Det største tal udskrives, når tallet nul er indlæst. Tallet nul bruges altså som stopværdi i programmet. Hjælp :-)
Her er min kode.. Jeg brugte bubble sorteringsalgoritme..
#include <iostream>
using namespace std;
void swap(int &m, int &n);
int main() {
int a[5]; int n =0;
do { cin>>a[n]; n++; }
while(a[n-1]!=0);
int numberOfElements = sizeof(a) / sizeof(int);
for (int i = 0; i < ( numberOfElements - 1); i++) {
int minIndex = i;
// Find the index of the minimum element for (int j = i + 1; j < numberOfElements; j++) {
if (a[j] < a[minIndex]) {
minIndex = j; } }
// Swap if i-th element not already smallest if (minIndex > i) {
swap(a[i], a[minIndex]); } }
if (a[numberOfElements-1]>0)
cout << "The highest number is "<< a[numberOfElements-1]<<endl;
else cout<< "You haven't typed any positive number.";
return 0; }
void swap(int &x, int &y) {
int temp;
temp = x; x = y; y = temp; }
Problemet er at jeg får den rigtige resultat kun hvis jeg indtaster det antal elementer som arrayet er er initialiseret med, altså! Det er fordi at min numberOfElements variebel får en forkert værdi hvis jeg indtaster flere/mindre end 5 værdier.. Hvad gør jeg? Jeg ved jo ikke i forvejen hvor mange værdier brugeren vil indtaste men jeg skal jo initialisere arrayet i starten ikk? hjælp
det virker ! :-) tak Arne. men kan jeg godt undgå at definere størrelsen af arrayet i starten af programmet? det er jo bare "spild af hukommelse" hvos jeg sætter arrayet til at være f.eks. 50 og brugeren bare indsætter f.eks. 2 værdier?
Tænkte på lyder din opgave ikke bare at finde det største tal? Hvis de resterende er ligegyldige behøver du vel ikke gemme dem i en vector/ et array, men kun gemme den største.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.