Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Ein Fehler im Code, den ich nicht finden kann :(

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 <
000
13.10.2007, 20:50 Uhr
~Eidura
Gast


Hallo,

Ich habe für einen Privaten Test ein c++ Programm geschrieben, bei welchem ich jedoch den Fehler einfach nicht finden kann. Die Fehlerausgabe hilft mir leider auch nicht viel weiter, da ich eher Anfänger bin ....



C++:
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include "string.h"
void main()
{

int iMax, iMin, iZahl, iW1, iW2, iX, iY, iDif,iB1;

printf("Willkommen im Insulinpumpen Programm.\nBitte wählen Sie:\n\n");
printf("-----------------------Menue--------------------------------");

for (iX=0;iX<5;iX++)
{                                                                                  //Menü
printf("Einstellungen [1]\n");
printf("Start         [2]\n\n");
scanf("%d",&iW1);

if (iW1 == 1)
{   printf("----------------------Einstellungen-------------------------");   //Eisntellungen
  printf("\nBitte geben sie den Minimalwert ein:");
  scanf("%d",&iMin);
  printf("\nBitte geben sie den Maximalwert ein:");
  scanf("%d",&iMax);
  printf("\nBitte geben sie die Maximale Differenz der ausgebenden Zahlen ein:");
  scanf("%d",& iDif);

  iX=0;
}
else
{
        for (iY=0;iY<5;iY++)
        {
            randomize();
            
                                                                                   //Start der 5
            printf("----------Start-----------");
            
            iB1 = iMax-iMin;
         iZahl =random(iB1+1);                  
         iZahl = iZahl + iMin;                          
         printf("\n%d",iZahl);                      
                  
         iB1 = 100;  
            
            iMin = iZahl - 50;                                                      
      iZahl =random(iB1+1);            
         iZahl = iZahl + iMin;          
         printf("\n%d",iZahl);                          
                
            iMin = iZahl - 50;                              
      iZahl =random(iB1+1);                
         iZahl = iZahl + iMin;            
         printf("\n%d",iZahl); ;
                
            iMin = iZahl - 50;                              
      iZahl =random(iB1+1);                
         iZahl = iZahl + iMin;            
         printf("\n%d",iZahl);
                
            iMin = iZahl - 50;                            
      iZahl =random(iB1+1);                
         iZahl = iZahl + iMin;            
         printf("\n%d",iZahl);
            
            printf("Neue Werte ? Ja [1] Nein [2]");
            scanf("%d",&iW2);

   if (iW2 == 1)
   {
             iY=0;
      }
        else
         {
             iY=6;        
         }
         }
  
}
        
}



fflush (stdin);
getchar();
}



Könnt ihr mir vielleicht helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2007, 20:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


was sagt er denn? bzw was ist denn der fehler? meine glaskugel ist wegen athmosphärischer Störungen momentan leider nicht funktionstüchtig.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.10.2007, 21:24 Uhr
mischa
Fragender


Ich habe deinen Code mal flüchtig angeschaut und mir sind da paar Sachen aufgefallen, bin aber nicht sicher ob das der Ursprung des Fehlers ist.
1. Dein Code ist C und nicht C++
2. du hast ein "string.h" stehen. Ich weiß ja nicht ob du eine eigene string header benutzts, aber wenn nicht sollte es <string.h> heißen.
3.Du hast <alloc.h> includiert aber ich sehe nirgend wo dich mit Heap arbeiten.
4.Am ende hast du fflush (stdin); stehen. Abgesehen davon das es falsch geschrieben ist, ist es aus C++ glaub ich und du brauchst es nicht und die passenden Header sind dafür auch nicht da.
Alle Angaben ohne Gewär
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.10.2007, 21:34 Uhr
~f.-th.
Gast


Ist ja schon ein paar Tage her, aber, wenn es ein Medizin-Programm werden soll
ist ein Rückgabewert oft sinnvoll deshalb
statt: void main() nimm: int main() und vor der letzten Klammer return();

zwei mal Zeilenvorschub ergänzen <- nur optische Vorteile

Willst du bis 125 Berechnungen durchführen?

Ansonsten macht das Programm das was im Code steht.
Was denkst du denn was es machen sollte?
Ist dein Compiler so instaliert, das er funktioniert?

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.10.2007, 21:45 Uhr
0xdeadbeef
Gott
(Operator)



C++:
fflush(stdin);


Erzeugt laut C-Standard undefiniertes Verhalten. Flushen kann man - logischerweise - nur Ausgabeströme. Unter DOS/Windows schmeißt es alle Zeichen im Eingabepuffer weg. Mit C++ hat das allerdings herzlich wenig zu tun, und falsch geschrieben ist es - abgesehen davon, dass es semantisch nur wenig Sinn ergibt - nicht.

randomize() ist mir nicht bekannt, steht auch im Standard so nicht drin. random() ist eine BSD-Funktion - etwas seltsam, die in unportablem Windows-Code zu finden... Stattdessen besser:

C++:
#include <stdlib.h>
#include <time.h>

/* ... */

srand(time(NULL));

int zufallszahl = rand();


...das kompiliert dann überall. (Für C++-Code analog <cstdlib> und <ctime> #includen, und std::srand, std::time bzw. std::rand verwenden, oder sich mal boost.random ankucken)
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.10.2007, 07:31 Uhr
~f.-th.
Gast


randomize() und random() sind Funktionen in Borland-Compilern.

Die eine oder beide der Funktionen wurden auch in anderen Compilern implementiert aber
kein c-Standard.

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: