Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] Pierwotna pozycja liczby

Ostatnio zmodyfikowano 2012-04-19 18:31
Autor Wiadomość
cmilak43
Temat założony przez niniejszego użytkownika
[c++] Pierwotna pozycja liczby
» 2012-04-18 19:40:33
Polecenie

Program który wyświetla pozycje na której liczba wystąpiła po raz pierwszy

Wykombinowałem coś takiego :

C/C++
#include <iostream>
using namespace std;
int szukaj( int a[], int n, int liczba, int & x )
{
    for( int i = 0; i < n; i++ )
    if( a[ i ] == liczba )
         x = x - 1;
   
}
int main()
{
   
    int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, n, liczba, x;
    cout << "Podaj liczbe: ";
    cin >> liczba;
    x = liczba;
    szukaj( a, n, liczba, x );
    if( x >= 0 )
         cout << "Liczba pierwotnie wystapla na pozycji " << x;
    else
         cout << "Liczba nie wystapila w ciagu !!!";
   
}

Program ruszył ale po wpisaniu liczby program zawiesza się i wywala błąd

Proszę o pomoc
P-54769
SeaMonster131
» 2012-04-18 20:20:00
Bo zmienna n zawiera jakieś śmieci i dlatego wychodzisz poza zakres tablicy.
P-54773
cmilak43
Temat założony przez niniejszego użytkownika
» 2012-04-18 20:52:08
A mógłbyś mi powiedzieć czy ja chociaż dobrze robię że pozycja  jest o 1 mniejsza od wpisanej  liczby ?
P-54779
SeaMonster131
» 2012-04-18 21:05:34
Nie, zmień sobie chociażby tą tablice na taką:
{ 5, 3, 1, 2, 8, 7, 0, 11, 15, 20 }

i wtedy uruchom program, wynik nie będzie poprawny.

Jeżeli szukana liczba to
if( a[ i ] == liczba )

czyli
a[ i ]

więc
x = ?;
 - pomyśl, pamiętaj że tablice liczy się od 0 a nie 1.
P-54784
cmilak43
Temat założony przez niniejszego użytkownika
» 2012-04-18 21:44:47
NO tak bo wtedy gdy wpisze np. 20 to mi wyświetli, że jest na 19 pozycji co jest nie prawdą, ale program jest modyfikacją i ma obliczac tylko dla tej jednaj tablicy
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
 a więc jako że elementy numerowane są od zera  więc dla np. 3 powinno wyświetlić pozycje nr. 2  i dlatego odejmuje tą 1....przynajmniej tak to rozumie
P-54789
SeaMonster131
» 2012-04-19 18:31:21
Patrząc normalnie, że tak powiem "matematycznie", to 3 jest na pozycji 3, lecz w tablicy jest to pozycja 2. Zależy co chcesz osiągnąć.
P-54827
« 1 »
  Strona 1 z 1