-->
当前位置:首页 > 题库 > 正文内容

主观题:数组计数器

Luz4年前 (2021-12-18)题库585
利用数组,以函数形式实现下列算法。

c
// 判断正整数 n (的十进制表示)中是否存在重复的数字
bool has_repeat_digit(int n);
// 判断两个正整数 m 和 n (的十进制表示)是否由相同的数字组成
bool is_similar(int m, int n);
// 判断 n 个学生成绩中是否存在相同的分数(0 到 100 之间的整数)
bool has_same_score(int score[], int n);


测试程序:

c
int main(void)
{
printf("has_repeat_digit(12345) = %d\n",
has_repeat_digit(12345)); // 0
printf("has_repeat_digit(12321) = %d\n",
has_repeat_digit(12321)); // 1
printf("is_similar(123, 456) = %d\n",
is_similar(123, 456)); // 0
printf("is_similar(123, 1123) = %d\n",
is_similar(123, 1123)); // 0
printf("is_similar(1231, 3211) = %d\n",
is_similar(1231, 3211)); // 1
printf("has_same_score({0, 1, 2, 3, 4, 5}) = %d\n",
has_same_score((int[]){0, 1, 2, 3, 4, 5}, 6)); // 0
printf("has_same_score({10, 1, 2, 3, 4, 10}) = %d\n",
has_same_score((int[]){10, 1, 2, 3, 4, 10}, 6)); // 1

return 0;
}


执行结果:


has_repeat_digit(12345) = 0
has_repeat_digit(12321) = 1
is_similar(123, 456) = 0
is_similar(123, 1123) = 0
is_similar(1231, 3211) = 1
has_same_score({0, 1, 2, 3, 4, 5}) = 0
has_same_score({10, 1, 2, 3, 4, 10}) = 1







答案:(1)首先用伪代码描述三个算法的设计思路,然后实现之。

(2)执行测试程序能够得到正确的结果。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。