Ich bin neu in C++, und ich tat die Übung hier:C++ gerade oder ungerade Anzahl Programm funktioniert nicht richtig
http://www.learncpp.com/cpp-tutorial/32-arithmetic-operators/
ich tat Quiz 2, die mir ein Programm co schaffen erzählt, dass empfängt eine Ganzzahl von user und gibt den Wert true für diese Ganzzahl gerade aus. Also habe ich den folgenden Code erstellt:
#include "stdafx.h"
#include <iostream>
int getInteger()
{
std::cout << "Insert an integer" << "\n";
int8_t x;
std::cin >> x;
return x;
}
bool isEven(int8_t x)
{
bool b;
b = false;
std::cout << x % 2 << "\n";
if(x%2 == 0)
{
b = true;
}
return b;
}
void printResult(bool b)
{
std::cout << std::boolalpha;
std::cout << b << "\n";
}
int main()
{
int8_t x;
x = getInteger();
bool b;
b = isEven(x);
printResult(b);
return 0;
}
Also, hier ist das Problem. Wenn ich etwas nicht vermisse, sollte das funktionieren, oder? Und es tut, aber nur für Ganzzahlen, die ich von 0 bis 10 eingib. Aus irgendeinem Grund, wenn ich 10 oder 12 gebe, druckt es falsch, aber es funktioniert gut mit 2, 4, 6 und 8. Warum passiert das ?
hast du gerade einen int anstelle von int8_t versucht? –
Aus welchem Grund verwenden Sie 'int8_t' anstelle von' int'? – Slava
Ich habe eine int8_t verwendet, weil in derselben Tutorial-Website, andere Lektion, es geschrieben wird, dass ich es verwenden sollte, da int8_t eine definierte Größe hat und Int von Maschine zu Maschine wechseln kann. Ist das falsch? Entschuldigung, Art nicht sehr gut darin! –