#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:グローバル変数は自動的に0で初期化されるため]\n",x);
	x=101;
	printf("x=%d [GS:18行目に101を代入したため]\n",x);
	mondai1(102);
	printf("x=%d [GS:mondai1　4行目で102が代入されたため]\n",x);
	mondai2();
	mondai2();
	mondai2();
	printf("x=%d [GS:mondai2が3回呼ばれ、静的変数c(10→11→12)の値が8行目で代入されたため]\n",x);
	for (int i=103;i<104;i++){
		int x=i;
		printf("x=%d [LA:forブロック内で定義されたローカル自動変数x(103)　27行目を参照したため]\n",x);
		x=mondai3(i);
		printf("x=%d [LA:mondai3で足されて戻り値(104)がローカル自動変数xに代入されたため]\n",x);
	}
	printf("x=%d [GS:forスコープを出てグローバル変数x(mondai3内で+1されて13)12行目を参照したため]\n",x);
	return 0;
}