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

Przekazywanie calej tablicy znakow do funkcji i kod sprawdzajacy pokrewnosc dwoch tablic

0 głosów
791 wizyt
pytanie zadane 31 października 2017 w C i C++ przez Dordonmegazordon Początkujący (350 p.)
edycja 31 października 2017 przez Eryk Andrzejewski

Dobry wieczór, piszę prosty program w ramach nauki. Program ma na celu wygenerowanie hasła które następnie ma zostać złamane. Napotkałem na dwa problemy:

  • nie wiem jak przekazać całą tablicę do funkcji.
  • po wygenerowaniu hasła program przestaje działać.

Bardzo proszę o pomoc i ocenę kodu.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void lamaieHasla(int, char);
int main()
{
    //-----------------------TWORZENIE-TABLICY-ZNAKOW-O-OKRESLONYM-ROZMIARZE---------
    puts("podaj wielkosc lancucha znakow");
    int i;
    int wielkosc;
    scanf("%d", &wielkosc);
    int *W_wielkosc = &wielkosc;
    char gem[*W_wielkosc] ;
    srand( time( NULL ) );
    //----------------------LOSOWANIE-ZNAKOW-PRZYPISANIE-ICH-DO-TABLICY---------------
    for(i=0, puts("trwa generowanie lancucha"); i!=*W_wielkosc; i++)
    {
        gem[i]=(char)(rand()%10)+100;

    };
    //-----------------------------WYPISANIE-TABLICY-ZNAKOW---------------------------
    int j;
    for(j=0,puts("twoje haslo"); j!=*W_wielkosc; j++)
    {
        printf("%c",gem[j]);
    }
    puts("\n");
    //------------------------PROBA-WYGENEROWANIA-IDENTYCZNEJ-TABLICY-----------------
    puts("trwa lamanie hasla");
    char haslo[*W_wielkosc];
    do
    {
        int g;
        haslo[g]=(char)(rand()%10)+100;
        g++;
    }
    while(haslo[*W_wielkosc]!=gem[*W_wielkosc]); 
    printf("%c", &haslo);


//lamanieHasla(*W_wielkosc,gem[0]);

    return 0;
}
//--------------------FUNKCJA-DO-KTOREJ-NIE-POTRAFILEM-PRZEKAZAC-CALEJ-TABLICY------------
//void lamanieHasla(int wielkosc, char generowany)
//{
//    char haslo[wielkosc];
//   do{

//haslo[0]=(char)(rand()%10)+100;

//  } while(haslo!=generowany);
//printf("%c",haslo);
//};

 

1 odpowiedź

+1 głos
odpowiedź 31 października 2017 przez lb478 Użytkownik (940 p.)

Coś zdaje mi się że w tym leży problem: http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Przekazywanie-tablic-jednowymiarowych-do-funkcji/324 - zobacz w deklarację funkcji lamanieHasla().

@EDIT

Prosisz jeszcze o ocenę kodu.
Jak dla mnie troszkę jest nieczytelny, ale to tam ja też mam swoje problemy jeśli chodzi o czytanie ;)
Jak na naukę to widać że się starasz, więc ucz się ucz. Ja też pisałem takie o żeby cokolwiek się nauczyć i się przyznam, że nadal to robię, ale właśnie przez to że zacząłem od takich małych projektów jestem wstanie teraz coś większego robić. 

komentarz 31 października 2017 przez Dordonmegazordon Początkujący (350 p.)

Dzięki za opinię. Przeczytałem rozdział kursu niby udało się skompilować, dowiedziałem się również, że przekazując tablice pracujemy na oryginale, i tu jest kolejny problem jeśli faktycznie pracujemy na oryginale to czemu nie mogę wyświetlić przekazanych danych. Zostaje wyświetlony napis "twoje haslo" po czym program się wysypuje.

void lamanieHasla(int wielkosc, char generowany[])
{
    int g;
      for(g=0,puts("twoje haslo"); g!=wielkosc; g++)
    {
        printf("%c",generowany[g]);

    }
};

 

Przekazanie wygląda następująco 

lamanieHasla(*W_wielkosc, gem[*W_wielkosc]);

Przekazanie bez podania wielkości nie kompilowało się

void sposob_2( int tablica[] );

 

Podobne pytania

0 głosów
1 odpowiedź 479 wizyt
pytanie zadane 22 grudnia 2017 w C i C++ przez lambdag Obywatel (1,310 p.)
0 głosów
1 odpowiedź 241 wizyt
pytanie zadane 12 listopada 2020 w C i C++ przez rain.deer Początkujący (430 p.)
0 głosów
2 odpowiedzi 1,370 wizyt
pytanie zadane 1 października 2017 w C i C++ przez qlucha Obywatel (1,790 p.)

93,600 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,085 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

Kursy INF.02 i INF.03
...