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

tablice- przypisywanie wartosci w petli

Ostatnio zmodyfikowano 2013-11-21 19:28
Autor Wiadomość
kynol
» 2013-11-21 09:40:16
break nie przerywa ci petli.. po prostu jesli na koncu petli umiesciles break; oznacza to ze po jednym obiegu petli po prostu z niej 'wyskakujesz' i przechodzisz do petli for w ktorej zagniezdziles ta petle for z tym warunkiem  (if(znak==samogloska[h])). To chyba dlatego
P-96888
mateuszq
Temat założony przez niniejszego użytkownika
» 2013-11-21 09:49:03
dokladnie tak, ja sie może źle wyraziłem, tylko teraz jak to zrobic zeby mi nie przeskakiwało do  pętli wyżej tylko wykonywalo caly obieg ąż do wartosci prawdziwej i dopiero bo ewentualnym znalezieniu tej prawdziwej wartosci przerywalo?
P-96890
kynol
» 2013-11-21 10:12:12
Posluchaj mnie uwaznie, przeanalizuj ta czesc kodu:
C/C++
for( int h = 0; h < 7; h++ ) {
    if( znak == samogloski[ h ] ) {
       
        poj[ n1 ] = znak;
        n1 += 1;
        l1 += 1;
        break;
    }
    else {
       
        podw[ n2 ] = znak;
        n2 += 1;
        l2 += 1;
        break;
    }
}

Tutaj jest blad. Mala podpowiedz, w warunku if sprawdzasz czy znak jest rowny samogloski[h] jesli jest to do poj[n1] przypisujesz wartosc znak, zas jesli nie to odrazu do podw[n2] przypisujesz znak. Teraz pomysl logicznie, przeciez ta petla for najpierw musi sprawdzic czy znak==samogloski[h] jesli tak to przypisujesz poj[n1] wartosc znaku, jesli nie to POWINNA zwiekszyc element [h] i znow sprawdzic czy znak==samogloski[h], jesli nie to znow i znow i znow... Mysle ze taka podpowiedz ci wystarczy:)
P-96891
mateuszq
Temat założony przez niniejszego użytkownika
» 2013-11-21 10:32:13
wielkie dzieki udało sie :)
zrobilem to w taki sposob:

C/C++
for( int h = 0; h < 7; h++ ) {
   
    if( znak == samogloski[ h ] ) l3 += 1;
   
}
if( l3 > 0 ) {
    poj[ n1 ] = znak;
    l1 += 1;
    n1 += 1;
}
else {
    podw[ n2 ] = znak;
    l2 += 1;
    n2 += 1;
}
l3 = 0;
}

myślisz ze to jest dobry spobob? może dalo sie jakos prosciej?
P-96894
kynol
» 2013-11-21 14:49:01
Pewnie ze dalo sie prosciej, zaraz odpale kompilator i pokaze ci jak :)
P-96920
kynol
» 2013-11-21 15:05:52
C/C++
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
   
    char poj[ 100 ], podw[ 100 ];
    char samogloski[ 7 ] = { 'e', 'y', 'i', 'j', 'a', 'u', 'o' };
    int ile, l1 = 0, l2 = 0, n1 = 0, n2 = 0;
   
    cout << "Podaj ile elementow ma miec tablica: ";
    cin >> ile;
    char tablica[ ile ];
   
    for( int i = 0; i < ile; i++ )
    {
        cout << "Podaj znak " << i << ": ";
        cin >> tablica[ i ];
        for( int h = 0; h <= 8; h++ )
        {
            if( h <= 7 )
            {
                if( tablica[ i ] == samogloski[ h ] )
                {
                    poj[ n1 ] = tablica[ i ];
                    n1++;
                    l1++;
                    break;
                }
            } else
            {
                podw[ n2 ] = tablica[ i ];
                n2++;
                l2++;
                break;
            }
        }
    }
    cout << "Wszystkie znaki: \n";
    for( int k = 0; k < ile; k++ )
    {
        cout << tablica[ k ] << ", ";
    }
    cout << "\nWszystkie samogloski: \n";
    for( int j = 0; j < l1; j++ )
    {
        cout << poj[ j ] << ", ";
    }
    cout << "\nWszystkie spolgloski: \n";
    for( int l = 0; l < l2; l++ )
    {
        cout << podw[ l ] << ", ";
    }
    getch();
    return 0;
}

Prosze :), jest o wiele czytelniejszy niz twoj.
P-96922
mateuszq
Temat założony przez niniejszego użytkownika
» 2013-11-21 16:47:01
racja można było i w ten sposób, ale ważne ze jakkolwiek mi sie udalo :D

a co do twojego kodu, konkretnie tego miejsca:

C/C++
cout << "Podaj ile elementow ma miec tablica: ";
cin >> ile;
char tablica[ ile ];

Tak jak wczesniej rozmawialismy nie powinienes wczesniej zdefiniowac rozmiaru tablicy "tablica[]" przed kompilacja?
P-96927
kynol
» 2013-11-21 17:18:28
W jaki sposob to moglem zrobic? przeciez pisze wyraznie 'Podaj ile elementow ma miec tablica:' jesli chcialbym zadeklarowac char tablice na poczatku to skad znalbym jej rozmiar? przeciez ten rozmiar podaje uzytkownik, wiec wczytuje liczbe podana przez uzytkownika i pozniej deklaruje tablice ktora sklada sie wlasnie z tylu elementow ile podal uzytkownik ;P
P-96931
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona