第二次博客作业
一.程序截图
二.函数介绍
1.主要函数
void two_to_ten(int x);//二进制转化为十进制函数
void eight_to_ten(int x);//八进制转化十进制函数
void ten_to_two(int x);//十进制转化为二进制函数
void ten_to_eight(int x);//十进制转化为八进制函数
//如需其他进制先将其转为十进制
2.二进制转化为十进制
void two_to_ten()
{
int n;
int number= 0;
int i=0,m;
printf("输入一个二进制数:\n");
scanf("%lld", &n);
while (n != 0)
{
m = n % 10;
n /= 10;
number += m * pow(2, i);
i++;
}
printf("转化十进制数为:%d\n",number);
}
3.八进制转化为十进制
void eight_to_ten()
{
int n;
int number= 0;
int i=0,m;
printf("输入一个八进制数:\n");
scanf("%d", &n);
while (n != 0)
{
m = n % 10;
n /= 10;
number += m * pow(8, i);
i++;
}
printf("转化十进制数为:%d\n",number);
}
4.十进制转化为二进制
void ten_to_two()
{
int number=0;
int i,k=1,temp;
int n;
printf("输入一个十进制数:\n");
scanf("%d",&n);
temp=n;
while(temp){
i=temp%2;
number=k*i+number;
k*=10;
temp/=2;
}
printf("转化为二进制数为:%d\n",number);
}
5.十进制转化为八进制
void ten_to_eight()
{
int number=0;
int i,k=1,temp;
int n;
printf("输入一个十进制数:\n");
scanf("%d",&n);
temp=n;
while(temp){
i=temp%8;
number=k*i+number;
k*=10;
temp/=8;
}
printf("转化为八 进制数为:%d\n",number);
}
注:写的循环起初过于冗长,导致循环超时。 另:十六进制的转化实在是毫无头绪,顾不来献丑了。
解决方法:循环超时根本原因在于代码写错或循环条件有误,导致循环出不来,可以先在纸上算一遍,在写代码。
三.main函数
int main()
{
int a;
printf("请您输入要转化的进制:");
scanf("%d", &a); //选择要转化的进制
if (a == 1) {
two_to_ten();
}
else if (a == 2) {
eight_to_ten();
}
else if (a == 3) {
ten_to_two();
}
else if(a == 4) {
ten_to_eight();
}
return 0;
}
四.思维导图
五.代码互评
int binaryconversion(int number){
if(number/2==0){
return number%2;
}
else{
return number%2+binaryconversion(number/2)*10;
}
}
让人敬佩的递归方法,相比于我的循环方法更显得简洁明了,给我提供了新的思考方向.
六.收获与总结
1.收获:通过这次的博客作业,使我加深了对函数的理解与应用,也从一些同学的身上学到了很多东西。另外使我也认识到自己的薄弱点--函数,但同时也通过这次作业锻炼了自己,让我加深了对函数的应用方法,一步步攻克自己的薄弱点,让自己知识更加充实。
2.对函数的理解:函数不只是会让代码看起来更加简洁明了,也能够美化程序,让人赏心悦目,使程序运行更加便捷。