【思考题】CSDN第四届在线编程大赛2014初赛:带通配符的数
2014-04-05 18:58
344 查看
题目要求:
输入参数:参数A,含有任意个数的?的数值字符串,如:12?4,?代表一位任意数
参数B,不含?的数值字符串,长度与参数A一致
输出结果:参数A比参数B大的可能数值个数
输入样例
36?1?8
236428
8?3
910
?
5
输出样例
100
0
4
输入参数:参数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\n"); 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种可能\n", result_temp); } printf("用户终止程序\n"); system("pause"); return 0; }
相关文章推荐
- 【思考题】CSDN第四届在线编程大赛2014初赛:带通配符的数
- CSDN第四届在线编程大赛2014初赛:带通配符的数
- csdn 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- csdn第四届在线编程大赛·线上初赛:带通配符的数
- 用python实现csdn第四届在线编程大赛·线上初赛:带通配符的数
- 【Java】 英雄会第四届在线编程大赛·线上初赛:带通配符的数 Java实现
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 第四届在线编程大赛·线上初赛:带通配符的数-我的解题方法
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- CSDN英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- NYOJ--1126--csdn第五届在线编程大赛-完全平方
- 英雄会第二届在线编程大赛·线上初赛:AB数