30. juni 2008 - 13:16Der er
6 kommentarer og 1 løsning
Hvordan scanner jeg arrayet for de mindste værdig?
Hej Jeg er igang med at lave en lille opgave i C++, og jeg er ny på området. Jeg har et array, som jeg scanner for den støreste værdi, nu mangler jeg at scnner den for den mindste værdig (SmallestArea), men jeg kan ikke, derfor beder jeg om jers hjælp :).
Her er koden: #include <iostream> #include <stdio.h>
using namespace std;
int main(){
int NumberOfRooms; double length; double width; double TotalArea = 0; double LargestArea = 0; double SmallestArea = 0; int index;
cout << "Enter the number of rooms: "; cin >> NumberOfRooms;
double *areas = new double [NumberOfRooms]; for (int i =0; i < NumberOfRooms; i++){ cout << "Enter the length of room nmber "<< i+1 << " : "; cin >> length;
cout << "Enter the width of room nmber "<< i+1 << " : "; cin >> width;
areas [i] = width * length; TotalArea += areas[i]; cout << "Area of room number " << i << " is " << areas[i] << endl; } cout << "Total area : " << TotalArea << " square metre" << endl; //Scanner arrayet for den støreste area for (int i = 0; i < NumberOfRooms; i++){ if (areas[i] > LargestArea){ LargestArea = areas[i]; index = i+1; cout <<"LargestArea: " << LargestArea << endl; cout <<"index: " << index << endl;
} } cout<<"Room number "<<index<<",with an area wich is "<<LargestArea<<" square metre. is the largest room"<< endl;
Du kan jo løbe dem igennem i samme loop, det problem jeg ser er at du sætter SmallestArea til 0 i toppen: (Her antager jeg at alle de andre tal er over 0)
double SmallestArea = 0;
Nu er det lang tid siden jeg har rodet med C++, men mon ikke du kan hitte ud af sætte den til null, også første gang i løber igennem dit array sætte den til det tal og herefter tjekke om det er mindre end det der er gemt i variablen.
Noget i stil med:
double SmallestArea = null;
if (!SmallestArea) { //SmallestArea er ikke sat, derfor sætter vi den til areas[i] SmallestArea= areas[i]; } if (areas[i] < SmallestArea){ LargestArea = areas[i]; index = i+1; cout <<"SmallestArea: " << SmallestArea<< endl; cout <<"index: " << index << endl; }
til arne_v: det virker fint, men jeg har et problem, og det er at jeg vil også vise hvilket Room Number er mindst. altså printe room number til den mindte room.
cout<<"Room number "<<??????<<",with an area wich is "<<SmallestArea<<" square metre. is the largest room"<< endl;
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.