题目内容:
从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeated digit!”;否则显示“No repeated digit!”.
[注]待检测数据存储在变量n中.
#include<stdio.h>
#define MaxSize 32
short CheckRepeatedNum(short [], short);
int main()
{
short i;
/* n存储待检测数据 */
long n;
/* 开辟数组空间 */
/* 经粗略估计, 预留32位数字给待检测数据是足够的 */
short data[MaxSize];
printf("Input n:\n");
/* 增加输入容错机制 */
/* 输入待检测数据 */
while(scanf("%ld", &n) != 1 || n < 0)
{
while(getchar() != '\n') ;
printf("请输入合法数据.\n");
printf("Input n:\n");
}
/* 将数据n按位分解(倒序存储) */
i = 0;
while(n != 0)
{
data[i] = n % 10;
n /= 10;
i ++;
}
/* 循环结束后, i的值即为数据元素个数 */
/* */
if(CheckRepeatedNum(data, i) == 1)
{
/* 有重复数据 */
printf("Repeated digit!\n");