KaPiXeQ utworzono 22 marca 2021 utworzono 22 marca 2021 #include <iostream> #include <stdio.h> #include <time.h> using namespace std; string odszyfrowanie(string tekst, size_t przesuniecie[]) { size_t skok = 0; for(size_t i=0; i<tekst.length(); i++) { tekst[i] = tekst[i] - przesuniecie[skok]; skok++; if(skok==10) skok = 0; } return tekst; } string szyfrowanie(string tekst, size_t przesuniecie[]) { size_t skok = 0; for(size_t i=0; i<tekst.length(); i++) { tekst[i] = tekst[i] + przesuniecie[skok]; skok++; if(skok==10) skok = 0; } return tekst; } int main() { size_t klucz[10]; srand(time(NULL)); for(int i=0; i<10; i++) { klucz[i] = rand()%19+1; cout << klucz[i] << " "; } string tekst; getline(cin, tekst); cout << tekst << endl; string tekst_szyfr = szyfrowanie(tekst, klucz); cout << tekst_szyfr << endl; string tekst_odszyfr = odszyfrowanie(tekst_szyfr, klucz); cout << tekst_odszyfr << endl; return 0; } Zmodyfikujcie kod tak, żeby użytkownik mógł podać na początku rozmiar tablicy przesunięć oraz górną granicę losowanych liczb. Dolna granica zawsze wynosi 1 (jeden). (c++) proszę o pomoc
fernandez komentarz 24 marca 2021 komentarz 24 marca 2021 Przede wszsytkim musisz zmienić "klucz", by pamięć była przydzielana dynamicznie, a nie jak teraz statycznie. A reszta to raczej modyfikacje wynikające z tej właśnie zmiany. W gruncie rzeczy wszsytkie 10-tki będą parametrami, no i jeszcze też ta 19 przy rand'zie. Jak czegoś nie rozumiesz to pytaj.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.