Bu kodu nasıl Hindistan haritası oluşturur mu?
Bu kod, Hindistan haritasını yazdırır. Nasıl çalışır?
#include <stdio.h>
main()
{
int a,b,c;
int count = 1;
for (b=c=10;a="- FIGURE?, UMKC,XYZHello Folks,\
TFy!QJu ROo TNn(ROo)SLq SLq ULo \
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!" [b 21]; )
for(; a-- > 64 ; )
putchar ( c=='Z' ? c = c/ 9:33^b&1);
return 0;
}
CEVAP
Uzun dize sadece ikili bir dizi ASCII dönüştürülür. for
ilk deyim dize 31 verimleri sonra b
10 [b 21]
işe başlamak yapar. Bir dizi olarak dize tedavi, 31 mahsup "" string (verdiğiniz kod örneği ikinci satır). veri gerçek başlangıcıdır Kodu geri kalanı sadece bit dizisi boyunca döngüler, 1'ler ve 0'lar dönüştürme'bir karakter bir anda s ve boşluk ve baskı.!
Az karıştırılmış versiyonu:
#include "stdio.h"
int main (void) {
int a=10, b=0, c=10;
char* bits ="TFy!QJu ROo TNn(ROo)SLq SLq ULo UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^NBELPeHBFHT}TnALVlBLOFAkHFOuFETpHCStHAUFAgcEAelclcn^r^r\\tZvYxXyT|S~Pn SPm SOn TNn ULo0ULo#ULo-WHq!WFs XDt!";
a = bits[b];
while (a != 0) {
a = bits[b];
b ;
while (a > 64) {
a--;
if ( c == 'Z') {
c /= 9;
putchar(c);
} else {
putchar(33 ^ (b & 0x01));
}
}
}
return 0;
}
putchar
tablolarda. İlk putchar
al. 'Z'
ASCII ondalık 90, yani yeni satır karakteri olan 90 / 9 = 10. İkinci olarak, ondalık 33 '!'
ASCII. 33 düşük sipariş bit geçmek bir boşluk ASCII 32 verir. Bu !
b
garip ve boş bir alana b
bile yazdırılacak eğer yazdırılacak neden olur. Kodun geri kalan sadece "" string. a
işaretçi yürümek
Nasıl HTML kodu Sublime Text 2 kullana...
Çözmek için nasıl "Eklenti yürütm...
Nasıl Objective C, Swift kodu arama...
Nasıl "düzgün" JavaScript öz...
Nasıl UML diyagramları (özellikle sıra...