请设计一个数制转换的C语言源程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请设计一个数制转换的C语言源程序相关的知识,希望对你有一定的参考价值。
要求(1)能进行一下四种数制转换 10进制转换为16进制;16进制转换为10进制; 10进制转换为8进制;8进制转换为10进制。 (2)程序界面如下: 进制准换 菜单 1、10进制转换为16进制;2、16进制转换为10进制; 3、10进制转换为8进制;4、8进制转换为10进制 请输入你的选择: 再输入转换数据;
参考技术A #include<stdio.h>#define
MAXCHAR
101
//最大允许字符串长度
int
char_to_num(char
ch);
//返回字符对应的数字
char
num_to_char(int
num);
//返回数字对应得字符
long
source_to_decimal(char
temp[],int
source);
//返回由原数转换成十进制数
int
decimal_to_object(char
temp[],long
decimal_num,int
object);
//返回转换成目标数制后字符数组的长度
void
output(char
temp[],int
length);
//将字符数组逆序打印
void
main()
int
source;
//存储原数制
int
length;
//存储转换成目标数制后的字符数组长度
int
object;
//存储目标数制
char
temp[MAXCHAR];
//存储待转换的数值和转换后的数值
long
decimal_num;
//存储转换成的十进制数
int
flag
=
1;
//存储是否退出程序的标志
while(flag)
//利用输入的flag值控制循环是否结束
printf("转换前的数是:");
scanf("%s",temp);
printf("转换前的数值是:");
scanf("%d",&source);
printf("转换后的数值是:");
scanf("%d",&object);
printf("转换后的数是:");
decimal_num
=
source_to_decimal(temp,source);
length
=
decimal_to_object(temp,decimal_num,object);
output(temp,length);
printf("继续请输入1,否则输入0:
");
scanf("%d",&flag);
int
char_to_num(char
ch)
if(ch>='0'&&
ch<='9')
//将数字字符转换成数字
return
ch-'0';
else
return
ch-'A'+10;
//将字母字符转换成数字
char
num_to_char(int
num)
if(num>=0
&&
num<=9)
return
(char)(num+'0'-0);
//将0~9之间的数字转换成字符
else
return
(char)(num+'A'-10);
//将大于10的数字转换成字符
long
source_to_decimal(char
temp[],int
source)
long
decimal_num=0;
//存储展开之后的和
int
i;
int
length;
for(i=0;temp[i]!='';i++)
length
=
i;
for(i=0;i<=length-1;i++)
//累加
decimal_num
=
(decimal_num*source)+char_to_num(temp[i]);
return
decimal_num;
int
decimal_to_object(char
temp[],long
decimal_num,int
object)
int
i
=
0;
while(decimal_num)
temp[i]
=
num_to_char(decimal_num%object);
//求出余数并转换成字符
decimal_num
=
decimal_num/object;
//用十进制数除以基数
i++;
temp[i]='';
return
i;
void
output(char
temp[],int
length)
int
i;
for(i=length-1;i>=0;i--)
//
输出temp数组中的值
printf("%c",temp[i]);
printf("
");
如何用C语言编写一个程序,输入10个0-9之间的整数,请统计每个数字出现的个数,并输出?
#include<stdio.h>int num[10],count[10], i=0,temp;
//判断输入的数字是否是0到9之间的数
int input(int num)
if(num>=0&&num<=9)
return 1;
else
return 0;
//初始化计数的数组
void initCount()
int i = 0;
for(i=0;i<10;i++)
count[i]=0;
//统计每个数字出现的次数
void numCount(int num)
int i;
for(i=0;i<10;i++)
if(i==num)
count[i]++;
//输入数字
void runProm()
initCount();
for(;i<10;)
printf("请输入第%d个数:",(i+1));
scanf("%d",&temp);
if(input(temp)==1)
num[i]=temp;
numCount(num[i]);
i++;
else
printf("你输入的数字不在0到9之间,请重新输入!\n\n");
runProm();
void main()
int i;
runProm();
//输出每个数出现了几次
for(i=0;i<10;i++)
printf("%d出现了%d次!\n",i,count[i]);
参考技术A #include<stdio.h>
#include<string.h>
int main()
int cnt[10]=0,temp,state=1;
printf("enter 10 nums between 0 and 10");
for(int i=0;i<10;i++)
scanf("%d",&temp);
if(temp>=10||temp<0) state=0,break;
cnt[temp]+=1;
if(state)
for(int i=0;i<10;i++)
printf("%d:%3d",i,cnt[i]);
else printf("ERROR");
return 0;
以上是关于请设计一个数制转换的C语言源程序的主要内容,如果未能解决你的问题,请参考以下文章