Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: DOS und Win32-Konsole ::  seltsame printf ausgabe bei Heron Verfahren     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Alistair1231
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.10.2011
Beiträge: 4
Beitrag Alistair1231 Mitglied 15:49:13 28.10.2011   Titel:   seltsame printf ausgabe bei Heron Verfahren            Zitieren

Hallo Ich habe mir (als wir in der schule das Heron verfahren durchgenommen haben) gedacht ich schreibe dazu mal ein programm. so: jetzt habe ich den code eigentlich soweit fertig, aber jetzt, wenn ich das programm an mache gibt er mir als ergebnis etwas wie "0.0000000009" jedes mal aus... egal mit welcher Zahl ich ihn rechnen lasse... Hilfe! :)

Achja... Hier der Code:
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>

int main()
{
int loops,schleife,art,men3,mom=0, default;
double start,erg,test,geg;

printf("Zahl:\n");
scanf("%d", &geg);


printf("\nVorgehensart? \n 1. bestimmte Anzahl Wiederholungen? \n 2. Bis zum bitteren Ende \(nicht empfohlen\) \n 3. 1000 Wiederholungen? \n\n ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben \n");
scanf("%d", &art);

start=1;

switch(art) {

case 1:  {
printf("Wie viele?\n");
scanf("%d", &loops);
while(schleife<=loops)  {
erg=0.5*(start+(start/geg));
start=erg;
printf("%d: zwichenergebnis: %f0.9\n", mom,erg);
schleife++;
mom++; }
printf("\n %d Endergebnis: %f0.9", mom, erg);
break;  }

case 2:  {
while(geg != test)  {
erg=0.5*(start+(start/geg));
start=erg;
printf("zwichenergebnis: %f0.9\n", erg);   }
printf("\nEndergebnis: %f0.9", erg);
break;  }

case 3:  {
while(men3 <= 1000) {
erg=0.5*(start+(start/geg));
start=erg;
printf("zwichenergebnis: %f0.9\n", erg);
men3++;
mom++; }
printf("\nEndergebnis: %f0.9", erg);
break;  }

default:  {
default++;
break;    }

return 0;

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>

int main()
{
int loops,schleife,art,men3,mom=0, default;
double start,erg,test,geg;

printf("Zahl:\n");
scanf("%d", &geg);


printf("\nVorgehensart? \n 1. bestimmte Anzahl Wiederholungen? \n 2. Bis zum bitteren Ende \(nicht empfohlen\) \n 3. 1000 Wiederholungen? \n\n ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben \n");
scanf("%d", &art);

start=1;

switch(art) {

case 1: {
printf("Wie viele?\n");
scanf("%d", &loops);
while(schleife<=loops) {
erg=0.5*(start+(start/geg));
start=erg;
printf("%d: zwichenergebnis: %f0.9\n", mom,erg);
schleife++;
mom++; }
printf("\n %d Endergebnis: %f0.9", mom, erg);
break; }

case 2: {
while(geg != test) {
erg=0.5*(start+(start/geg));
start=erg;
printf("zwichenergebnis: %f0.9\n", erg); }
printf("\nEndergebnis: %f0.9", erg);
break; }

case 3: {
while(men3 <= 1000) {
erg=0.5*(start+(start/geg));
start=erg;
printf("zwichenergebnis: %f0.9\n", erg);
men3++;
mom++; }
printf("\nEndergebnis: %f0.9", erg);
break; }

default: {
default++;
break; }

return 0;

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>

int main()
{
int loops,schleife,art,men3,mom=0, default;
double start,erg,test,geg;

printf("Zahl:\n");
scanf("%d", &geg);


printf("\nVorgehensart? \n 1. bestimmte Anzahl Wiederholungen? \n 2. Bis zum bitteren Ende \(nicht empfohlen\) \n 3. 1000 Wiederholungen? \n\n ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben \n");
scanf("%d", &art);

start=1;

switch(art) {

case 1:  {
printf("Wie viele?\n");
scanf("%d", &loops);
while(schleife<=loops)  {
erg=0.5*(start+(start/geg));
start=erg;
printf("%d: zwichenergebnis: %f0.9\n", mom,erg);
schleife++;
mom++; }
printf("\n %d Endergebnis: %f0.9", mom, erg);
break;  }

case 2:  {
while(geg != test)  {
erg=0.5*(start+(start/geg));
start=erg;
printf("zwichenergebnis: %f0.9\n", erg);   }
printf("\nEndergebnis: %f0.9", erg);
break;  }

case 3:  {
while(men3 <= 1000) {
erg=0.5*(start+(start/geg));
start=erg;
printf("zwichenergebnis: %f0.9\n", erg);
men3++;
mom++; }
printf("\nEndergebnis: %f0.9", erg);
break;  }

default:  {
default++;
break;    }

return 0;

}


Grüsse
Alistair
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 16:01:37 28.10.2011   Titel:              Zitieren

Soweit ich das jetzt beim kurzen Drüberschauen gesehen habe, muss das im printf()-Befehl IMHO so aussehen:
C/C++ Code:
%0.9f
C/C++ Code:
%0.9f
C/C++ Code:
%0.9f
statt
C/C++ Code:
%f0.9
C/C++ Code:
%f0.9
C/C++ Code:
%f0.9

_________________
Planet *Earth = new Planet(); //Schöpfung
Alistair1231
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.10.2011
Beiträge: 4
Beitrag Alistair1231 Mitglied 16:17:18 28.10.2011   Titel:              Zitieren

wenn ich
C/C++ Code:
%f0.9
C/C++ Code:
%f0.9
C/C++ Code:
%f0.9

mit
cpp]%0.9f] ersetze,

kommt immernoch was andres als das erhoffte raus...

jetzt kommt stadt
Code:
0.000000000.9
Code:
0.000000000.9
Code:
0.000000000.9

das
Code:
0.000000000
Code:
0.000000000
Code:
0.000000000
:( :confused:
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 18:25:37 28.10.2011   Titel:              Zitieren

Ich habe mir die Heron-Formel noch einmal angeschaut, der Fehler liegt nämlich in der Berechnung selbst:
C/C++ Code:
erg=0.5*(start+(geg/start));
C/C++ Code:
erg=0.5*(start+(geg/start));
C/C++ Code:
erg=0.5*(start+(geg/start));
statt
C/C++ Code:
erg=0.5*(start+(start/geg));
C/C++ Code:
erg=0.5*(start+(start/geg));
C/C++ Code:
erg=0.5*(start+(start/geg));


Jetzt kommen auch richtige Ergebnisse raus ;)

MfG
Chris_

EDIT: Mit welchem Compiler ist dein oben gezeigter Code kompilierbar? :confused:

_________________
Planet *Earth = new Planet(); //Schöpfung


Zuletzt bearbeitet von Chris_ am 18:27:45 28.10.2011, insgesamt 1-mal bearbeitet
Alistair1231
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.10.2011
Beiträge: 4
Beitrag Alistair1231 Mitglied 18:42:08 28.10.2011   Titel:              Zitieren

Ich Idiot :D
Ja klar...
//

Chris_ schrieb:

EDIT: Mit welchem Compiler ist dein oben gezeigter Code kompilierbar? :confused:


Ich nutze Dev-C++
Nicht gut? :)
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 20:32:34 28.10.2011   Titel:              Zitieren

Dev-C++ ist meines Wissens veraltet.
Als bessere Alternative wird hierzu oft die kostenlose Variante (Express Edition glaube ich) von Visual Studio empfohlen. (Womit ich selbst leider keine Erfahrung habe)

MfG
Chris_

_________________
Planet *Earth = new Planet(); //Schöpfung
DirkB
Unregistrierter




Beitrag DirkB Unregistrierter 10:18:25 29.10.2011   Titel:              Zitieren

Es gibt seit Sommer neuere Versionen von Dev-C++.
Die sind aber nicht auf der alten Webseite.
Steht auch in der FAQ Dev-C++ ist veraltet!
Alistair1231
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.10.2011
Beiträge: 4
Beitrag Alistair1231 Mitglied 17:48:28 29.10.2011   Titel:              Zitieren

k :) Hab jetzt sowieso mal wieder Windoof vertrieben und mir Ubuntu installiert.. ( Gibts denn bei gcc irgendwelche Einwände? :D )

//

Hab den code jetzt mal was überarbeitet... (hab die rechenschritte in eine funktion gepackt und hab die double- mit floatvariablen ersetzt)

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <stdio.h>



float rechnen (float start,float geg);
void main()

{

int loops,schleife,art,men3,mom=0; //loops=wenn menüpunkt1 wieviele wiederholungen? ; art=menüauswahl für switch ; men3=menüpunkt3 (für while)

                                       //geg= gegebene Zahl ; schleife=gegenzahl case 1 ; mom= momentane zahl


float start,erg,test,geg;          // start+start2=Zahlen für Mittelwert ; Erg= errechneter mittelwert ; test=test  für case 2



printf("Zahl:\n");

scanf("%f", &geg);



Idiot:  {

printf("\nVorgehensart? \n 1. bestimmte Anzahl Wiederholungen? \n 2. Bis zum bitteren Ende (nicht empfohlen) \n 3. 1000 Wiederholungen? \n\n ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben \n");

scanf("%d", &art);  }



start=1;



switch(art) {



case 1:  {

printf("Wie viele?\n");

scanf("%d", &loops);

while(schleife<=loops)  {

start = erg = rechnen(start,geg);

printf("%d: zwichenergebnis: %.9f\n", mom,erg);

schleife++;

mom++; }

printf("\n %d Endergebnis: %.9f \n", mom, erg);

break;  }



case 2:  {

while(geg != test)  {

start = erg = rechnen(start,geg);

printf("zwichenergebnis: %.9f\n", erg);   }

printf("\nEndergebnis: %.9f", erg);

break;  }



case 3:  {

while(men3 <= 1000) {

start = erg = rechnen(start,geg);

printf("zwichenergebnis: %.9f\n", erg);

men3++;

mom++; }

printf("\nEndergebnis: %.9f", erg);

break;  }



default:  {

printf("Idiot^^ Lesen bildet!");

goto Idiot;

break;          }

}



}

float rechnen(float start,float geg)    {
return 0.5*(start+(start/geg));    }
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <stdio.h>



float rechnen (float start,float geg);
void main()

{

int loops,schleife,art,men3,mom=0; //loops=wenn menüpunkt1 wieviele wiederholungen? ; art=menüauswahl für switch ; men3=menüpunkt3 (für while)

//geg= gegebene Zahl ; schleife=gegenzahl case 1 ; mom= momentane zahl


float start,erg,test,geg; // start+start2=Zahlen für Mittelwert ; Erg= errechneter mittelwert ; test=test für case 2



printf("Zahl:\n");

scanf("%f", &geg);



Idiot: {

printf("\nVorgehensart? \n 1. bestimmte Anzahl Wiederholungen? \n 2. Bis zum bitteren Ende (nicht empfohlen) \n 3. 1000 Wiederholungen? \n\n ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben \n");

scanf("%d", &art); }



start=1;



switch(art) {



case 1: {

printf("Wie viele?\n");

scanf("%d", &loops);

while(schleife<=loops) {

start = erg = rechnen(start,geg);

printf("%d: zwichenergebnis: %.9f\n", mom,erg);

schleife++;

mom++; }

printf("\n %d Endergebnis: %.9f \n", mom, erg);

break; }



case 2: {

while(geg != test) {

start = erg = rechnen(start,geg);

printf("zwichenergebnis: %.9f\n", erg); }

printf("\nEndergebnis: %.9f", erg);

break; }



case 3: {

while(men3 <= 1000) {

start = erg = rechnen(start,geg);

printf("zwichenergebnis: %.9f\n", erg);

men3++;

mom++; }

printf("\nEndergebnis: %.9f", erg);

break; }



default: {

printf("Idiot^^ Lesen bildet!");

goto Idiot;

break; }

}



}

float rechnen(float start,float geg) {
return 0.5*(start+(start/geg)); }
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <stdio.h>



float rechnen (float start,float geg);
void main()

{

int loops,schleife,art,men3,mom=0; //loops=wenn menüpunkt1 wieviele wiederholungen? ; art=menüauswahl für switch ; men3=menüpunkt3 (für while)

                                       //geg= gegebene Zahl ; schleife=gegenzahl case 1 ; mom= momentane zahl


float start,erg,test,geg;          // start+start2=Zahlen für Mittelwert ; Erg= errechneter mittelwert ; test=test  für case 2



printf("Zahl:\n");

scanf("%f", &geg);



Idiot:  {

printf("\nVorgehensart? \n 1. bestimmte Anzahl Wiederholungen? \n 2. Bis zum bitteren Ende (nicht empfohlen) \n 3. 1000 Wiederholungen? \n\n ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben \n");

scanf("%d", &art);  }



start=1;



switch(art) {



case 1:  {

printf("Wie viele?\n");

scanf("%d", &loops);

while(schleife<=loops)  {

start = erg = rechnen(start,geg);

printf("%d: zwichenergebnis: %.9f\n", mom,erg);

schleife++;

mom++; }

printf("\n %d Endergebnis: %.9f \n", mom, erg);

break;  }



case 2:  {

while(geg != test)  {

start = erg = rechnen(start,geg);

printf("zwichenergebnis: %.9f\n", erg);   }

printf("\nEndergebnis: %.9f", erg);

break;  }



case 3:  {

while(men3 <= 1000) {

start = erg = rechnen(start,geg);

printf("zwichenergebnis: %.9f\n", erg);

men3++;

mom++; }

printf("\nEndergebnis: %.9f", erg);

break;  }



default:  {

printf("Idiot^^ Lesen bildet!");

goto Idiot;

break;          }

}



}

float rechnen(float start,float geg)    {
return 0.5*(start+(start/geg));    }

gcc zickt nicht un kompiliert das ganze, wenn ich aber dann folgendes mache:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
~/Arbeitsfläche$ ./a.out
Zahl:
8

Vorgehensart?
 1. bestimmte Anzahl Wiederholungen?
 2. Bis zum bitteren Ende (nicht empfohlen)
 3. 1000 Wiederholungen?

 ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben
1
Wie viele?
1000

 0 Endergebnis: -1.507821083
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
~/Arbeitsfläche$ ./a.out
Zahl:
8

Vorgehensart?
1. bestimmte Anzahl Wiederholungen?
2. Bis zum bitteren Ende (nicht empfohlen)
3. 1000 Wiederholungen?

ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben
1
Wie viele?
1000

0 Endergebnis: -1.507821083
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
~/Arbeitsfläche$ ./a.out
Zahl:
8

Vorgehensart?
 1. bestimmte Anzahl Wiederholungen?
 2. Bis zum bitteren Ende (nicht empfohlen)
 3. 1000 Wiederholungen?

 ALS ANTWORT BITTE EINFACH 1,2 oder 3 angeben
1
Wie viele?
1000

 0 Endergebnis: -1.507821083

gibt er mir dennoch ein seltsames Ergebnis... so langsam komm ich mir ziemlich dumm vor... kann mir jemand helfen? :D
DirkB
Unregistrierter




Beitrag DirkB Unregistrierter 21:28:03 29.10.2011   Titel:              Zitieren

Bitte formatier das nochmal anständig, davon bekommt man ja Augencrepes.

Hinweise unter Einrückungsstil

Und ich sehe da auch kein double.
Und versuch unbedingt das goto los zu werden. Das ist da nicht nötig.
Blubberauto
Unregistrierter




Beitrag Blubberauto Unregistrierter 22:30:34 31.10.2011   Titel:   Schleife nicht initialisiert            Zitieren

Du deklarierst die variable "schleife" und vergleichst den Wert der Variable "schleife" ohne sie initialisiert zu haben bzw definiert. Deswegen halte deine Variablen so Lokal wie möglich und definiere sie so schnell wie möglich. Dann passiert so etwas nicht.

Wenn die Variable sofort einen Wert zugewiesen wird, brauchst du sie nicht zu definieren.

Z.B:

int a;
cin >> a;
BlubberBlubb
Unregistrierter




Beitrag BlubberBlubb Unregistrierter 22:37:17 31.10.2011   Titel:   Hmm            Zitieren

Überleg dir mal ob du nicht vllt lieber Assembler programmieren möchtest :D
Da kannset so viel goto benutzen wie du willst. Und das führt zum Spagetthi Code.

In C++ gibt es Schleifen dafür z.B for(); oder kopf, fußgesteuerte Schleifen z.B while();

Ist viel eleganter und nicht so fehleranfällig.
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 01:19:11 02.11.2011   Titel:              Zitieren

In deinem geposteten Code steht immer noch
C/C++ Code:
return 0.5*(start+(start/geg));
C/C++ Code:
return 0.5*(start+(start/geg));
C/C++ Code:
return 0.5*(start+(start/geg));

Es muss aber wie gesagt
C/C++ Code:
return 0.5*(start+(geg/start));
C/C++ Code:
return 0.5*(start+(geg/start));
C/C++ Code:
return 0.5*(start+(geg/start));
heißen.
Nach dieser Anpassung und denen meiner Vorredner dürfte dein Code zumindest funktionsfähig sein. ;)
Zitat:
gcc zickt nicht un kompiliert das ganze

