Çö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.283
Çö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;
}
 
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;
}

1619014790812.png


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.
 
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ü.

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.

[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?
 
[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.

 
[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?

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.
 
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.
 

Yeni konular

Geri
Yukarı