[00:00] Songs gespielt gestern: 5
[00:01] Alles Gute an JNDR
[20:00] Lottoziehung in 02d 00:00h
[00:00] Songs gespielt gestern: 4
[00:01] Alles Gute an aWu
[15:08] Post by Aragorn @ 100.000 Beiträge Projekt
Trackmania Minecraft Andere Spiele
Antwort
Themen-Optionen
#1
Alt 05.11.07, 14:07:08
Reden Zahls C-Kniffelclub Runde 1
Zahl
Benutzerbild von Zahl
Senior Member Täglich verrückt!
Registriert seit: 29.01.03
Alter: 38
Geschlecht: ♂
Beiträge: 11.522
IRC Zeilen: 181310
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
So, hier gib es ja wahrscheinlich sehr viele C Programmierer *hust*, darum hier
mal ein lustiges Rätsel. Heute Morgen meldete sich ein Kollege bei mir mit
einem simplen C Programm, was offensichtlich falsch rechnet.
Code:
#include <stdio.h>
//#include <math.h>

int main() {
   int iBas = 0, iPo = 0;
   int erg;
   do {
      iPo=1;
      iBas = iBas + 1;
      printf("\n%d: ", iBas);
      do {
         erg = pow(iBas,iPo);
         printf(" %d (%d^%d)", erg,iBas,iPo);
         //printf(" %d ",erg);
         iPo = iPo + 1;
      } while( iPo != 4 );
   } while( iBas != 7 );

   erg=pow(5,2);
   //printf("\n\n%d ", iPo);
   printf("\n\n%d ", erg);

   return 0;
}
Die Lösung ist recht einfach, aber im ersten Moment guckt man mal doof. Wer
nicht so fit in Mathe ist und den Fehler nicht sofort findet: Die 5er Reihe ist falsch.
(Evtl. tritt das Problem auch nicht mit allen Compilern auf, in dem Fall war es gcc)


Viel Spaß. Wer das Problem löst kriegt nen neuen Usertitel


風向轉變時,有人築牆,有人造風車
#2
Alt 05.11.07, 14:21:26
blue
Benutzerbild von blue
Big Daddy
Registriert seit: 02.02.03
Alter: 37
Geschlecht: ♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3

Spenden-Award Spenden-Award Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

blue eine Nachricht über ICQ schicken
Das liegt an den Castings. pow ist mehrfach überladen. Es gibt aber keine pow Funktion, die zwei Integer übernimmt. Aus dem Grund immer geeignet casten.

Aber hier sieht man mal wie stark der Visual C++ Compiler ist (Joa, ich liebe die M$ IDE ), der hat mich deinen Code erst gar nicht kompilieren lassen

Code:
#include <stdio.h>
#include <math.h>

int main() {
   int iBas = 0, iPo = 0;
   int erg;
   do {
   	iPo=1;
   	iBas = iBas + 1;
   	printf("\n%d: ", iBas);
   		do {
   			erg = (int)pow((double)iBas,(double)iPo);
   			printf(" %d (%d^%d)", erg,iBas,iPo);
   			//printf(" %d ",erg);
   			iPo = iPo + 1;
   			}while( iPo != 4 );

   	} while( iBas != 7 );

   	erg=(int)pow((double)5,(double)2);
   	//printf("\n\n%d ", iPo);
   	printf("\n\n%d ", erg);

   return 0;
}

Ach und jetzt verpass mir mal nen neuen Benutzertitel

C++ ist böse
Die Unterschiede [der Programmiersprachen] sind enorm: Während Programme wie die Schreibsoftware Microsoft Word mit HTML programmiert wurden, greifen die Entwickler von Metzel-Games oft zu der Hacker-Programmiersprache C++. Wie gefährlich diese Sprache für Jugendliche ist, zeigte sich erst im September 2009, als der schülerVZ-Hacker Matthias L. vor seinem Selbstmord einen Abschiedsbrief verfaßte – in C++.
#3
Alt 05.11.07, 14:41:54
Zahl
Benutzerbild von Zahl
Senior Member Täglich verrückt!
Registriert seit: 29.01.03
Alter: 38
Geschlecht: ♂
Beiträge: 11.522
IRC Zeilen: 181310
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
Minus 10 Punkte für Blue. Das ist C und MSVC++ ist kein richtiger C Compiler
Unter gcc löst das ganze das Problem übrigens nicht.

