C++ struktúratömb feltöltése?
adott egy feladat:
Olvasson be egész számokat, amíg 0-t nem kap, majd mondja meg, melyik érték hányszor szerepelt a bemeneten!
Nem ismert az értékek intervalluma, de csak 100-féle érték fordulhat elő.
elkezdtem megoldani a feladatot, viszont nem értem miért nem tölti fel a tömböt (vagy nem írja ki) a végén, amikor ki szeretném íratni.
#include <iostream>
using namespace std;
#define MAX 100
struct ertek {
int szam;
int db;
};
int main()
{
ertek tomb[MAX];
int szam = 1;
int kulonbozo=0;
cout << "Adjon meg szamokat! vagy 0-t ha ki akar lepni!\n";
while (szam != 0) {
cout << "Kovetkezo szam:";
cin >> szam;
for (int i = 0; i < kulonbozo && tomb[i].szam != szam; i++) {
if (i == kulonbozo) {
tomb[i].szam = szam;
tomb[i].db= 1;
kulonbozo++;
}
else {
tomb[i].db++;
}
}
}
cout << "a bekert ertekek:\n";
for (int i = 0; i < kulonbozo; i++) {
cout << tomb[i].szam << " elofordult: " << tomb[i].db << " alkalommal.\n";
}
}
for (int i = 0; i < kulonbozo && tomb[i].szam != szam; i++) {
if (i == kulonbozo) {
Itt az IF sosem lesz igaz, mert megáll a ciklus előtte.
Aztán ha megtaláltad a for ciklusban, nem ártana egy break sem.
Egyéb észrevétel: én nem vagyok meggyőződve róla, hogy a c++ üresnek venné a tömböt fel.
Véleményem szerint memóriaszeméttel van tele, így az egész nem is fog működni. Ki kéne először nullázni a tömböt (ami azért is jó nekünk, mert a 0 nem lehet érték, így nem keveredik össze).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!