Kesalahan karakter 1 menghasilkan sebagian besar pesan kesalahan dari kompilasi C ++

51

Tampaknya perubahan sederhana pada file C ++, terutama dengan templat, dapat menghasilkan halaman kesalahan. Kontes ini adalah untuk melihat apa "bang of the buck" terbesar, yaitu keluaran kesalahan yang lebih banyak dengan perubahan terkecil pada kode sumber (penambahan 1 karakter).

Karena bahasa lain lebih waras, ini akan terbatas pada C ++ dan gcc versi 4.x.

Aturan

  1. File sumber asli harus dikompilasi dengan gcc 4.9.2 ke kode objek tanpa kesalahan.

  2. Satu karakter ASCII ditambahkan ke kode sumber untuk membuat kesalahan ketik, meningkatkan ukuran file sebesar 1 byte.

  3. Kompiler dijalankan dengan opsi default. Opsi yang diperlukan suka -cdan -std=c++11diizinkan, opsi suka -Walltidak.

  4. Metrik adalah

        number of bytes of generated error messages
        -----------------------------------------------------------------------
        (bytes of source code with typo) (length of filename passed to compiler)
    
  5. Jawaban akan divalidasi dengan http://ideone.com/ C ++ 4.9.2.

Contoh:

Nama file adalah a.cpp, yang panjangnya 5 byte.

int foo();

Kompilasi kerja

 gcc -c a.cpp

Kode sumber terkorupsi:

in t foo();

Kompilasi Gagal

$ gcc -c a.cpp
a.cpp:1:1: error: ‘in’ does not name a type
in t foo();
  ^
$ gcc -c a.cpp |& -c wc
64
$ wc -c a.cpp
12 a.cpp

Nilai: 64/12/5 = 1.0666