EDIT: So sieht die Ausgabe vom obigen Programm mit gcc aus:
1: [ 1 ( 1 ^ 1 )][ 1 ( 1 ^ 2 )][ 1 ( 1 ^ 3 )]
2: [ 2 ( 2 ^ 1 )][ 4 ( 2 ^ 2 )][ 8 ( 2 ^ 3 )]
3: [ 3 ( 3 ^ 1 )][ 9 ( 3 ^ 2 )][ 27 ( 3 ^ 3 )]
4: [ 4 ( 4 ^ 1 )][ 16 ( 4 ^ 2 )][ 64 ( 4 ^ 3 )]
5: [ 5 ( 5 ^ 1 )][ 24 ( 5 ^ 2 )][ 124 ( 5 ^ 3 )]
6: [ 6 ( 6 ^ 1 )][ 36 ( 6 ^ 2 )][ 216 ( 6 ^ 3 )]


風向轉變時,有人築牆,有人造風車
#4
Alt 05.11.07, 14:47:41
ultimo
Benutzerbild von ultimo
Senior Member Täglich verrückt!
Registriert seit: 12.05.06
Alter: 34
Geschlecht: ♂
Beiträge: 2.224
IRC Zeilen: 10557
Quizrunden gewonnen: 5

Spenden-Award Spenden-Award Bronzener Topposter Core-Award Blecherner Postaward 

ultimo eine Nachricht über ICQ schicken
keine ahnung...kann nur Java und n bissle TurboPascal

Bewertung zu diesem Post
blue stimmt nicht zu: Ja ne is kla

