zoukankan      html  css  js  c++  java
  • 【思考题】CSDN第四届在线编程大赛2014初赛:带通配符的数

    题目要求:

    输入参数:参数A,含有任意个数的?的数值字符串,如:12?4,?代表一位任意数
                        参数B,不含?的数值字符串,长度与参数A一致
    输出结果:参数A比参数B大的可能数值个数

    输入样例
    36?1?8
    236428
    8?3
    910
    ?
    5

    输出样例
    100
    0
    4

    #define num_max_length 20
    int main(void)
    { 
    	char num1[num_max_length];
    	char num2[num_max_length];
    	int result_temp=0, result=0;
    	int num_length=0, num_index=0;
    	int flag=0;
    
    	while(1){
    		memset(num1, 0, num_max_length);
    		memset(num2, 0, num_max_length);
    		result_temp=0;
    		result = 0;
    		flag = 0;
    
    		printf("参数A:");
    		fgets(num1, num_max_length, stdin);
    		if(memcmp(num1, "end", 3)==0) break;
    		printf("参数B:");
    		fgets(num2, num_max_length, stdin);
    		if(memcmp(num2, "end", 3)==0) break;
    		if((num_length=strlen(num1))!=strlen(num2)){
    			printf("num1 num2 length not match
    ");
    			break;
    		}
    
    		for(num_index=0; num_index<num_length; num_index++){
    			if(num1[num_index]=='?'){
    				if(flag == 0)
    					result_temp = (int)('9'-num2[num_index])+result_temp*10;
    				else
    					result_temp = result_temp*10;
    			}
    			else{
    				if(num1[num_index]==num2[num_index]){
    					continue;
    				}
    				else if(num1[num_index]<num2[num_index]){
    					//break;
    					if(flag == 0){
    						flag = 1;
    					}
    				}
    				else{
    					if(flag == 0){
    						flag = 1;
    						result_temp += 1;
    					}
    				}
    			}
    		}
    		printf("参数A比参数B大有%d种可能
    ", result_temp);
    	}
    
    	printf("用户终止程序
    ");
    	system("pause");
    
    	return 0;
    }




  • 相关阅读:
    excelhelp
    导入数据到GridView
    sql2005悠改sa
    状态存储管理 encode,decode,transfer
    Session持久化
    Microsoft SQL Server 2005 数据类型
    Cookie (HttpCookie的实例)
    role设计
    ajax
    poj 3370 Halloween treats 夜
  • 原文地址:https://www.cnblogs.com/xhyzjiji/p/6159398.html
Copyright © 2011-2022 走看看