• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Znowu sortowanie ze zliczeniem

Object Storage Arubacloud
0 głosów
213 wizyt
pytanie zadane 9 czerwca 2018 w C i C++ przez WhiteDragon Początkujący (290 p.)

Tutaj jest mój kod,działa wszystko poza sortowaniem i wypisywaniem tablicy wynikowej. Jak to naprawić?


#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <Windows.h>
using namespace std;


int main()
{
	
	int tab[8];
	int tab2[11] = {0,0,0,0,0,0,0,0,0,0,0}; //tablica ma 11 elementow bo zakres sprawdzanych liczb to od 0 do 10 czyli 11 liczb
	int tab3[8];
	//Wpisywanie elementow do tablicy
	for (int i = 0; i<8; i++)
		{
			cout << "Wpisz" << " " << i + 1 << " " << "liczbe" << endl;
			cin >> tab[i];
			system("cls");
		}
	//Wyswietlanie tablicy przed sortowaniem
	for (int i = 0; i<8; i++)
		{
			cout << "[" << tab[i] << "]" << " ";
		}
	//zliczanie elementow w tablicy
	cout << "Zliczam elementy tablicy..." << endl;
	Sleep(1000);
	cout << "Twoja tablica zliczen:" << endl;
	for(int i=0;i<8;i++)
		{
			tab2[tab[i]] = tab2[tab[i]] + 1; //Przypisanie elementu tablicy tab do indeksu tablicy tab2
		}
	for (int i = 0; i < 11; i++)
		{
			cout << "Liczba" <<" "<< i << " "<<"wystepuje" <<" "<< tab2[i]<<" "<<"razy"<<endl;
		}
	int j = 0;

//*************************************************************************************************************
//****************AWARIA JEST PONIZEJ**************************************************************************
//*************************************************************************************************************


	//sortowanie tablicy
	for (int i = 0; i < 11; i++)
		{ 
			while (tab2[i] < 0)
				{
					tab3[j] = i;     
					tab2[i] = tab2[i] - 1;
					j++;
				}
		}
	//wypisywanie tablicy posortowanej
	cout << "Trwa sortowanie..." << endl;
	Sleep(1000);
	cout << "Oto posortowana tablica :" << endl;
	for (int i = 0; i < 8; i++)
		{
			cout << "["<<tab3[i]<<"]"<<" ";
		}
	system("Pause");

return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 9 czerwca 2018 przez Aisekai Nałogowiec (42,190 p.)
Za co wg Ciebie ma odpowiadać pętla while() w 48 linii? I co to za warunek w tej pętli, skoro inicjujesz każdą komórkę tablicy 0, a jedyną operacją wykonywaną na komórkach tablicy masz inkrementacje (z brakiem możliwości przepelnienia)? Kiedy wg Ciebie "wjedziesz" do tej pętli?

 

Zakładając, że już kiedyś wejdziesz (jeżeli to poprawisz), to co w chwili gdy zmienna j będzie miała większą wartość niż długość tablicy? Pytam, bo nie rozumiem tego kodu (nazwy zmiennych kompletnie nic nie mówią, czym jest tab2, tab3 i tab - tak wyglądający kod bardzo ciężko się analizuje).

Edit: Komentarze ... Wprowadzają w błąd .Np 55 linia, nie to nie jest wypisywanie tablicy. Komentarz dotyczy linii pod.  Tak samo linia 26. Jakbyś nazwał poprawnie zmienne, funkcje itd (chociaż funkcji tutaj twoich nie ma, a szkoda) to komentarze są kompletnie zmienne i wprowadzają w błąd czasami)

Podobne pytania

0 głosów
1 odpowiedź 204 wizyt
0 głosów
3 odpowiedzi 556 wizyt
pytanie zadane 23 marca 2021 w C i C++ przez warzywko13 Użytkownik (840 p.)
0 głosów
2 odpowiedzi 730 wizyt

92,615 zapytań

141,465 odpowiedzi

319,776 komentarzy

61,997 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...