D. 残缺的车牌一

本文介绍了一种基于残缺车牌号码识别的算法,用于判断并筛选出可能的肇事车辆车牌。通过对残缺车牌号码的顺序匹配,从大量车牌中找出符合条件的车牌,并使用冒泡排序算法按字符串大小对结果进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述
某处发生交通事故,肇事车辆逃逸。现场有价值的线索为若干块残缺的车牌。经技术人员分析得出以下结论,1、这些残缺的车牌来自同一块车牌且为肇事车辆悬挂;2、每块上只包含一个可以辨认的号码;3、这些号码的顺序是可以确定的。现请你根据这些信息写一段程序判断某车牌是否可能是肇事车辆当时悬挂的车牌。

输入第一行为一个字符串(字符串中只包含大写字母及数字,且长度不超过10),代表通过残缺车牌识别出的号码且这些号码已按应有的次序排好,也就是说如果在输入的字符串中某个号码(比如A)排在另外一个号码(比如B)的前边,那么在完整的车牌中A也必定在B前边;第二行为一个正整数n(0<n<200),代表待检验车牌的数量;后边n行,每行均为一个长度为10的字符串(字符串中只包含大写字母及数字),代表n个待检验车牌。
输出为若干行,每行为一个可能的肇事车辆的车牌(多行数据输出的顺序为:按字符串大小由小到大输出,如AAAAA00000在AAAAB00000前边输出)。测试用例保证输入合法且至少有一个车牌可能是肇事车辆的车牌。

#include <stdio.h>
#include <string.h>
int main(void)
{
	char a[10];
	int n,z;
	char b[200][10],c[200][10],temp[200];
	int i,row,col,m=0,loc,q;
	scanf("%s",a);
	scanf("%d",&n);
	getchar();
	for(row=0;row<n;row++)  //读入二维字符数组
    {
	for(col=0;col<10;col++)
    scanf("%c",&b[row][col]);
    getchar();
	}
	int y=strlen(a);
	for(row=0;row<n;row++)  //判断是否符合
	{       i=0;
			for( z=0;z<10&&i<y;z++)
			{
				if(a[i]==b[row][z])
				{
					i++;
				}
			}
			if(i==y)
			{
				for(int q=0;q<10;q++)
				c[m][q]=b[row][q];
				m++;
			}
	}
for(loc=0;loc<m-1;loc++)    //冒泡排序
{
for(i=m-1;i>=loc+1;i--)
	{
		for(int w=0;w<10;w++)
		{
			if(c[i][w]>c[i-1][w])
			break;
			else if(c[i][w]<c[i-1][w])
			{
  				 for(q=0;q<10;q++)        //两行交换
				{
					temp[q]=c[i][q];
					c[i][q]=c[i-1][q];
					c[i-1][q]=temp[q];
				}
				break;
			}
		}
	}
}
	for(row=0;row<m;row++)  //打印出二维数组
    {
	for(col=0;col<10;col++)
    printf("%c",c[row][col]);
	printf("\n");
	}
return 0;
}

亲测可过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值