Difference between revisions of "Talk:Esercizi a caso del Prof."
Jump to navigation
Jump to search
(esercizio codice sorgente) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Personalmente ci ho messo un po' a vedere quale fosse il punto del quine; stampare una stringa con tutto il codice mi sembrava di primo acchito un'idea stupida o troppo facile, invece non è banale. | |
− | |||
− | |||
− | |||
− | + | Dopo diverse ore (e qualche suggerimento sulle format string e printf) sono riuscita ad arrivare a un programma funzionante anch'io: | |
− | + | <syntaxhighlight lang="C"> | |
− | + | #include<stdio.h> | |
− | + | main(){ char *a="#include<stdio.h>%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c";char *b=",10,34,s,34,34,b,34,34,s,34,b,10);}";printf("#include<stdio.h>%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c",10,34,a,34,34,b,34,34,a,34,b,10);} | |
− | + | </syntaxhighlight> | |
− | + | (salvo poi scoprire, guardando meglio il codice di F. e A., che è possibile scrivere una cosa del genere: char *s="%cciao%c"; printf(s,34); che stampa a video <i>ciao</i> tra virgolette.) | |
− | + | ||
− | + | ||
− | } | + | |
+ | Alla fine mi resta circa quello che è già stato postato. | ||
+ | <syntaxhighlight lang="C"> | ||
+ | #include<stdio.h> | ||
+ | main(){char *a="#include<stdio.h>%cmain(){char *a=%c%s%c;printf(a,10,34,a,34,10);}%c";printf(a,10,34,a,34,10);} | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 20:17, 2 November 2013
Personalmente ci ho messo un po' a vedere quale fosse il punto del quine; stampare una stringa con tutto il codice mi sembrava di primo acchito un'idea stupida o troppo facile, invece non è banale.
Dopo diverse ore (e qualche suggerimento sulle format string e printf) sono riuscita ad arrivare a un programma funzionante anch'io:
#include<stdio.h>
main(){ char *a="#include<stdio.h>%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c";char *b=",10,34,s,34,34,b,34,34,s,34,b,10);}";printf("#include<stdio.h>%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c",10,34,a,34,34,b,34,34,a,34,b,10);}
(salvo poi scoprire, guardando meglio il codice di F. e A., che è possibile scrivere una cosa del genere: char *s="%cciao%c"; printf(s,34); che stampa a video ciao tra virgolette.)
Alla fine mi resta circa quello che è già stato postato.
#include<stdio.h>
main(){char *a="#include<stdio.h>%cmain(){char *a=%c%s%c;printf(a,10,34,a,34,10);}%c";printf(a,10,34,a,34,10);}