intmain(){double p =0.0;int m =0;int d =0;int flag =0;scanf("%lf %d %d %d",&p,&m,&d,&flag);if(m ==12&& d ==12){
p = p *0.8- flag *50;}elseif(11== m &&11== d){
p = p *0.7- flag *50;}if(p <0)printf("0.00");elseprintf("%.2lf", p);return0;}
思路
1.先判断日期
2.根据日期进行相应计算
3.如果用券后小于0要赋值为0
整型提升
intmain(){//char -128~127//unsigned char - 0~255unsignedchar a =200;//00000000000000000000000011001000//11001000 - a截断//11111111111111111111111111001000unsignedchar b =100;//01100100 - b 截断//00000000000000000000000001100100unsignedchar c =0;
c = a + b;//整型提升//00000000000000000000000011001000//00000000000000000000000001100100//00000000000000000000000100101100//00101100 - c截断//00000000000000000000000000101100//44printf("%d %d",a + b, c);return0;}
掌握数据的储存
半真半假问题
intmain(){int a =0;int b =0;int c =0;int d =0;int e =0;for(a =1; a <=5; a++){for(b =1; b <=5; b++){for(c =1; c <=5; c++){for(d =1; d <=5; d++){for(e =1; e <=5; e++){if(((b ==2)+(a ==3)==1)&&((b ==2)+(e ==4)==1)&&((c ==1)+(d ==2)==1)&&((c ==5)+(d ==3)==1)&&((d ==4)+(a ==1)==1)){if(a*b*c*d*e==120)printf("a=%d,b=%d,c=%d,d=%d,e=%d\n", a, b, c, d, e);}}}}}}return0;}
利用一真一假相加为1的原理,然后遍历每一种可能暴力求解
大小端存储
intmain(){unsignedint a =0x1234;unsignedchar b =*(unsignedchar*)&a;printf("%x", b);return0;}