Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Brauche Hilfe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
17.06.2006, 09:55 Uhr
Uwe
C/C++ Master
(Administrator)


Hi,
OT

Zitat von (un)wissender:

Hans, du must mehr schlafen, dass geht nicht ewig gut so mit dir!


um diese Zeit kann aber auch nicht gesund sein (Frühstückst Du immer so?).
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 17.06.2006 um 09:57 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
17.06.2006, 11:20 Uhr
(un)wissender
Niveauwart


Nur wenn die Hände zittern.
Warum ich am Samstag vor fünf aufgestanden bin, hat mit meinem neuen tollen Nachbarn zu tun. Der hat wohl zuviel getrunken und war sehr laut. Schlafen ging da nicht mehr.
Ich glaube, ich mag keine Menschen, zumindest keine Nachbarn. Obwohl, da ist noch die Süße von nebenan...
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 17.06.2006 um 11:20 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
17.06.2006, 12:11 Uhr
kronos
Quotenfisch
(Operator)



Zitat von Hans:
@Kronos: Da ist wohl ein bisschen was schief gelaufen... :

Zitat:

(code)
...
(/cpp)



Gefixt : )


Zitat:

Ach ja, was soll das denn sein?

C++:
if (a[i]++=='9') a[i]='A';


Ich nehme mal an, das war so gemeint:

C++:
if (a[i++]=='9') a[i]='A';




Nee, das hat schon seinen sinn. Er soll ja die char-werte hochzählen. i wird beim rekursiven aufruf minuseinsmentiert.

@Schüler, jetzt sollte es funktionieren.
Könntest du die fertige Date dann bitte mal hochladen? : )

C++:
#include <stdio.h>
#include <string.h>

int f(char*a, int i)
{
    if (i<0) return 0;
    if (a[i]++=='9') a[i]='A';
    if (a[i]=='G') { a[i]='0'; return f(a,i-1); }
    return 1;
}

int main()
{
#define len 33
    FILE*o=fopen("out","w");
    char a[len+1];
    memset(a,'0',len);
    a[len]=0;
    while(f(a,len-1)) fprintf(o,"%s\n",a);
    return 0;
}

--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 17.06.2006 um 12:25 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
17.06.2006, 15:52 Uhr
~Schüler
Gast


Hallo Kronos,

erstmal wieder vielen Dank für deine Hilfe, allerdings hat das Programm einen Bug.
Es beginnt in der Ausgabedatei nicht mit ..0000 sondern mit ..0001

Und etwas verstehe ich nicht ganz, warum hast du len als Konstante definiert:
#define len 33

Ich hat folgende Erweiterung versucht um verschiedene Längen auszuprobieren und um nicht jedes mal den source ändern zu müssen:


Code:

#include <stdio.h>
#include <string.h>

int f(char*a, int i)
{
    if (i<0) return 0;
    if (a[i]++=='9') a[i]='A';
    if (a[i]=='G') { a[i]='0'; return f(a,i-1); }
    return 1;
}

int main()
{
    int len;
    printf("Länge: ");
    scanf("%d", &len);

    // #define len 33
    FILE*o=fopen("out","w");
    char a[len+1];
    memset(a,'0',len);
    a[len]=0;
    while(f(a,len-1)) fprintf(o,"%s\n",a);
    return 0;
}




funzt aber leider nicht, er meckert und sagt es müssen Kontanten sein:
Error FFNONAME00.CPP 20: Constant expression required
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
17.06.2006, 23:53 Uhr
Karldin Shinowa
Professional Noob


ein statisches array braucht ne konstante:
char a[Konstante] oder char a[Zahl]

Wennst das nicht willst gibts noch dynamische speicherbeschaffung wo man variablen nehmen kann: char*a=new char[Variable];

PS: das ist die C++ Version in C kann ichs net
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.

Dieser Post wurde am 17.06.2006 um 23:53 Uhr von Karldin Shinowa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
18.06.2006, 03:34 Uhr
Hans
Library Walker
(Operator)



Zitat von Karldin Shinowa:
Wennst das nicht willst gibts noch dynamische speicherbeschaffung wo man variablen nehmen kann: char*a=new char[Variable];

PS: das ist die C++ Version in C kann ichs net

Hi,
in C geht das mit malloc, also etwa so:

C++:
if ((a=malloc(variable*sizeof(char))) == NULL)
   exit(1);    /* Fehler. */


Würde wahrscheinlich auf 'ne verkettete Liste hinaus laufen. Oder man nimmt C-99, das kann auch arraygrössen dynamisch ändern. - Ist nur die Frage, ob der Compiler das unterstützt.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
18.06.2006, 06:02 Uhr
~Schüler
Gast


Gibts denn keine Möglich das Programm oben leichter abzuändern so das scanf den eingebenden Wert an len bzw. define übergeben kann ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
18.06.2006, 08:11 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
int main()
{
    int len;
    printf("Länge: ");
    scanf("%d", &len);

    if(len == 0)
    {
       fprintf(stderr, "Sorry! len muss größer 0 sein!\n");
       return 1;
    }

    FILE*o=fopen("out","w");
    char *a = calloc(1, len+1);
    memset(a,'0',len);
    a[len]=0;
    
    while(f(a,len-1))
      fprintf(o,"%s\n",a);

    free(a);
    return 0;
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
18.06.2006, 15:03 Uhr
~Schüler
Gast


Funzt leider nicht:


Code:

#include <stdio.h>
#include <string.h>

int f(char*a, int i)
{
    if (i<0) return 0;
    if (a[i]++=='9') a[i]='A';
    if (a[i]=='G') { a[i]='0'; return f(a,i-1); }
    return 1;
}

int main()
{
    int len;
    printf("länge: ");
    scanf("%d", &len);
    if(len == 0)
    {
       fprintf(stderr, "Sorry! Länge muss größer 0 sein!\n");
       return 1;
    }

    FILE*o=fopen("out","w");
    char *a = calloc(1, len+1);
    memset(a,'0',len);
    a[len]=0;
    
    while(f(a,len-1))
      fprintf(o,"%s\n",a);

    free(a);
    return 0;
}





Er schmeißt wieder Fehlermeldungen raus
Compiling FLEN.CPP:
Error FLEN.CPP 24: Function 'calloc' should have a prototype
Error FLEN.CPP 24: Cannot convert 'int' to 'char *'
Error FLEN.CPP 31: Function 'free' should have a prototype
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
18.06.2006, 18:46 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Ein blick in die Hilfe hätte dir den Fehler erklärt.


C++:
#include <malloc.h>




fehlt natürlich noch. Bischen eigeninitiative wär evtl trotz allem sinnvoll ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: