programmering - näst största numret

Permalänk
Medlem

programmering - näst största numret

Har lite problem med att skriva in funktionen för att få det näst största värdet/nummret.
Lite hjälp behövs här för att komma ur trasslet

alltså

cout << "Det näst största numret var " << max2 << endl;

#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int main() { // Deklarera och initiera variabler char choice = 'y'; // att kunna välja mellan y/n för att fortsätta eller avsluta spelet float num = 0; // här ska numren skrivas in float sum = 0; // summan av numren för att hitta medelvärdet int count; // räkna hur många nummer float min= 0; // lägsta nummer float max2= 0; float max = 0; // högsta nummer float ave; // medelvärdet count=0; // initiera count cout << "Skriv ett antal nummer och skriv -0 när du är klar." << endl; while (choice == 'y') //för att programmet ska köra igen. { cin >> num; // de första numren while ( num != -0) { sum += num; // summan av count++; // räknar hur många nummer if (num > max) max = num; else if (num < min) min = num; cin >> num; // hämta mer nummer } ave = sum/count; cout << "Det var " << count << " nummer" << endl; cout << "Summan " << sum << endl; cout << "Största numret var " << max << endl; cout << "Det lägsta numret var " << min << endl; cout << "Medelvärdet är " << ave << endl; cout << " Vill du spela igen (y/n)?" << endl; // vill du köra om programmet? cin >> choice; } return 0; }

Permalänk
Medlem

Din kod blir svår att fixa till så du kan få ut det näst största värdet, utan gör om och gör rätt. Skapa t.ex. en list som du fyller på med nummer hela tiden, sortera listan och hämta sedan ut vilka nummer du nu vill ha utan massa krångel

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem

Hur blir det om Du tar:

Om (num<max) Och (num>max2) max2 = num

Visa signatur

Grundregel för felsökning: Bryt och begränsa.