#include <stdio.h>
int x;
void mondai1( int b) {
x = b;
}
void mondai2( void ) {
static int c = 10 ;
x = c;
c++;
}
int mondai3( int d) {
x++;
d++;
return d;
}
int main( void ) {
printf ( "x = %d[GS:return0で0を呼び戻したから]\n " , x
) ; x = 101 ;
printf ( "x = %d[GS:上でx=101を代入しているから]\n " , x
) ;
mondai1( 102 ) ;
printf ( "x = %d[GS:mondai1(102)はx=102のときに実行されるから]\n " , x
) ;
mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d[GS:mondai2のプログラムで3回実行されてc=10+1+1になるから]\n " , x
) ;
for ( int i = 103 ; i < 104 ; i++ ) {
int x = i;
printf ( "x = %d[LA:x=103が上で代入されているから]\n " , x
) ; x = mondai3( i) ;
printf ( "x = %d[LA:x=103+1をした値だから]\n " , x
) ; }
printf ( "x = %d[GS:mondai3という関数に戻ってx=x+1されているから]\n " , x
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgeDsKdm9pZCBtb25kYWkxKGludCBiKXsKICAgIHggPSBiOwp9Cgp2b2lkIG1vbmRhaTIodm9pZCl7CiAgICBzdGF0aWMgaW50IGMgPSAxMDsKICAgIHggPSBjOwogICAgYysrOwp9CgppbnQgbW9uZGFpMyhpbnQgZCl7CiAgICB4Kys7CiAgICBkKys7CiAgICByZXR1cm4gZDsKfQoKaW50IG1haW4odm9pZCl7CiAgICBwcmludGYoInggPSAlZFtHUzpyZXR1cm4w44GnMOOCkuWRvOOBs+aIu+OBl+OBn+OBi+OCiV1cbiIsIHgpOwogICAgeCA9IDEwMTsKICAgIHByaW50ZigieCA9ICVkW0dTOuS4iuOBp3g9MTAx44KS5Luj5YWl44GX44Gm44GE44KL44GL44KJXVxuIiwgeCk7CgogICAgbW9uZGFpMSgxMDIpOwogICAgcHJpbnRmKCJ4ID0gJWRbR1M6bW9uZGFpMSgxMDIp44GveD0xMDLjga7jgajjgY3jgavlrp/ooYzjgZXjgozjgovjgYvjgoldXG4iLCB4KTsKCiAgICBtb25kYWkyKCk7CiAgICBtb25kYWkyKCk7CiAgICBtb25kYWkyKCk7CiAgICBwcmludGYoInggPSAlZFtHUzptb25kYWky44Gu44OX44Ot44Kw44Op44Og44GnM+WbnuWun+ihjOOBleOCjOOBpmM9MTArMSsx44Gr44Gq44KL44GL44KJXVxuIiwgeCk7CgogICAgZm9yIChpbnQgaSA9IDEwMzsgaSA8IDEwNDsgaSsrKXsKICAgICAgICBpbnQgeCA9IGk7CiAgICAgICAgcHJpbnRmKCJ4ID0gJWRbTEE6eD0xMDPjgYzkuIrjgafku6PlhaXjgZXjgozjgabjgYTjgovjgYvjgoldXG4iLCB4KTsKICAgICAgICB4ID0gbW9uZGFpMyhpKTsKICAgICAgICBwcmludGYoInggPSAlZFtMQTp4PTEwMysx44KS44GX44Gf5YCk44Gg44GL44KJXVxuIiwgeCk7CiAgICB9CgogICAgcHJpbnRmKCJ4ID0gJWRbR1M6bW9uZGFpM+OBqOOBhOOBhumWouaVsOOBq+aIu+OBo+OBpng9eCsx44GV44KM44Gm44GE44KL44GL44KJXVxuIiwgeCk7CglyZXR1cm4gMDsKfQo=