void drawLine (char c, int n){
	int i;
	for (i=0; i<n; i++)
		printf("%c",c);
	printf("\n");
}

main(){
	printf ("top\n");
	drawLine ('*',20);
	printf ("mid\n");
	drawLine ('-',30);
	printf ("bottom\n");
}
top
********************
mid
------------------------------
bottom
 






main(){
	int a,b,c,d,x,y,m;
	scanf("%i%i%i%i",&a,&b,&c,&d);
	if(a<b) x=a; else x=b;
	if(c<d) y=c; else y=d;
	if(x<y) m=x; else m=y;
	printf("Minimum = %i\n",m);
}

int min(int p, int q){
	if(p<q) return p;
	else return q;
}

main(){
	int a,b,c,d,m;
	scanf("%i%i%i%i",&a,&b,&c,&d);
	m = min( min(a,b), min(c,d) );
	printf("Minimum = %i\n",m);
	m = −min( min(−a,−b), min(−c,−d) );
	printf("Maximum = %i\n",m);
}
// call by value 按值調用
void swap (int a, int b){
	int t;
	t = a; a = b; b = t;
}

main(){
	int x=3, y=4;
	swap (x,y);
	printf ("%i,%i\n", x,y);
	// x=3,y=4 no change
}
// call by reference 按址調用
void swap (int *a, int *b){
	int t;
	t = *a; *a = *b; *b = t;
}

main(){
	int x=3, y=4;
	swap (&x,&y);
	printf ("%i,%i\n", x,y);
	// x=4,y=3
}
variable
變數
address
地址
value
儲存值
int a; &a a = 10;
int *p; p *p = 10;
char c; &c c = 'A';
char s[10]; &s[0]
&s[1]
s[0] = 'x';
s[1] = 'y';
char *s; s
s+1
*s = 'x';
*(s+1) = 'y';
// call by reference 按址調用
void allUpper (char s[]){
	int i;
	for (i=0; i<strlen(s); i++)
		s[i] = toupper(s[i]);
}

main(){
	char name[50]="chan tai man, joseph";
	allUpper(name);
	// → CHAN TAI MAN, JOSEPH
}