s5最强王者实体奖励:用c程序怎么样序编写“十进制变为八进制”

来源:百度文库 编辑:高考问答 时间:2024/05/10 19:22:58
要完整的程序

main(){
int i;
int num10,temp;
int num8[15];
printf("please input Num10:");
scanf("%d",&num10);
temp=num10;
for(i=0;i<15;i++)
num8[i]='';
for(i=0;num10!=0;i++)
{
num8[i]=num10%8;
num10=num10/8;
}
printf("Num10:%d To Num8:",temp);
for(;i>0;i--)
printf("%d",num8[i-1]);
printf("\n");
getch();
}

void main()
{
int DataInDec = 0;
scanf("%d", &DataInDec);
printf("%d In OCT Is %o\n", DataInDec, DataInDec);
}

如果你熟悉数据结果的知识,就采用下面的方法:
int *InitStack() /*初始化栈*/
{
int *top,*base;
base=(int *)malloc(sizeof(int)*50);
if(!base) {printf("Error!");exit();}
top=base;
return top;
}
int *push(int *top,int n) /*元素入栈*/
{
*top=n;
top++;
return top;
}
int pop(int *top) /*取出栈顶元素*/
{
int e;
top--;
e=*top;
return e;
}
void conversion()
{
int *top, *base;
int e,N;
int i;
top=InitStack();
base=top;
printf("Input the number:\n");
scanf("%d",&N);
while(N!=0)
{
top=push(top,N%8);
N=N/8;
}
printf("After change,the number is:\n");
while(top!=base)
{
e=pop(top);
top--;
printf("%d",e);
}
printf("\n");
}
int main(void)
{
conversion();
getch();
return 0;
}
当然如果你要没学过用楼上的方法……呵呵。
void main()
{
int DataInDec = 0;
scanf("%d", &DataInDec);
printf("%d In OCT Is %o\n", DataInDec, DataInDec);
getch();
}
用第二种方法慎重,可能老师不给分^^

#include <stdio.h>
#include <math.h>
int convert10_to_8(int i)
{
int k,s=0;
int j[6]={0,0,0,0,0,0};
for(k=0;k<6;k++)

if(i/8)
{
j[k]=i%8;
i/=8;
}
else
{
j[k]=i;
break;
}
for(k=0;k<6;k++)
s+=j[k]*pow(10,k);
return s;
}

main()
{
int a;
while(printf("input a number:")&&scanf("%d",&a))
printf("the rezult is:%d\n\n",convert10_to_8(a));
return 0;
}