Ini adalah yang pertama dari serangkaian teka-teki C ++ untuk Anda. Semoga Anda menikmati.
Jadi, puzzle no.1:
Diberikan program berikut:
#include <iostream>
int main()
{
const int a=1;
const int b=2;
const float c=0.5;
std::cout << a/b-a*c;
}
Masukkan beberapa kode pada satu baris baru di mana saja di dalam program sehingga outputnya adalah 0. Baris baru akan berisi paling banyak 18 karakter (termasuk spasi), dan sisa baris akan tetap tidak dimodifikasi. Agar lebih jelas, berikut adalah contoh kode baru yang valid:
#include <iostream>
int main()
{
const int a=1;
const int b=2;
int* p = NULL;
const float c=0.5;
std::cout << a/b-a*c;
}
Baris baru dengan 15 karakter telah dimasukkan sehingga tidak masalah. Namun itu tidak menyelesaikan masalah.
Jika ini terlalu sederhana untuk Anda, jangan khawatir, banyak yang akan datang !!
code-challenge
programming-puzzle
Bogdan Alexandru
sumber
sumber
Jawaban:
harus bekerja juga dan memiliki panjang yang sama.
sumber
#define int float
sebenarnya adalah perilaku yang tidak terdefinisi. Anda tidak diizinkan memberi arti baru pada kata kunci.#define int ERROR
untuk memaksa diri saya untuk menggunakan yang setara denganint32_t
bukan tipe bawaan. Pada saat saya sampaiint main()
, saya sudah lupa tentang makro dan bertanya-tanya mengapa sih kode saya tidak dapat dikompilasi.Kita dapat menyingkirkan a = 1 dengan memindahkannya ke lingkup lain:
Ini menurut saya 13 karakter. Atau lebih baik lagi dapatkan yang baru
a
yang juga menghasilkan 0:Itu 11 karakter
sumber
1 baris baru, 12 karakter baru
sumber
Jadi
#define a 0
, Selesai. Saya melihat bahwa itu diposting - tidak mengejutkan.Anehnya, ini tidak diposting:
14 karakter
Itu harus dilakukan, bukan?
sumber
17 karakter.
Omong-omong, program asli tidak dikompilasi di bawah MSVC, yang mengeluh bahwa
main
tidak memiliki tipe pengembalian.sumber
18, termasuk baris baru
sumber
float
merupakan kata kunci).15 karakter.
sumber
14 karakter.
sumber
17 karakter.
sumber
Ini 17 karakter jadi pas.
sumber
Saya tidak tahu C ++, namun berdasarkan pertanyaan, tidak bisakah Anda hanya memasukkan baris ke output 0 saja? pertanyaan menentukan output harus 0, itu tidak menentukan Anda harus MENGUBAH output ke 0.
(Saya memiliki 0 petunjuk tentang C ++, mungkin seseorang dapat menggunakan konsep ini)
sumber
12 karakter, mirip dengan solusi mob
kombinasi lain juga berfungsi, seperti
#define a c
atau#define c 0
sumber
Saya tahu ini bukan kode-golf , tetapi saya tampaknya mengenakan topi itu hari ini!
--Sebuah;
lima karakter, termasuk baris baru;
sumber
a
iniconst
.c ++ terserah ...
dijalankan melalui:
sumber
Varian pada jawaban Tuan Lister tetapi sedikit kurang jelas.
sumber
Bagaimana dengan 11 karakter ini ...
sumber
int a
sebelumif
tidak diinisialisasi, sehinggaa
dapat memiliki nilai apa pun.a
.http://codepad.org/N06weGJc
sumber