Das wundert mich doch sehr! zumindest bei "void main" spuckt der gcc normalerweise eine Warnung aus oder? :confused:
Welche Version benutzt du?

_________________
Planet *Earth = new Planet(); //Schöpfung
nt0r
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.09.2011
Beiträge: 20
Beitrag nt0r Mitglied 18:41:59 13.11.2011   Titel:              Zitieren

Vermeide unnötigen Code! Du hast da ja größtenteils 3 mal das selber geschrieben. Das kannst du auch in eine Schleife mit ein paar Flags/Bool-Variablen packen.
Und goto kann man schon einmal verwenden (mach ich auchmal bei verschachtelten Schleifen) , aber bestenfalls vermeiden ;)

_________________
A..a..aber ich hab doch nur was ganz kleines geändert.
merano
Mitglied

Benutzerprofil
Anmeldungsdatum: 21.12.2006
Beiträge: 231
Beitrag merano Mitglied 21:34:31 27.11.2011   Titel:   Re: Schleife nicht initialisiert            Zitieren

Blubberauto schrieb:
Du deklarierst die variable "schleife" und vergleichst den Wert der Variable "schleife" ohne sie initialisiert zu haben bzw definiert. Deswegen halte deine Variablen so Lokal wie möglich und definiere sie so schnell wie möglich. Dann passiert so etwas nicht.

