例题1-3
1 /*
2 Function: 解决机兔同笼问题
3 鸡和兔总数量为n,总腿数为m。输入n,m 解出鸡和兔的数量。
4 sample input: 14 32
5 sample output: 12 2
6 sample input: 12 2
7 sample output: No answer
8 */
9
10 #include<stdio.h>
11 int main()
12 {
13 int a,b,n,m;
14 scanf("%d%d", &n, &m);
15 a=(m-2*n)/2;
16 b=n-a;
17 if(m%2==1||a<0||b<0)
18 printf("No answer\n");
19 else
20 printf("%d %d\n", a,b);
21 return 0;
22 }
例题1-4
/**
2 Function: swap the three input numbers and output them increasingly.
3 Sample input: 20 7 33
4 Sample output: 7 20 33
5 **/
6 #include<stdio.h>
7 int main()
8 {
9 int a,b,c;
10 scanf("%d%d%d", &a, &b, &c);
11 #if 0
12 else if(b<=c &&a<=c) printf("%d %d %d\n", b,a,c);
13 if(a<=b&&b<=c) printf("%d %d %d\n", a, b, c);
14 else if(b>=c &&a<=c) printf("%d %d %d\n", a,c,b);
15 else if(b>=c &&a>=c) printf("%d %d %d\n", c,a,b);
16 else if(a>=b &&b>=c) printf("%d %d %d\n", c,b,a);
17 else if(b<=c &&c<=a) printf("%d %d %d\n", b,c,a);
18 #endif
19
20 #if 0
21 if(a<=b&&b<=c) printf("%d %d %d\n", a, b, c);
22 else if(b>=c &&a<=c) printf("%d %d %d\n", a,c,b);
23 else if(b>=c &&a>=c) printf("%d %d %d\n", c,a,b);
24 else if(a>=b &&b>=c) printf("%d %d %d\n", c,b,a);
25 else if(b<=c &&c<=a) printf("%d %d %d\n", b,c,a);
26 //事实上可以直接用else 解决最后一种情况
27 else printf("%d %d %d\n",b,c,a);
28 #endif
29
30 #if 0
31 //也可以直接比较交换 这里用的是先 ab 再bc 再ac的顺序 注意这样可能会出错 !!!
32 //因为比较时候可能会漏掉换位后的ab
33 int temp;
34 if(a>b){temp=a;a=b;b=temp;}
35 if(b>c){temp=b;b=c;c=temp;}
36 if(a>c){temp=a;a=c;c=temp;}
37 printf("%d %d %d\n",a,b,c);
38 #endif
39
40 #if 0
41 //也可以直接比较交换 先ab 再ac 再bc
42 int temp;
43 if(a>b){temp=a;a=b;b=temp;}
44 if(a>c){temp=a;a=c;c=temp;}
45 if(b>c){temp=b;b=c;c=temp;}
46 printf("%d %d %d\n",a,b,c);
47 #endif
48
49 #if 1
50 //可以通过变量存储中间结果,存储中间结果 求出最大值,最小值,也就有来中间值 极为实用!
51 int x,y,z;
52 x=a;if(b>x) x=b; if(c>x)x=c;
53 y=a;if(b<y) y=b ;if(c<y)y=c;
54 z=a+b+c-x-y;
55 printf("%d %d %d\n",y,z,x);
56 #endif
57 return 0;
58 }