c语言 编写程序输入一个正整数,将其每一位数字从高位到低位输出,其中实现获取每一位的功能用自定义函数实现,比如输入1234。输出1 2 3 4
时间: 2023-06-20 18:03:57 浏览: 134
下面是一个实现将正整数每一位数字从高位到低位输出的 C 语言程序,其中包括了一个自定义函数`getDigits`用于获取每一位数字:
```c
#include <stdio.h>
void getDigits(int num)
{
if(num < 10)
{
printf("%d ", num);
return;
}
getDigits(num / 10);
printf("%d ", num % 10);
}
int main()
{
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("每一位数字从高位到低位输出:");
getDigits(num);
return 0;
}
```
使用递归的方式,自定义函数`getDigits`可以将一个正整数的每一位数字从高位到低位输出。在`getDigits`函数中,当输入的数字小于10时,直接输出该数字;否则递归调用`getDigits`函数处理该数字除个位之外的数,并输出该数字的个位即可。
相关问题
c语言编写一个程序把一个正整数中每一位上为奇数的数字取出,并从高位到低位依次排列成一个新数。 【输入描述】 输入一个正整数。 【输出描述】 输出得到新数。 【输入示例】 45678 【输出示例】 57
好的,这是一个简单的 C 语言程序,可以实现你的需求:
```c
#include <stdio.h>
int main()
{
int num, digit, odd_num = 0;
scanf("%d", &num); // 输入一个正整数
while (num > 0)
{
digit = num % 10; // 取出最低位上的数字
if (digit % 2 != 0) // 判断是否为奇数
{
odd_num = odd_num * 10 + digit; // 将奇数数字加入到新数的末尾
}
num = num / 10; // 去掉最低位上的数字
}
printf("%d\n", odd_num); // 输出得到的新数
return 0;
}
```
程序的思路是先输入一个正整数,然后循环取出每一位上的数字,判断是否为奇数,如果是奇数就将其添加到新数的末尾。最后输出得到的新数。
【C语言】程序功能:输入若干个正整数,判断每个正整数从高位到低位各位数字是否按值从小到大排列
好的,您的问题是关于C语言编写一个程序的。这个程序的功能是输入若干个正整数,然后判断每个正整数从高位到低位各位数字是否按值从小到大排列。下面是一个简单的C语言程序,供您参考:
```c
#include <stdio.h>
int main()
{
int num, prev_digit, curr_digit;
int flag; // 用来判断是否按值从小到大排列
printf("请输入一个正整数:");
scanf("%d", &num);
while (num > 0) {
prev_digit = num % 10;
flag = 1;
num /= 10;
while (num > 0) {
curr_digit = num % 10;
if (curr_digit > prev_digit) {
flag = 0;
break;
}
prev_digit = curr_digit;
num /= 10;
}
if (flag) {
printf("从高位到低位各位数字按值从小到大排列\n");
} else {
printf("从高位到低位各位数字未按值从小到大排列\n");
}
printf("请输入下一个正整数(输入0结束输入):");
scanf("%d", &num);
}
return 0;
}
```
程序的运行过程如下:
- 首先,程序会提示用户输入一个正整数,并读入这个数。
- 然后,程序会从这个数的个位开始,逐个取出它的各个数字,并判断这些数字是否按值从小到大排列。
- 如果按值从小到大排列,则程序输出“从高位到低位各位数字按值从小到大排列”;否则输出“从高位到低位各位数字未按值从小到大排列”。
- 最后,程序会提示用户输入下一个正整数,直到用户输入0为止。
阅读全文