使用C语言如何判断两个四位数的相同数字的个数 ,譬如:3321与3125有两个相同数字,我主要对有重复数字的四位数不会去找相同个数。
3条回答 默认 最新
- Web Security Loop 2023-02-21 13:52关注
首先,将两个四位数转换为字符串类型,以便能够逐位比较数字。然后依次比较第一个数的每个数字与第二个数的每个数字是否相同。如果相同,记录下来,并将第二个数的对应数字替换为一个不可能出现在四位数中的数字(比如 -1)。继续比较第一个数的下一个数字与第二个数中未替换的数字是否相同,如此重复直到比较完所有数字。统计记录下来的相同数字的个数。
#include <stdio.h> #include <string.h> int countSameDigits(int num1, int num2) { char str1[5], str2[5]; sprintf(str1, "%d", num1); sprintf(str2, "%d", num2); int count = 0; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (str1[i] == str2[j]) { count++; str2[j] = '-'; // 标记为已找到 break; } } } return count; } int main() { int num1 = 3321; int num2 = 3125; int count = countSameDigits(num1, num2); printf("num1 = %d, num2 = %d, count = %d\n", num1, num2, count); // 输出:num1 = 3321, num2 = 3125, count = 2 return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报