#include<stdio.h> int main() { int m,n; scanf("%d %d",&m,&n); int x=m; int a,b,count=0; int temp; for(x=m;x<=n;x++) { temp=x; while(temp>0) { a=temp%10; b=(temp/10)%100; if(a==2&&b==6) { count++; break; } else temp=temp/10; } } int c; for(x=m;x<=n;x++) { temp=x; while(temp>0) { c=temp%10; if(c==4) { count++; break; } else temp=temp/10; } } int che; che=(n-m+1)-count; printf("%d",che); return 0; }用这个代码来实现下面的功能:杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如:62315 73418 88914 都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。 你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。为什么不对?应该怎么改
时间: 2024-04-04 19:02:28 浏览: 73
c语言教程(TXT版)
这段代码的问题在于,它只能判断出包含数字 4 或 62 的车牌数量,但不能判断出同时包含数字 4 和 62 的车牌数量。此外,代码也没有对输入的数据范围进行有效的判断和处理,容易导致程序崩溃或输出错误结果。
为了解决这些问题,可以对代码进行如下改进:
1. 在输入数据时,需要对 m 和 n 进行有效性检查,确保 m 和 n 的值均在 1 到 99999 之间。
2. 在判断车牌中是否包含数字 4 或 62 的时候,需要增加一个变量表示是否同时包含数字 4 和 62。
3. 在输出结果时,需要减去同时包含数字 4 和 62 的车牌数量,而不仅仅是减去包含数字 4 或 62 的车牌数量。
改进后的代码如下:
阅读全文