#75 vitamin
Nepotřebuju testovat přetečení. Smazat template nahoře... nevím hlásí to pořád nějaké chyby :( jde mi jen o ten úkol a jsem bezradný
Příspěvky odeslané z IP adresy 188.175.160.–
Kde je problém :(
Výstup má totiž vypadat takto - což bohužel opravdu nevím jak udělat :(
Zadejte dve binarni cisla:
10101 101001
Soucet: 111110
Zadejte dve binarni cisla:
1111100 100
Soucet: 10000000
Zadejte dve binarni cisla:
101 101
Soucet: 1010
Zadejte dve binarni cisla:
11111 111
Soucet: 100110
Zadejte dve binarni cisla:
001 000001
Soucet: 10
Zadejte dve binarni cisla:
10020 1001a0
Nespravny vstup.
Zadejte dve binarni cisla:
abraka1dabra0 1fuj0tajksl1
Nespravny vstup.
Upravil jsem to na tohle. Bohužel pořád ty chyby... Když zadám písmena, vyhodí to nesmyslnou hodnotu. Když zadám nějaká čísla 565545 apod nepíše to nic... Ale sčítání funguje...Bihužel pořád se bavíme o těch chybách
#include <cstdlib>
#include <iostream>
using namespace std;
bool check(int long number)
{
return ((number % 10 != 0) && (number % 10) != 1);
}
int main()
{
long int bin1, bin2;
int i = 0, zbytek = 0, sum[20];
cout << "Zadejte prvni bin. cislo: ";
cin >> bin1 >> bin2;
while( check(bin1) )
{
cout << "Nespravny vstup.";
}
while( check(bin2) )
{
cout << "Nespravny vstup.";
}
while ((bin1 != 0) || (bin2 != 0))
{
sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
bin1 = bin1/10;
bin2 = bin2/10;
}
if (zbytek != 0) sum[i++] = zbytek;
--i;
printf("Soucet dvou binarnich cisel je: ");
while (i >= 0) printf("%d", sum[i--]);
char reakce;
cin >> reakce;
return 0;
}
Napiš to prosím. Já už rezignoval na přemýšlení :(
Ach bože, nejede to. Když tam zadám například písmena, objeví se nějaký nedobrý ascii součet. Napište mi prosím celý kód, chci se toho jen rychle zbavit už, je to poslední úloha a nad moje síly :( DĚKUJI :(
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
long int bin1, bin2;
int i = 0, zbytek = 0, sum[20];
cout << "Zadejte dve binarni cisla:\n";
cin >> bin1 >> bin2;
while ((bin1 != 0) || (bin2 != 0))
{
sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
bin1 = bin1/10;
bin2 = bin2/10;
}
if (zbytek != 0) sum[i++] = zbytek;
--i;
if( (bin1 % 10 != 0) && (bin1 % 10) != 1){
cout << "cislo 1 nie je binarne" << endl;
}
if( (bin2 % 10 != 0) && (bin2 % 10) != 1){
cout << "cislo 2 nie je binarne" << endl;
}
cout << "Soucet: ";
while (i >= 0) printf("%d", sum[i--]);
char reakce;
cin >> reakce;
return 0;
}
Ukázal bys mi to prosím na kódu? Já už jsem z toho dneska zmatený, sedím u třech úkolů celý den, tohle je poslední a musím ho do půlnoci odevzdat :( Děkuji ti, dobrá Vílo :)
Další možné řešení, které ne a ne splňovat kritéria
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
long int bin1, bin2;
int i = 0, zbytek = 0, sum[20], number = 0;
cout << "Zadejte dve binarni cisla:\n";
cin >> bin1 >> bin2;
int dv;
number = bin1;
while(number!=0)
{
dv=number%10;
if(dv>1)
cout << "Neni binarni";
number=number/10;
}
number = bin2;
while(number!=0)
{
dv=number%10;
if(dv>1)
cout << "Neni binarni";
number=number/10;
}
while ((bin1 != 0) || (bin2 != 0))
{
sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
bin1 = bin1/10;
bin2 = bin2/10;
}
if (zbytek != 0) sum[i++] = zbytek;
--i;
cout << "Soucet: ";
while (i >= 0) printf("%d", sum[i--]);
char reakce;
cin >> reakce;
return 0;
}
Ošetření nesprávného výstupu se mi stále nedaří :(
#5 vitamin
Ještě jsem to opravil ale přesto heslo splňuje podmínky vždy, když zadám pět znaků :-( Prostě to nefunguje jak má :(
Prosím, poraďte mi někdo
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
bool cislo = false;
bool pismena = false;
bool znaky = false;
cin >> heslo;
for(int i = 0; i < 5; ++i)
{
if (heslo[i] >='0' && heslo[i] <='9')cislo = true;
{
if ((heslo[i] >='a' && heslo[i] <='z') || (heslo[i] >='A' && heslo[i] <='Z'))pismena = true;
{
if ((heslo[i] >='!' && heslo[i] <='/') || (heslo[i] >=':' && heslo[i] <='`') || (heslo[i] >='{' && heslo[i] <='~'))znaky = true;
{
cout << "Heslo splnuje pozadavky.";
char reakce;
cin >> reakce;
}
if(znaky == false)/*chyba*/;
{
cout << "Heslo nesplnuje pozadavky.";
return 0;
}
}
if(pismena == false)/*chyba*/;
{
cout << "Heslo nesplnuje pozadavky.";
return 0;
}
}
if(cislo == false)/*chyba*/;
{
cout << "Heslo nesplnuje pozadavky.";
return 0;
}
}
char reakce;
cin >> reakce;
return 0;
}
#5 vitamin
Napsal jsem to ještě jinak a je teď problém, že pokud nesplním podmínky se znaky, vypíše se 3x hláška heslo nesplňuje požadavky - potřebuju jen jednu hlášku. Ještě mi tam chybí zakomponovat podmínku, aby heslo mělo min 5 znaků. pokud má 5 znaků, program postupuje po řádcích, ale když nemá, zhroutí se...
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
bool cislo = false;
bool pismena = false;
bool znaky = false;
cin >> heslo;
for(int i = 0; i < 5; ++i){
if (heslo[i] >='0' && heslo[i] <='9')cislo = true;
}
if(cislo == false)/*chyba*/;
{
cout << "Heslo nesplnuje pozadavky.";
}
for(int i = 0; i < 5; ++i){
if ((heslo[i] >='a' && heslo[i] <='z') || (heslo[i] >='A' && heslo[i] <='Z'))pismena = true;
}
if(pismena == false)/*chyba*/;
{
cout << "Heslo nesplnuje pozadavky.";
}
for(int i = 0; i < 5; ++i){
if ((heslo[0] >='!' && heslo[0] <='/') || (heslo[0] >=':' && heslo[0] <='`') || (heslo[0] >='{' && heslo[0] <='~'))znaky = true;
}
if(znaky == false)/*chyba*/;
{
cout << "Heslo nesplnuje pozadavky.";
}
char reakce;
cin >> reakce;
return 0;
}
#5 vitamin
Udělal jsem to takhle, ovšem tam musím ještě zakomponovat podmínku, že heslo musí mít min 5 znaků. O bool toho moc nevím, pravda nepravda. Jak udělat výpis "Pokud pravda = zobrazí se Heslo splnuje pozadavky", pokud se vrací nepravda = Heslo nesplnuje pozadavky..."?
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
bool cislo = false;
bool pismena = false;
bool znaky = false;
cin >> heslo;
for(int i = 0; i < 5; ++i){
if (heslo[i] >='0' && heslo[i] <='9')cislo = true;
}
if(cislo == false)/*chyba*/;
for(int i = 0; i < 5; ++i){
if ((heslo[i] >='a' && heslo[i] <='z') || (heslo[i] >='A' && heslo[i] <='Z'))pismena = true;
}
if(pismena == false)/*chyba*/;
for(int i = 0; i < 5; ++i){
if ((heslo[0] >='!' && heslo[0] <='/') || (heslo[0] >=':' && heslo[0] <='`') || (heslo[0] >='{' && heslo[0] <='~'))znaky = true;
}
if(znaky == false)/*chyba*/;
cout << "Heslo splnuje pozadavky.";
char reakce;
cin >> reakce;
return 0;
}
Nene, takhle to nejde. Jak zaimponuju do testu všechny znaky?
Co tento kód?
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
long int bin1, bin2;
int i = 0, zbytek = 0, sum[20];
cout << "Zadejte dve binarni cisla:\n";
cin >> bin1 >> bin2;
while ((bin1 != 0) || (bin2 != 0))
{
sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
bin1 = bin1/10;
bin2 = bin2/10;
}
if (zbytek != 0) sum[i++] = zbytek;
--i;
cout << "Soucet: ";
while (i >= 0) printf("%d", sum[i--]);
char reakce;
cin >> reakce;
return 0;
}
Ahoj, mám program, do kterého uživatel musí vložit heslo. To musí obsahovat min pět znaků, obsahovat min jedno malé nebo velké písmeno, musí mít min jednu číslici a ještě jeden znak, který není písmeno ani číslice. Udělal jsem níže uvedený kód, o kterém jsem si myslel, že by měl fungovat. Bohužel asi tápu v podmínkách, jak se tak dívám. No studuju dálkově. Zkuste mi prosím poradit. Když uživatel splní podmínky zapsaného hesla, objeví se hláška "Heslo splňuje podmínky." V opačném případě "Heslo nesplňuje podmínky." Děkuji
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
cin >> heslo;
if (heslo.size() >= 5)
{
if ((heslo[0] >='a' && heslo[0] <='z') || (heslo[0] >='A' && heslo[0] <='Z'))
{
if (heslo[0] >='0' && heslo[0] <='9')
{
if ((heslo[0] >='!' && heslo[0] <='/') || (heslo[0] >=':' && heslo[0] <='`') || (heslo[0] >='{' && heslo[0] <='~'))
cout << "Heslo splnuje pozadavky.";
else cout << "Heslo nesplnuje pozadavky.";
}
else cout << "Heslo nesplnuje pozadavky.";
}
else cout << "Heslo nesplnuje pozadavky.";
}
else cout << "Heslo nesplnuje pozadavky.";
char reakce;
cin >> reakce;
return 0;
}