学长教导:
永远记住要先处理小范围的情形
对于 一句话 :如果x>1,再判断x是否大于10,要是大于10,就返回11,否则就返回9,要是x小于1,就返回-3;
我的开始这样写的
1 int x=10; 2 //int b=(x>1)?(x>=10)?11:9):(-3);
但是想法感觉是对的,,实际是错误的,:记住学长那个话,现充范围小的开始,要是你不确定范围,自己画个数轴试试;
正确做法:
1 int x=10; 2 int b=x>10 ? 11 : ((x>1) ? 3 : 9);
下面是应用那个 : 的一段小代码:
求两个数的最大公约数和最小公倍数
1 #include<stdio.h> 2 int main() 3 { 4 5 6 7 int a,b; 8 int i,j; 9 int temp; 10 scanf("%d %d",&a,&b); 11 for(i=1;i<= (a>b?b:a);i++) 12 { 13 if(a%i==0&&b%i==0) 14 temp=i; 15 } 16 printf("%d\n",temp); 17 printf("%d\n",a*b/temp); 18 19 20 21 22 23 24 return 0; 25 }