问题遇到的现象和发生背景
循环结构如何做,八进制转换10进制也不会
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int u,num, m, c, i = 0;
int v = 8;
int a[32];
char g;
char* p, s[6]; // 18^2+08^1+0*8^0
int d;
printf("\n 进制转换系统\n1、八进制转换为十进制\n2、十进制转换为八进制\n\n ");
printf("请选择序号1或2:");
scanf("%d",&u);
if(u==2)
{
printf("请输入欲转换的数据:");
scanf("%d",&num);
m = num;
while (num > 0)
{
c = (num % v);
a[i] = c;
num = num / v;
i++;
printf("转换为:");
for (i--; i >= 0; i--)
printf("%d", a[i]);
printf("是否继续转换?y/n:");
scanf("%c",&g);
if(g=='y')
{
return 1;
}
if(g=='n')
{
printf("谢谢使用,再见!\n");
}
}
}
if(u==1)
{
printf("请输入欲转换的数据:");
p=s;
gets(p);
d = 0;
while (*p)
{
d =d * 8 + *(p++) - '0';
printf("转换为%d\n", d);
printf("是否继续转换?y/n:");
scanf("%c",&g);
if(g=='y')
{
return 1;
}
if(g=='n')
{
printf("谢谢使用,再见!\n");
}
}
return 0;
}
}
运行结果及报错内容
我想要达到的结果
编程实现十进制整数和八进制整数之间的转换(即将10进制数转换为8进制数,或将8进制数转换为10进制数)。