Çözüldü C++ nasıl Max element gösterilir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

RSK06

Hectopat
Katılım
29 Aralık 2020
Mesajlar
2.286
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
[CODE lang="cpp" title="C++"]#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
char selection{};
vector<double> list { 1, 2, 3, 4, 5 };
double new_num{};
double average{};
double total {};
double max = list[0];

do {
cout << "Menu options: \n" << endl;
cout << "P - Print numbers\nA - Add a number\nM - Display mean of the numbers\nS - Display the smallest number\nL - Display the largest number\nQ - Quit\n" << endl;
cout << "Enter your choice: ";
cin >> selection;
if (selection == 'P' || selection == 'p') {
cout << "displaying all the elements in list: [ ";
for (unsigned i = 0 ; i < list.size(); i++)
cout << list << " ";

cout << " ]" << endl;
}
else if(selection == 'A' || selection == 'a') {
cout << "Add integer: ";
cin >> new_num;
cout << "Adding new number to the list: [ ";
list.push_back(new_num);
cout<< "Showing the updated list: ";
for (unsigned i = 0 ; i < list.size(); i++)
cout<<list << " ";
cout << " ]" << endl;

}
else if (selection == 'M' || selection == 'm') {
cout << "\nCalculating average of the list... " << endl;
for (auto ttl: list) {
total += ttl;
}
average = total / list.size();
cout << "\nThe Average is: " << average << "\n" << endl;
}

else if (selection == 'L' || selection == 'l') {
for (int i = 0; i < 5; i++) {
if (list > max) {
max = list;
cout << "\nThe largest number in the list is: " << max << "\n" << endl;
}
}
}

} while (selection != 'q' && selection != 'Q');
cout << endl;

return 0;
}[/CODE]

Burada largest ve smallest number'ı nasıl belirtebilirim?
 
Son düzenleyen: Moderatör:
Soruyu tam anlamadım. Buradaki kod zaten en büyük numarayı buluyor olmalı.
Kod:
for (int i = 0; i < 5; i++) {
if (list[i] > max) {
max = list[i];
cout << "\nThe largest number in the list is: " << max << "\n" << endl;
}
 



Bu şekilde çalışıyor. Sadece büyük sayıyı göstermeli.
 
Çözüm
Anladım. Cout << Statement'ini for döngüsünün dışına çıkarman gerekiyor. Şu anki haliyle for her döndüğünde Max değişkeni de tekrar yazılıyor çünkü.

1 gösteriyor ama listedeki en büyük sayı 5.
1 gösteriyor ama listedeki en büyük sayı 5.

Tamam düzelttim.
1 gösteriyor ama listedeki en büyük sayı 5.

Tamam düzelttim.

Fakat mesela a basıp farklı bir rakam eklesemde 5 göstermeye devam ediyor, a basıp 20 ekleyince 20 göstermesini nasıl sağlarım?
1 gösteriyor ama listedeki en büyük sayı 5.

Tamam düzelttim.

Fakat mesela a basıp farklı bir rakam eklesemde 5 göstermeye devam ediyor, a basıp 20 ekleyince 20 göstermesini nasıl sağlarım?

Tamam bunu da çözdüm teşekkürler yardımlarınız için.
 
Cmath kütüphanesi ile de yapılabilir aslında ama siz onu for un altına yazmışsınız ve 4 kere tekrar edip birer artacak yapmışsınız o yüzden onu 4 kere tekrar edip dizideki sayıyı 1 arttırarak ekrana yazdırıyor sadece for içinden çıkar.
 
Anladım. Cout << Statement'ini for döngüsünün dışına çıkarman gerekiyor. Şu anki haliyle for her döndüğünde Max değişkeni de tekrar yazılıyor çünkü.


[CODE lang="cpp" title="C++"]}
else if (selection == 'S' || selection == 's') {
for (int i = 0;i < list; i--) {

}
cout << "\nThe smallest number in the list is: " << min << "\n" << endl;
}[/CODE]

Bu kısımda sadece ne eklersem ekliyeyim 1 gösteriyor en küçük sayı için nasıl çözebilirim?
 


For a gerek yok gibi diye biliyorum.
Ama yine de @Dragonlordturkiye hocamın da cevabını bekleyelim yanlış olmasın.

 

Kod:
int min = list[0];
for(i = 0; i < 5; i++){
        if(list[i] < min){
            min = list[i];
        }
    }

    cout  << "Minimum Element\n" << min;
Maximum için yaptığın şeyin aynısını minimum için de yapman gerekiyor. Senin kodunda for döngüsünün içinde hiçbir şey yok şu an.
 

Maalesef hala sadece 1 gösteriyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…