#include "stdio.h"
#include "stdlib.h"
void shitoer(int k)
{
int i=0;
int a[10];
do{
a[i]=k%2;
k/=2;
i++;
}while(k);
printf("转换为二进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
void shitoba(int k)
{
int i=0;
int a[10];
do{
a[i]=k%8;
k/=8;
i++;
}while(k);
printf("转换为八进制整数:\n");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
void shitoshiliu(int k)
{
int i=0,j;
char a[10];
while(k!=0){
a[i]=k%16;
k/=16;
switch(a[i])
{
case 10 :
a[i]='A';
break;
case 11 :
a[i]='B';
break;
case 12 :
a[i]='C';
break;
case 13 :
a[i]='D';
break;
case 14 :
a[i]='E';
break;
case 15 :
a[i]='F';
break;
default:
a[i]+=95;
break;
}
i++;
}
printf("转换为16进制整数:\n");
for(j=i-1;j>=0;j--)
{
printf("%c",a[i]);
}
printf("\n");
}
void main()
{
int i,num;
printf("0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("请选择功能:\n");
scanf("%d",&i);
fflush(stdin);
if(i==0)
exit(0);
printf("请输入一个十进制数:\n");
scanf("%d",&num);
switch(i)
{
case 0: exit(0);
case 1: shitoer(num);break;
case 2: shitoba(num);break;
case 3: shitoshiliu(num);break;
default: printf("输入错误!");
}
}
看看怎么改一下啊?
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include "stdlib.h"
void shitoer(int k)
{
int i=0;
int a[10];
do{
a[i]=k%2;
k/=2;
i++;
}while(k);
printf("转换为二进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
void shitoba(int k)
{
int i=0;
int a[10];
do{
a[i]=k%8;
k/=8;
i++;
}while(k);
printf("转换为八进制整数:\n");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
void shitoshiliu(int k)
{
int i=0,j;
char a[10];
while(k!=0){
a[i]=k%16;
k/=16;
switch(a[i])
{
case 10 :
a[i]='A';
break;
case 11 :
a[i]='B';
break;
case 12 :
a[i]='C';
break;
case 13 :
a[i]='D';
break;
case 14 :
a[i]='E';
break;
case 15 :
a[i]='F';
break;
default:
a[i]+=48;
break;
}
i++;
}
printf("转换为16进制整数:\n");
for(j=i-1;j>=0;j--)
{
printf("%c",a[j]);
}
printf("\n");
}
void main()
{
int i,num;
printf("0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("请选择功能:\n");
scanf("%d",&i);
fflush(stdin);
if(i==0)
exit(0);
printf("请输入一个十进制数:\n");
scanf("%d",&num);
switch(i)
{
case 0: exit(0);
case 1: shitoer(num);break;
case 2: shitoba(num);break;
case 3: shitoshiliu(num);break;
default: printf("输入错误!");
}
}
看看怎么改一下啊?
----------------解决方案--------------------------------------------------------
OK了。谢谢哦
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define MAXSIZE 100
typedef struct
{
int a[MAXSIZE];
int top ;
}sequence_stack ;
void init_seqstack(sequence_stack*st)
{
st->top=0 ;
}
void printseqstack(sequence_stack*st,int m)
{
int i ;
i=st->top-1 ;
while(i>=0)
{
/*十进制转换为十六进制*/
if(m==16)
{
switch(st->a[i])
{
case 10 :
printf("A");
break ;
case 11 :
printf("B");
break ;
case 12 :
printf("C");
break ;
case 13 :
printf("D");
break ;
case 14 :
printf("E");
break ;
case 15 :
printf("F");
break ;
case 9 :
case 8 :
case 7 :
case 6 :
case 5 :
case 4 :
case 3 :
case 2 :
case 1 :
case 0 :
printf("%d",st->a[i]);
break ;
}
}
else
{
printf("%d",st->a[i]);
}
i--;
}
}
/*堆栈存放各个数*/
void jzhzhh(sequence_stack *st,int n,int m)
{
int i=0 ;
while(n!=0)
{
st->a[i]=n%m ;
n=n/m ;
st->top++;
i++;
}
}
int main()
{
int n,m ;
sequence_stack p ;
printf("十进制数n=");
scanf("%d",&n);
printf("进制m=");
scanf("%d",&m);
init_seqstack(&p);
jzhzhh(&p,n,m);
printseqstack(&p,m);
printf("\n");
return(0);
}
/*十进制数转其他进制数*/
----------------解决方案--------------------------------------------------------
/*我在ww84020209修改的基础上加了点语句,楼主看看是否满意*/
#include "stdio.h"
#include "stdlib.h"
void shitoer(int k)
{
int i=0 ;
int a[10];
do
{
a[i]=k%2 ;
k/=2 ;
i++;
}
while(k);
printf("转换为二进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
void shitoba(int k)
{
int i=0 ;
int a[10];
do
{
a[i]=k%8 ;
k/=8 ;
i++;
}
while(k);
printf("转换为八进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
void shitoshiliu(int k)
{
int i=0,j ;
char a[10];
while(k!=0)
{
a[i]=k%16 ;
k/=16 ;
switch(a[i])
{
case 10 :
a[i]='A' ;
break ;
case 11 :
a[i]='B' ;
break ;
case 12 :
a[i]='C' ;
break ;
case 13 :
a[i]='D' ;
break ;
case 14 :
a[i]='E' ;
break ;
case 15 :
a[i]='F' ;
break ;
default :
a[i]+=48 ;
break ;
}
i++;
}
printf("转换为16进制整数:");
for(j=i-1;j>=0;j--)
{
printf("%c",a[j]);
}
printf("\n");
}
int main()
{
int i,num ;
printf("0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("\n请选择功能:");
while(scanf("%d",&i))
{
fflush(stdin);
if(i==0)
exit(0);
printf("\n请输入一个十进制数:");
scanf("%d",&num);
switch(i)
{
case 0 :
exit(0);
case 1 :
shitoer(num);
break ;
case 2 :
shitoba(num);
break ;
case 3 :
shitoshiliu(num);
break ;
default :
printf("输入错误!");
}
printf("\n请选择功能:");
}
return(0);
}
----------------解决方案--------------------------------------------------------
谢谢啦,斑竹,顶你一下,HOHO
----------------解决方案--------------------------------------------------------