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