Upaya yang lebih baik: Masukkan {antar parens darifoo()

$ gcc -c a.cpp |& wc -c
497

Skor baru: 497/12/5 = 8.283

Semoga berhasil!

MEMPERBARUI

Saya mendorong orang untuk mengabaikan implementasi rekursif. Itu secara teknis menang tetapi tidak dalam semangat kontes.

PEMBARUAN 2

Seperti yang telah dicatat oleh banyak orang, kontes mungkin akan lebih menarik jika C-prosesor tidak diizinkan. Jadi saya ingin mendorong orang untuk mengirim solusi yang tidak menggunakan perintah pra-prosesor sama sekali. Itu berarti tidak ada penggunaan file header sama sekali, karena #includetidak diperbolehkan!

Sejauh menggunakan IDEONE untuk memvalidasi, Anda diizinkan untuk menggunakan output IDEONE secara langsung (dan nama sumber sebagai prog.cpp), atau Anda dapat menjalankan output IDEONE melalui pencarian global dan ganti ( s/prog.cpp/a.cc/misalnya) dan berpura-pura bahwa Anda dapat atur nama file secara langsung.

PEMBARUAN 3

Seperti yang ditunjukkan orang, Ideone sedikit terlalu ketat, membutuhkan tautan tidak hanya pembuatan file objek. Karena kontes ini murni atas nama kesenangan, harap jujur ​​dan tentukan apa yang Anda gunakan untuk mendapatkan skor Anda. Baik gunakan ideone, atau gunakan build vanilla terbanyak (semua default) dari gcc 4.9.2 yang dapat Anda kerahkan. Kontes ini dimaksudkan untuk meningkatkan kesadaran akan pesan kesalahan C ++.

Mark Lakata
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan . Atau, untuk diskusi tentang apa yang seharusnya atau tidak seharusnya dianggap sebagai duplikat, silakan bawa diskusi ke meta .
Martin Ender
Tiga masalah dengan menggunakan ideone untuk memvalidasi: Ini memaksa nama file sumber ke "prog.cpp", itu memotong output kesalahan kompilator ke 64kB, dan itu menghubungkan, menambahkan kesalahan tambahan. Jadi itu tidak akan menjadi alat validasi yang baik.
Jason C
Saya telah menggunakan GCC 4.9.2 dari repo Ubuntu toolchain-test.
nneonneo
Apa itu opsi default? Sejauh yang saya tahu, Anda dapat mengkonfigurasi opsi default gcc pada waktu kompilasi.
FUZxxl
2
Membawa kembali kenangan: dari sekitar tahun 1975 guru fisika kita mengadakan kompetisi "kesalahan paling banyak dari 10 kartu
tinju

Jawaban:

45

gcc 4.5.2, Nilai: 8579.15 (atau 14367.49 untuk nama file "aC", dapat diperbarui nanti)

File asli, 29 byte, kompilasi bersih (a.cpp):

#if 0
#include"a.cpp"
#endif

File yang dimodifikasi, 30 byte:

#iff 0
#include"a.cpp"
#endif

Kesalahan:

$ gcc -c a.cpp 2>&1 | wc -c
1286873

Skor:

1286873 / (30 * 5) = 8579.15

Output kesalahan kepala dan ekor:

a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:

... And so on, backing out with second error after max include depth:

a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0:
a.cpp:3:2: error: #endif without #if
a.cpp:3:2: error: #endif without #if

Catatan:
- Jika .Cberakhir pada kualifikasi sebagai ekstensi yang valid maka skornya adalah 1.206.869 / (28 * 3) = 14.367,49.
- Jika Dennis menyarankan #include kedua ditambahkan, nama file "a.cpp", skornya adalah 80.797.292.934 / (46 * 5) = 351.292.578,97

Jason C
sumber
2
Pertanyaannya adalah menambahkan karakter, bukan menggantikannya.
Dennis
3
@ Dennis Oh man. Saya mengerti. Tonton edit kedua ini. Komentar Anda adalah berkah tersembunyi.
Jason C
1
@JasonC Saya tidak bisa cukup memperbaiki ini.
isaacg
9
Saya pikir Anda dapat mengklaim skor tanpa batas jika Anda menambahkan satu detik #include"a.cpp".
Dennis
3
@ Dennis Whoa, bagus! Saya akan meninggalkan jawabannya apa adanya karena saya tidak berpikir untuk menambahkan sedetik pun #include. Adapun itu menjadi tak terbatas ... jika masih berjalan ketika saya bangun besok pagi, itu sudah tak terbatas bagi saya. Akan membuat Anda tetap diposting, ha (walaupun, saat ini sedang mengunggah 5.1MB / detik ke wc, jadi jika wcmenggunakan penghitung 32-bit, menurut perhitungan saya, sesuatu yang aneh dapat terjadi dalam waktu sekitar 13 menit.)
Jason C
31

gcc 4.9.2, skor: 222.898.664 663.393.783

Ini sangat didasarkan pada jawaban @ JasonC , tetapi dia mengatakan dia tidak ingin mengambil kredit untuk perbaikan ini.

Output kesalahan dari kode di bawah ini adalah 126.044.818.789 byte. Skor harus jauh lebih tinggi dalam teori (dan cenderung tak terhingga ketika jumlah pernyataan sertakan meningkat), tetapi dalam praktiknya menurun dengan menambahkan lebih banyak pernyataan sertakan.

File asli (37 byte)

/*#
#include"w.cpp"
#include"w.cpp"*/
$ gcc -c w.cpp
$

File yang dimodifikasi (38 byte)

/
*#
#include"w.cpp"
#include"w.cpp"*/
$ gcc -c w.cpp
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0:
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0,
                 from w.cpp:3:
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0,
                 from w.cpp:3,
                 from w.cpp:3:
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0,
                 from w.cpp:3,
                 from w.cpp:3,
                 from w.cpp:3:
⋮
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
w.cpp:3:0: error: #include nested too deeply
 #include"w.cpp"
 ^
w.cpp:4:0: warning: extra tokens at end of #include directive
 #include"w.cpp"*/
 ^
w.cpp:4:0: error: #include nested too deeply
w.cpp:2: confused by earlier errors, bailing out
The bug is not reproducible, so it is likely a hardware or OS problem.
Dennis
sumber
6
Ini tidak akan secara teknis menghasilkan output yang tak terbatas , meskipun, dengan teknologi komputer saat ini (atau yang diperkirakan), Anda tidak akan hidup cukup lama untuk melihatnya berhenti. Pada dasarnya, GCC memiliki #includebatas bersarang 200 level, sehingga rekursif Anda secara #includeefektif menjadi penghitung biner 200-bit.
Ilmari Karonen
3
Cukup tambahkan lebih banyak garis sertakan untuk mendapatkan skor tanpa batas. Ukuran output tumbuh lebih cepat daripada kode.
jimmy23013
Itu bisa saja didasarkan pada salah satu jawaban dari pertanyaan sebelumnya .
Peter Taylor
2
Itu memang selesai pagi ini, dengan sejumlah besar yang dimulai dengan angka 8, dan saya tidak sengaja menutup jendela sebelum menyalin nomor itu , karena saya hebat. Saya menjalankannya lagi.
Jason C
3
@JasonC Saya menjalankannya juga dan mendapat output 77.877.399.160 byte. Itu jauh lebih tidak terbatas daripada yang saya harapkan, jadi saya akan menjalankannya lagi dengan nama file yang lebih pendek.
Dennis
25

gcc, 4.9.2, Nilai: 22.2

File asli: 0 byte (a.cpp)

Kompilasi bersih:

$ gcc -c a.cpp |& wc -c
0

File yang dimodifikasi:

(

Kesalahan:

$ gcc -c a.cpp |& wc -c
111

Skor

111/1/5 = 22.2

Mark Lakata
sumber
4
Apakah Anda sudah dengan kasar memaksa ini? Maksud saya, apakah ini skor tertinggi untuk file awal 0 byte?
Thomas Weller
Tidak, saya tidak dengan kasar memaksakan ini. Saya baru saja mencoba 3 atau 4 karakter berbeda. Ini hanya jawaban awal untuk membuat orang tertarik pada kontes :)
Mark Lakata
23

11.126,95 9.105,44 2.359,37 1.645,94 266,88 poin

Lebih banyak penyalahgunaan preprosesor! Kali ini, kami membuat menangis perpustakaan standar.

Tanpa salah ketik:

#define typedf
#include<fstream>

Dengan salah ketik:

#define typedef
#include<fstream>

Kesalahan:

In file included from /usr/include/c++/4.9/iosfwd:39:0,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/c++/4.9/bits/stringfwd.h:62:33: error: aggregate ‘std::basic_string<char> std::string’ has incomplete type and cannot be defined
   typedef basic_string<char>    string;   
                                 ^
/usr/include/c++/4.9/bits/stringfwd.h:68:33: error: aggregate ‘std::basic_string<wchar_t> std::wstring’ has incomplete type and cannot be defined
   typedef basic_string<wchar_t> wstring;   
                                 ^
/usr/include/c++/4.9/bits/stringfwd.h:78:34: error: aggregate ‘std::basic_string<char16_t> std::u16string’ has incomplete type and cannot be defined
   typedef basic_string<char16_t> u16string; 
                                  ^
/usr/include/c++/4.9/bits/stringfwd.h:81:34: error: aggregate ‘std::basic_string<char32_t> std::u32string’ has incomplete type and cannot be defined
   typedef basic_string<char32_t> u32string; 
                                  ^
In file included from /usr/include/wchar.h:36:0,
                 from /usr/include/c++/4.9/cwchar:44,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/stdio.h:48:25: error: aggregate ‘_IO_FILE FILE’ has incomplete type and cannot be defined
 typedef struct _IO_FILE FILE;
                         ^
/usr/include/stdio.h:64:25: error: aggregate ‘_IO_FILE __FILE’ has incomplete type and cannot be defined
 typedef struct _IO_FILE __FILE;
                         ^
In file included from /usr/include/c++/4.9/cwchar:44:0,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/wchar.h:106:9: error: ‘__mbstate_t’ does not name a type
 typedef __mbstate_t mbstate_t;
         ^
/usr/include/wchar.h:151:38: error: ‘size_t’ is not a type
     const wchar_t *__restrict __src, size_t __n)
                                      ^
