e.g. BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数是0x12,它表达的就是十进制的12。 但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了! 现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0×12,然后再转换回12。
//方法一:18/16→118%16→21*10+2=12----------------intmain(){inta;intb;intc;printf("Enter a number: ");scanf("%d",&a);b=a/16;c=a%16;printf("%d\n",b*10+c);return0;}
intmain(){inthour1,minute1,hour2,minute2;printf("Enter the first time: ");scanf("%d:%d",&hour1,&minute1);printf("Enter the second time: ");scanf("%d:%d",&hour2,&minute2);intih=hour2-hour1;intim=minute2-minute1;//判断分钟差是否在一小时以内if(im<0){im=60+im;ih--;}printf("%d,%d",ih,im);return0;}------------------//改进,用判断拒绝分钟大于60的输入intmain(){inthour1,minute1,hour2,minute2;printf("Enter the first time: ");scanf("%d:%d",&hour1,&minute1);printf("Enter the second time: ");scanf("%d:%d",&hour2,&minute2);intih=hour2-hour1;intim=minute2-minute1;if(minute1,minute2>60){printf("Time error!!!");}elseif(im<0){im=60+im;ih--;}printf("%d,%d",ih,im);return0;}
intmain(){doubleprice;doublebill;printf("Please enter your price:");scanf("%lf",&price);printf("Please enter your bill:");scanf("%lf",&bill);//判断价格和票面if(price<bill){printf("Your price is less than your bill");}elseif(bill<price){printf("Your bill change: %f",price-bill);}return0;}
//实例intmain(){constintPASS=60;intscore;printf("Please enter your score:\n");scanf("%d",%score);if(score<PASS)printf("You failed\n");elseprintf("You passed\n");return0;}
intmain(){inta,b,c;printf("Enter three numbers:");scanf("%d %d %d",&a,&b,&c);if(a>b){if(a>c){printf("%d is max",a);}else{printf("%d is max",c);}}if(a<b){if(b>c){printf("%d is max",b);}else{printf("%d is max",c);}}return0;}
intmain(){intscore;intgrade;printf("Enter your score: ");scanf("%d",&score);grade=score/10;switch(grade){case10:case9:printf("A\n");break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n");break;default:printf("F\n");break;}return0;}