用c语言写一份代码实验要求:对于键盘输入的任意一个非负的十进制整数,打印输出与其等值的进制数;编写一个主程序对实现数制转换 基本要求:1、界面可进行友好交互 2、可对键盘输入的任意一个非负的十进制整数,打印输出与其等值的用户设定d进制数。例如:八进制 、二进制、十六进制等
时间: 2024-05-22 09:13:25 浏览: 142
很好,以下是代码实现:
#include <stdio.h>
void convert(int num, int base) {
// 定义数组保存转换结果
char result[100];
int i = 0;
// 当num不为0时,不断进行转换
while (num) {
int remainder = num % base;
result[i] = remainder < 10 ? remainder + '0' : remainder + 'A' - 10;
i++;
num /= base;
}
// 倒序输出转换结果
printf("转换结果为:");
for (int j = i - 1; j >= 0; j--) {
printf("%c", result[j]);
}
printf("\n");
}
int main() {
// 提示用户输入
printf("请输入一个非负十进制整数:");
int num;
scanf("%d", &num);
// 提示用户输入转换进制
printf("请输入转换进制:");
int base;
scanf("%d", &base);
// 进行转换
convert(num, base);
return 0;
}
请问还有什么我可以帮助你的吗?
相关问题
用C语言写程序,对于输入的任意一个非负十进制整数打印输出与其等值的八进制数
可以使用 C 语言中提供的 `printf` 函数,其中 `%o` 表示输出八进制数。具体实现如下:
```c
#include <stdio.h>
int main() {
int decimal;
printf("请输入一个非负十进制整数:");
scanf("%d", &decimal);
printf("等值的八进制数为:%o\n", decimal);
return 0;
}
```
程序首先提示用户输入一个非负十进制整数,并通过 `scanf` 函数将其存储在 `decimal` 变量中。接着使用 `printf` 函数输出 `decimal` 的八进制表示,其中 `%o` 是输出八进制数的格式控制符。最后返回 0 表示程序正常结束。
对于键盘输入的任意一个非负十进制整数,打印输出与其等值的八进制数。利用顺序栈模拟,用c语言编写
好的,以下是用顺序栈模拟的c语言代码:
```c
#include <stdio.h>
#define STACK_SIZE 50
typedef struct {
int data[STACK_SIZE];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int push(Stack *s, int value) {
if (s->top == STACK_SIZE - 1) {
return 0;
}
s->top++;
s->data[s->top] = value;
return 1;
}
int pop(Stack *s, int *value) {
if (s->top == -1) {
return 0;
}
*value = s->data[s->top];
s->top--;
return 1;
}
int main() {
Stack s;
int num, remainder;
printf("请输入一个非负十进制整数:");
scanf("%d", &num);
initStack(&s);
while (num != 0) {
remainder = num % 8;
push(&s, remainder);
num = num / 8;
}
printf("转换为八进制数为:");
while (s.top != -1) {
pop(&s, &remainder);
printf("%d", remainder);
}
printf("\n");
return 0;
}
```
程序的思路是利用栈来实现进制转换,先将十进制整数不断除以8并将余数压入栈中,直到商为0。然后再依次出栈,得到的数字就是转换后的八进制数。
阅读全文