Wenn die Variable sofort einen Wert zugewiesen wird, brauchst du sie nicht zu definieren.

Z.B:

int a;
cin >> a;


Wenn er einen richtigen Compiler verwendet hätte wäre das auch angezeigt worden:

Code:
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1>heron.cpp(18): warning C4996: 'scanf':
  This function or variable may be unsafe. Consider using scanf_s instead.  
1>heron.cpp(26): warning C4996: 'scanf':
  This function or variable may be unsafe. Consider using scanf_s instead.  
1>heron.cpp(42): warning C4996: 'scanf':
  This function or variable may be unsafe. Consider using scanf_s instead.  
1>heron.cpp(106): warning C4244: 'return':
  Konvertierung von 'double' in 'float', möglicher Datenverlust
1>heron.cpp(44): warning C4700: Die nicht initialisierte lokale Variable "schleife" wurde verwendet.
1>heron.cpp(62): warning C4700: Die nicht initialisierte lokale Variable "test" wurde verwendet.
1>heron.cpp(76): warning C4700: Die nicht initialisierte lokale Variable "men3" wurde verwendet.
Code:
1
2
3
4
5
6
7
8
9
10
11
1>heron.cpp(18): warning C4996: 'scanf':
This function or variable may be unsafe. Consider using scanf_s instead.
1>heron.cpp(26): warning C4996: 'scanf':
This function or variable may be unsafe. Consider using scanf_s instead.
1>heron.cpp(42): warning C4996: 'scanf':
This function or variable may be unsafe. Consider using scanf_s instead.
1>heron.cpp(106): warning C4244: 'return':
Konvertierung von 'double' in 'float', möglicher Datenverlust
1>heron.cpp(44): warning C4700: Die nicht initialisierte lokale Variable "schleife" wurde verwendet.
1>heron.cpp(62): warning C4700: Die nicht initialisierte lokale Variable "test" wurde verwendet.
1>heron.cpp(76): warning C4700: Die nicht initialisierte lokale Variable "men3" wurde verwendet.
Code:
1
2
3
4
5
6
7
8
9
10
11
1>heron.cpp(18): warning C4996: 'scanf':
  This function or variable may be unsafe. Consider using scanf_s instead.  
1>heron.cpp(26): warning C4996: 'scanf':
  This function or variable may be unsafe. Consider using scanf_s instead.  
1>heron.cpp(42): warning C4996: 'scanf':
  This function or variable may be unsafe. Consider using scanf_s instead.  
1>heron.cpp(106): warning C4244: 'return':
  Konvertierung von 'double' in 'float', möglicher Datenverlust
1>heron.cpp(44): warning C4700: Die nicht initialisierte lokale Variable "schleife" wurde verwendet.
1>heron.cpp(62): warning C4700: Die nicht initialisierte lokale Variable "test" wurde verwendet.
1>heron.cpp(76): warning C4700: Die nicht initialisierte lokale Variable "men3" wurde verwendet.


Bem: Bei gcc lassen sich zumindest alle Warnings einschalten (-Wall -Wconversion -pedantic ...). Leider merkt der gcc vieles dann aber auch noch nicht ...


Zuletzt bearbeitet von merano am 21:38:36 27.11.2011, insgesamt 1-mal bearbeitet
C/C++ Forum :: DOS und Win32-Konsole ::  seltsame printf ausgabe bei Heron Verfahren   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.