c语言实现键盘输入一个正整数(不超过9位,即最多9位),要求编程实现以下功能: ① 求出这个数是几位数,并输出其位数; ② 输出这个数的逆序数。
时间: 2023-11-27 20:50:51 浏览: 389
下面是一个实现功能的C语言程序:
```c
#include <stdio.h>
int main()
{
int n, m = 0, count = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
// 求出这个数的位数
while (n > 0)
{
count++;
n /= 10;
}
printf("这个数是%d位数\n", count);
// 输出这个数的逆序数
while (n > 0)
{
m = m * 10 + n % 10;
n /= 10;
}
printf("这个数的逆序数是%d\n", m);
return 0;
}
```
程序中,首先从键盘输入一个正整数,然后用 `while` 循环求出这个数的位数,同时将这个数除以10,直到它的值变为0。求出这个数的位数后,再用另一个 `while` 循环求出这个数的逆序数。循环体中,将 `m` 初始化为0,每次将 `n` 的个位数取出来,加到 `m` 的末尾,并将 `n` 除以10。最后,输出这个数的位数和逆序数。
相关问题
从键盘输入一个正整数(不超过9位,即最多9位),要求编程实现以下功能: ① 求出这个数是几位数,并输出其位数; ② 输出这个数的逆序数c语言
以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char num[10];
int len;
printf("请输入一个不超过9位的正整数:");
scanf("%s", num);
len = strlen(num);
printf("该数是%d位数\n", len);
printf("该数的逆序数为:");
for (int i = len-1; i >= 0; i--) {
printf("%c", num[i]);
}
return 0;
}
```
运行程序后,输入一个不超过9位的正整数,程序会输出该数的位数和逆序数。例如,输入123456789,输出结果为:
```
请输入一个不超过9位的正整数:123456789
该数是9位数
该数的逆序数为:987654321
```
用C语言,从键盘上读入正整数n(4<n<10,程序中需判断),生成n个1~99之间的随机数,将n个数输出(因为随机数每次运行结果都不一样,要先输出,才能检查排序结果),使用选择法按从小到大顺序排序。 点击复制后,将打开C知道体验页
好的,这个问题是关于编程的,我可以回答。下面是代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n, i, j, minIndex, temp;
int arr[10]; // 最多生成10个随机数
printf("请输入正整数n(4<n<10):");
scanf("%d", &n);
if (n <= 4 || n >= 10) {
printf("输入有误,请重新输入。\n");
exit(1); // 程序结束
}
srand(time(NULL)); // 初始化随机数种子
for (i = 0; i < n; i++) {
arr[i] = rand() % 99 + 1; // 生成1~99之间的随机数
printf("%d ", arr[i]); // 输出生成的随机数
}
printf("\n");
for (i = 0; i < n - 1; i++) {
minIndex = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j; // 找到当前最小值的下标
}
}
if (minIndex != i) {
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp; // 交换当前最小值与arr[i]
}
}
printf("排序后的结果为:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]); // 输出排序后的结果
}
return 0;
}
```
希望能对您有所帮助!
阅读全文
相关推荐

















