使用c语言利用栈存储对输入非负十进制整数,打印输出与其等值的八进制数
时间: 2024-12-15 12:26:50 浏览: 3
将非负十进制整数转化为八进制
5星 · 资源好评率100%
在C语言中,可以使用数组(类似于栈)来存储输入的非负十进制整数,并通过循环逐位转换成对应的八进制数字。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
void decimalToOctal(int input) {
int octal[100]; // 初始化一个栈(数组),用于存放八进制数字
int index = 0, remainder, base = 1;
while (input != 0) {
remainder = input % 8; // 取余得到当前位的八进制值
octal[index] = remainder; // 存储到栈中
input /= 8; // 移除最低位并更新输入值
index++;
}
// 从栈中倒序输出八进制数
printf("等值的八进制数是: ");
for (int i = index - 1; i >= 0; i--) {
printf("%d", octal[i]);
}
}
int main() {
int num;
printf("请输入一个非负十进制整数: ");
scanf("%d", &num);
decimalToOctal(num);
return 0;
}
```
这个程序首先读取用户输入的十进制整数,然后用while循环将每个位上的数值依次存入栈`octal`中。最后从栈顶开始取出每一位并输出,就是对应的八进制数。
阅读全文