[ http://bfbc2.elxx.net/sig/detail4/pc/ultimo89.png ]

"What's a Kansas City Shuffle?"
"A Kansas City Shuffle is when everybody looks right, you go left."
#5
Alt 05.11.07, 14:49:32
blue
Benutzerbild von blue
Big Daddy
Registriert seit: 02.02.03
Alter: 37
Geschlecht: ♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3

Spenden-Award Spenden-Award Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

blue eine Nachricht über ICQ schicken
Zitat von ultimo
keine ahnung...kann nur Java und n bissle TurboPascal
Sitz du im Matheunterricht auch da und sagst "Nee, a*b kann ich nicht rechnen, ich kann nur 1+1, 1+2 ..."?!? ~.~

Zitat von irc
<Zahl>aber ums kurz zu machen
<Zahl>es liegt schon an den datentypen
<Zahl>nur
<blue>hrough ..
* blue hatte recht
Und ich hatte doch Recht

C++ ist böse
Die Unterschiede [der Programmiersprachen] sind enorm: Während Programme wie die Schreibsoftware Microsoft Word mit HTML programmiert wurden, greifen die Entwickler von Metzel-Games oft zu der Hacker-Programmiersprache C++. Wie gefährlich diese Sprache für Jugendliche ist, zeigte sich erst im September 2009, als der schülerVZ-Hacker Matthias L. vor seinem Selbstmord einen Abschiedsbrief verfaßte – in C++.
#6
Alt 05.11.07, 16:40:36
SilberEisen
Benutzerbild von SilberEisen
Registered Users
Registriert seit: 04.09.06
Style: Retro
Alter: 34
Geschlecht: ♂
Beiträge: 1.366
IRC Zeilen: 0

Blecherner Postaward 

SilberEisen eine Nachricht über ICQ schicken
Hm, ich hab so garkeine Ahnung von dem was ihr da schreibt aber 5^2 is nich 24 und 5^3 auch nich 124... :-/

#7
Alt 05.11.07, 23:18:29
raven
Benutzerbild von raven
Core Member Täglich verrückt!
Registriert seit: 29.03.02
Beiträge: 5.780
IRC Zeilen: 179396
Quizrunden gewonnen: 136

Spenden-Award Spenden-Award Silberne Postauszeichnung Spenden-Award Bronzener Topposter Blecherner Postaward Core-Award 

LDP:

Zitat von .Zahl
[...]mit einem simplen C Programm, was offensichtlich falsch rechnet.[...]
/me prepares SilberEisen to be shown on rotten.com

Seit 1974 und für immer
Westfalenstadion
#8
Alt 06.11.07, 16:46:37
SilberEisen
Benutzerbild von SilberEisen
Registered Users
Registriert seit: 04.09.06
Style: Retro
Alter: 34
Geschlecht: ♂
Beiträge: 1.366
IRC Zeilen: 0

Blecherner Postaward 

SilberEisen eine Nachricht über ICQ schicken
Hehe, gut ich geh mich vergraben

omg gut ich sollte vielleicht doch wenigstens versuchen mir so Sachen mal durchzulesen bevor ich antworte aber gut....

#9
Alt 09.11.07, 03:02:21
Lord_Pinhead
Benutzerbild von Lord_Pinhead
B.O.F.H.
Registriert seit: 03.08.02
Alter: 41
Geschlecht: ♂
Beiträge: 4.966

Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Wie hast du es übersetzt?

Code:
gcc -lm -o zahl zahl1.c
bringt die richtigen Ergebnisse

Code:
1:  1 (1^1) 1 (1^2) 1 (1^3)
2:  2 (2^1) 4 (2^2) 8 (2^3)
3:  3 (3^1) 9 (3^2) 27 (3^3)
4:  4 (4^1) 16 (4^2) 64 (4^3)
5:  5 (5^1) 25 (5^2) 125 (5^3)
6:  6 (6^1) 36 (6^2) 216 (6^3)
7:  7 (7^1) 49 (7^2) 343 (7^3)
Blues Code ist irgendwie eigenartig das er aus aus dem pow, was im Prototyp ja ein double ist, ein int machen will, die Eingabewerte aber extra nochmal als double deklariert, strange
Egal ob ich in die cmath (für C++) oder math.h (für C) kucke, es sind immer double wert:
Code:
double pow(double x, double y) __THROW __attribute__((__const__));
Egal, warum gibt euer Compiler falsche werte aus?

show_config
-------
"Aber es gibt ja kRaSSe SuppOrtEr die MeinEn Alter, dass Sie KrAss MOd sind UnD feTT in Der SchOOl ruLLoern WeiL isch KRaSS der MOD bin - unD wEnn dEin PosTcoUnt sUcKt, alDer, dAnn hAlTs Maul, k?" - Verständliche und klar formulierte Aussage eines Hip-Hoppers
#10
Alt 09.11.07, 03:10:30
blue
Benutzerbild von blue
Big Daddy
Registriert seit: 02.02.03
Alter: 37
Geschlecht: ♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3

Spenden-Award Spenden-Award Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

blue eine Nachricht über ICQ schicken
Zitat von Lord_Pinhead
Blues Code ist irgendwie eigenartig das er aus aus dem pow, was im Prototyp ja ein double ist, ein int machen will, die Eingabewerte aber extra nochmal als double deklariert, strange
Egal ob ich in die cmath (für C++) oder math.h (für C) kucke, es sind immer double wert:
Code:
double pow(double x, double y) __THROW __attribute__((__const__));
Egal, warum gibt euer Compiler falsche werte aus?
RichtÖÖÖÖöööög .. der Rückgabewert der pow Funktion ist vom Typ "double". Allerdings wird hier einem Integer (erg) das Ergebnis von pow zugewiesen. Ich caste also das Ergebnis in einen Integer um ohne Warnung des Compilers das Ergebnis zuzuweisen.
Nicht eigenartig sondern pingelig

C++ ist böse
Die Unterschiede [der Programmiersprachen] sind enorm: Während Programme wie die Schreibsoftware Microsoft Word mit HTML programmiert wurden, greifen die Entwickler von Metzel-Games oft zu der Hacker-Programmiersprache C++. Wie gefährlich diese Sprache für Jugendliche ist, zeigte sich erst im September 2009, als der schülerVZ-Hacker Matthias L. vor seinem Selbstmord einen Abschiedsbrief verfaßte – in C++.
Antwort
Lesezeichen
Facebook

Direkt antworten
Nachricht:
Benutzername: 
Email (nicht ausfüllen!): Sicherheitsgrafik
Optionen

« Vorheriges Thema | Nächstes Thema »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Teamspeak 3

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:37:15 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS
Die Betreiber haften nicht für die Inhalte der User. Die Beiträge spiegeln ausschließlich persönliche Meinungen wider, und nicht die der Seitenbetreiber.