Den 12-03-05 14:57 skrev Bertel Brander følgende:
-----------------------------------------------------------------------------
En fixed version:
#include <math.h>
#include <iostream>
int RandomTal (int cifrer)
{
int Tal;
int kode = 0;
int counteri;
for(counteri = 0; counteri != cifrer; counteri++)
{
Tal = rand() % 10;
kode += Tal * (int )pow(10, counteri);
}
return kode;
}
int main()
{
std::cout << RandomTal(1) << std::endl;
std::cout << RandomTal(2) << std::endl;
std::cout << RandomTal(3) << std::endl;
std::cout << RandomTal(4) << std::endl;
}
Vigtige ændringer:
kode -> int, ellers kan den kun håndtere tal med to cifre.
pow delen (husk include math.h), pow(10, 1) = 10, pow(10, 2) = 100 osv.
Tal behøver ikke være et array.
[Redigeret d. 12/03-05 14:59:57 af Bertel Brander]-----------------------------------------------------------------------------
Tak, det ser ud til at virke. Men ikke hvis man skriver højere tal f.eks. RandomTal(10) så kommer der nogle gange kun 9 cifre..
Det er til et program der laver cd keys og der skal der jo være tre tal eller sådan noget med - imellem dem... (3937-74382-3243)
Men når jeg prøver at skrive en char ud med tallene og -`ene så llaver den felj..
(det er til en windows applikation)
int Tal1;
int Tal2;
int Tal3;
char koden;
Tal1 = RandomTal(4);
Tal2 = RandomTal(5);
Tal3 = RandomTal(4);
koden = Tal1 + "-" + Tal2 + "-" + Tal3;
SetDlgItemText(hwnd, IDC_MAIN_EDIT, koden);
invalid operands of types `const char*' and `const char[2] ' to binary `operator+'
og
invalid conversion from `char' to `const CHAR*'
Hvordan løser jeg det???
<===>
Jeppe
www.jeppe45.1go.dk