帮我编写c语言,给定一个10~1000的随机数。要求: ① 求出它是几位数; ② 输出每一位数字; ③ 判断其逆序后是否仍与原数相同,并输出结果。
时间: 2024-10-23 15:17:09 浏览: 39
以下是用C语言编写的一个示例,它实现了上述要求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void printEachDigit(int number) {
while (number > 0) {
int digit = number % 10;
printf("%d", digit);
number /= 10; // 取除最后一位数字
}
printf("\n");
}
int main() {
srand(time(0)); // 初始化随机数种子
// 生成一个10到1000之间的随机整数
int randomNum = rand() % 901 + 10;
printf("生成的随机数是 %d 位数。\n", floor(log10(randomNum) + 1));
printf("每一位数字依次为:\n");
printEachDigit(randomNum);
int reversedNum = 0;
for (int i = randomNum; i > 0; i /= 10) {
reversedNum *= 10;
reversedNum += i % 10;
}
if (reversedNum == randomNum) {
printf("逆序后与原数相同:是\n");
} else {
printf("逆序后与原数相同:否\n");
}
return 0;
}
```
这个程序首先计算随机数的位数,然后逐位打印出来。接着,它计算并检查逆序后的数字是否与原数相等。
注意:`log10` 函数返回的是以10为底数的对数,加上1是因为我们想要得到整数位数而不是小数点前的小数部分。
阅读全文