/usr/include/wchar.h:159:38: error: ‘size_t’ is not a type
     const wchar_t *__restrict __src, size_t __n)
                                      ^
/usr/include/wchar.h:166:63: error: ‘size_t’ is not a type
 extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
                                                               ^
/usr/include/wchar.h:176:4: error: ‘size_t’ is not a type
    size_t __n) __THROW;
    ^
In file included from /usr/include/wchar.h:180:0,
                 from /usr/include/c++/4.9/cwchar:44,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/xlocale.h:42:9: error: ‘__locale_t’ does not name a type
 typedef __locale_t locale_t;
         ^
In file included from /usr/include/c++/4.9/cwchar:44:0,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/wchar.h:183:5: error: ‘__locale_t’ is not a type
     __locale_t __loc) __THROW;
     ^
/usr/include/wchar.h:186:6: error: ‘size_t’ is not a type
      size_t __n, __locale_t __loc) __THROW;
      ^
/usr/include/wchar.h:186:18: error: ‘__locale_t’ is not a type
      size_t __n, __locale_t __loc) __THROW;
                  ^
/usr/include/wchar.h:196:8: error: ‘size_t’ does not name a type
 extern size_t wcsxfrm (wchar_t *__restrict __s1,
        ^
/usr/include/wchar.h:207:9: error: ‘__locale_t’ is not a type
         __locale_t __loc) __THROW;
         ^
