garip davranışları Ben bir öğretim bilgisayar bilimleri için asistan ve ben öğrencilerimden biri bir tamsayı tek veya çift olup olmadığını kontrol etmek için aşağıdaki kodu ibraz: (en azından benim için) ŞaşırtıcıBir sayı C++ olup olmadığını kontrol edin. kod
int is_odd (int i) {
if((i % 2 == 1) && (i % 2 == -1));
else;
}
bu kod verir doğru sonuç. 100000000'a kadar sayıları test ettim ve bu kodun neden olduğu gibi davrandığını açık bir şekilde açıklayamıyorum.
Biz bu yüzden tipik bir soru olmadığını biliyoruz
++ gcc v6.2.1 ve c kullanırken, ama bazı yardım bulmak istiyoruz. şey dönmeden bir fonksiyonun sonuna yola akan
doğru sonuçları verir? İşlev bir int döndürmek, ancak hiçbir şey döndürmez. Davranışı tanımlanmamıştır. Sonuçların "doğru" olduğunu nasıl belirlediniz? – StoryTeller
Gerçekten düzeltdiğinizde, bu hiç de doğru değil. http://ideone.com/5bs2aF – StoryTeller
Davranış tanımsız. Bakın (burada) (http://melpon.org/wandbox/permlink/HbRsBuRh5fAnBA0U). Bir '0' veya' eax' buna göre, ancak ben onun [bu] (http gibi bir şey bakıyor sanırım çok kırılgan en iyi – krzaq