/usr/include/wchar.h:212:8: error: ‘size_t’ does not name a type
 extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
        ^
/usr/include/wchar.h:252:8: error: ‘size_t’ does not name a type
 extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
        ^
/usr/include/wchar.h:256:8: error: ‘size_t’ does not name a type
 extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
        ^
/usr/include/wchar.h:287:8: error: ‘size_t’ does not name a type
 extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;
        ^
/usr/include/wchar.h:306:8: error: ‘size_t’ does not name a type
 extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
        ^

[MENGGUNTING]

/usr/include/c++/4.9/bits/fstream.tcc:934:35: error: ‘cur’ is not a member of ‘std::ios_base’
    __testvalid = this->seekoff(0, ios_base::cur, _M_mode)
                                   ^
/usr/include/c++/4.9/bits/fstream.tcc:934:50: error: ‘_M_mode’ was not declared in this scope
    __testvalid = this->seekoff(0, ios_base::cur, _M_mode)
                                                  ^
/usr/include/c++/4.9/bits/fstream.tcc:941:25: error: ‘_M_state_last’ was not declared in this scope
    + _M_codecvt->length(_M_state_last, _M_ext_buf,
                         ^
/usr/include/c++/4.9/bits/fstream.tcc:944:15: error: ‘streamsize’ does not name a type
         const streamsize __remainder = _M_ext_end - _M_ext_next;
               ^
/usr/include/c++/4.9/bits/fstream.tcc:945:13: error: ‘__remainder’ was not declared in this scope
         if (__remainder)
             ^
/usr/include/c++/4.9/bits/fstream.tcc:949:35: error: ‘__remainder’ was not declared in this scope
         _M_ext_end = _M_ext_buf + __remainder;
                                   ^
/usr/include/c++/4.9/bits/fstream.tcc:951:25: error: ‘_M_state_cur’ was not declared in this scope
         _M_state_last = _M_state_cur = _M_state_beg;
                         ^
/usr/include/c++/4.9/bits/fstream.tcc:951:40: error: ‘_M_state_beg’ was not declared in this scope
         _M_state_last = _M_state_cur = _M_state_beg;
                                        ^
/usr/include/c++/4.9/bits/fstream.tcc:960:2: error: ‘_M_codecvt’ was not declared in this scope
  _M_codecvt = _M_codecvt_tmp;
  ^
/usr/include/c++/4.9/bits/fstream.tcc:960:15: error: ‘_M_codecvt_tmp’ was not declared in this scope
  _M_codecvt = _M_codecvt_tmp;
               ^
/usr/include/c++/4.9/bits/fstream.tcc:962:2: error: ‘_M_codecvt’ was not declared in this scope
  _M_codecvt = 0;
  ^

Di mesin Ubuntu saya, g++-4.9 -std=c++11 -c a.Cmenghasilkan 1.101.568 byte kesalahan yang mulia, dengan skor 1101568/33/3 = 11.126,95.

nneonneo
sumber
7
Anda harus menulis sebuah program untuk menganalisis semua header std dan menentukan yang #definememberi Anda poin terbanyak.
Jason C
1
Anda dapat memperburuk lebih lanjut dengan menggantinya typedefdengan t;. Sekarang Anda tidak hanya memecah setiap penggunaan typedeftetapi Anda mendapatkan satu ton kesalahan "t not name a type" juga. Atau %;untuk menghasilkan "id-wajar yang diharapkan sebelum% token".
MSalters
1
#define typename *dan #define int class stdsepertinya menghasilkan lebih banyak kesalahan.
jimmy23013
11

62,93 poin

Hanya beberapa C ++ meta black magic, dikompilasi dengan g++-4.8 -c -std=c++11 a.cc:

#include<memory>
template<int n>class B:std::unique_ptr<B<n-1>>{};template<>class B<0>{};B<-1>x;

Tidak Disatukan:

#include <memory>

template<int n>
class B: std::unique_ptr<B<n-1>> {};

template<>
class B<0> {};

B<-1>x;

G ++ memiliki batas rekursi 900, sehingga mengubah B<1>untuk B<-1>dengan kisaran 31-bit memiliki ... efek yang menarik.

  • 96 byte kode (tidak termasuk final, \nbeberapa editor teks secara otomatis menambahkan, vimtidak).
  • Nama file 4 huruf, a.cc
  • 24165 byte pesan kesalahan, dan terpotong. Pesan kesalahan penuh memiliki konten 1235889 byte kekalahan. Itu akan membutuhkan -ftemplate-backtrace-limit=0saklar. Itu juga berarti 3185 poin bagi saya!

std::unique_ptr hanyalah kelas templat yang berhasil memancarkan pesan kesalahan terpanjang, ditemukan melalui coba-coba dan pengetahuan tentang STL dan kucing serta barang-barang lainnya.

Stefano Sanfilippo
sumber
2
Tapi ... bagaimana saya bisa menghilangkan 6 spasi putih ketika saya hanya memiliki 3 kode, @JasonC!
Stefano Sanfilippo
7

Skor 7,865

Sebenarnya, 0-byte-Answer TIDAK benar, karena ideone.com akan menolak untuk mengkompilasi file tanpa kesalahan. Hal yang sama berlaku dengan contoh int foo();- itu tidak akan dikompilasi di ideone.com (Saya tidak dapat berkomentar karena kehilangan reputasi ...)

Jadi program terkecil yang bisa dikompilasi tanpa #includesini adalah:

int main(){}

Jika Anda mengubahnya ke kode berikut, itu akan gagal dengan 409 byte kode kesalahan (setelah mengganti nama prog.cpp menjadi a.cc dari output ideone.com):

int main(){[}

409 / (13 * 4) = 7,865

Harap perbarui pertanyaan sesuai, karena contoh yang diberikan tidak menghormati aturan yang diberikan ...

Stefan M
sumber
1
Seluruh ideone adalah semua jenis konyol.
Jason C
Saya setuju, saya menempel pada aturan ideone setelah pertanyaan diposting dan jawaban pertama diberikan. Kucing sudah agak keluar dari tas sekarang.
Mark Lakata
1

C, dinamai sebagai .cc

main(){constexprs a(){*(int*)0=f;}a(0)}

Kode kesalahan:

.code.tio.cpp: In function ‘int main()’:
.code.tio.cpp:1:8: error: ‘constexprs’ was not declared in this scope
 main(){constexprs int a(f){*(int*)0=f;}a(0);}
        ^~~~~~~~~~
.code.tio.cpp:1:8: note: suggested alternative: ‘__cpp_constexpr’
 main(){constexprs int a(f){*(int*)0=f;}a(0);}
        ^~~~~~~~~~
        __cpp_constexpr
.code.tio.cpp:1:40: error: ‘a’ was not declared in this scope
 main(){constexprs int a(f){*(int*)0=f;}a(0);}
pengguna75200
sumber
Halo lagi! Apa program asli yang tidak salah? (Saya menganggap itu main(){}, tapi saya tidak yakin) Juga, bukankah ini hanya peningkatan dari jawaban di atas? Meskipun Anda pasti dapat menyimpan jawaban ini, jika itu terinspirasi oleh jawaban @ StefanM, Anda harus menyebutkannya. Akhirnya, sekarang Anda memiliki 50 rep, Anda dapat berkomentar di mana saja.
NoOneIsHere
Saya pikir ini terlalu dekat dengan jawaban Stefan M.; Saya akan memposting ini sebagai perbaikan yang disarankan untuk solusi itu. Karena itu, jawaban rangkap diperbolehkan. Tolong jangan letakkan yang asli di sini dan sebutkan inspirasi apa pun (walaupun mungkin Anda juga membuat ini secara mandiri)
HyperNeutrino
1

Skor 12.xx (kesalahan dengan MENGHAPUS karakter)

Maafkan melanggar Peraturan 2 (IMHO menambahkan ATAU menghapus satu karakter akan menjadi semangat aturan), tapi ini terjadi pada saya secara tidak sengaja (sehingga tidak menggunakan trik kasar 'sengaja') saat menulis Real Code (TM) - baik kode yang berfungsi dan yang menyebabkan kesalahan (atau terlihat) sederhana dan mudah, jadi saya pikir cukup rapi untuk dimasukkan di sini. Kode asli

#include <iostream>
using namespace std;
int main ()
{
cout<<"test"<<endl;
}

Kode menghasilkan kesalahan (terakhir '<' dihapus sehingga sepertinya kurang dari perbandingan, tapi noooooooooooo ...)

#include <iostream>
using namespace std;
int main ()
{
cout<<"test"<endl;
}

Ini 'hanya' 8241 byte pesan kesalahan kompiler di ideone.com g ++ 4.3.2.

pengguna7291
sumber
1
Bahkan jika itu tampaknya dalam semangat tantangan (karena judulnya mengatakan "satu karakter salah ketik"), ini tidak mengikuti aturan 2 yang mengatakan bahwa Anda hanya dapat menambahkan karakter, tidak menghapus atau mengubah.
Jo King