吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3027|回复: 2
收起左侧

[C&C++ 转载] 进制转化并且自动纠错

[复制链接]
zhanglangabce 发表于 2013-8-16 22:40
这是一个将10进制和其他进制(2到9进制)进行互相转化,并且程序能够自动帮助用户纠正输入错误,,这个程序我理解的不是很透彻,尽管是自己写的,,但是有参考书籍,,红色的不是很理解,,,大神有谁能够给我详细讲解下不,,谢谢啦。。。。。
#include <stdio.h>
void oth_to_ten();
void ten_to_oth();
long change(int arry[],int len,int n);
void main()
{
int flag;
while(flag!=0)
{
  printf("\n1:ten_to_oth&");
  printf("2:oth_to_ten&");
  printf("0:exit");
   printf("\n Enter a number");
  scanf("%d",&flag);
  switch(flag)
  {
  case 1:ten_to_oth;break;
  case 2:oth_to_ten;break;
  }
}
}
void ten_to_oth()
{
int sum,i=0,n,j;
int arr[80];
printf("qing shu ru shi jin zhi\n");
scanf("%d",&sum);
printf("xiang zhuan hua cheng ji jin zhi\n");
scanf("%d",&n);
  do
  {
   i++;
  arr=sum%n;
  sum=sum/n;
  if(i>=80)
   printf("overflow\t");}
  while(sum!=0);
  printf("the result is:\t");
  for(j=i;j>0;j--)
   printf("%d",arr[j]);
  printf("\n");
}
void oth_to_ten()
{int base,i,num,arr[80];
long sum=0;
char ch;
printf("the base you wan to change\n");
scanf("%d",&base);
printf("qing shu ru gai shu");
scanf("%d",&num);
for(i=1;num!=0;i++)
{
arr=num%10;
num=num/10;
}
sum=change(arr,i-1,base);
printf("the result is%ld\n",sum);
}
long change (int a[],int len,int b)
{long num=0;
int i,k=1;
for(i=1;i<=len;i++)
{num=num+a*k;
k=k*b;
}
return num;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1354669803 发表于 2013-8-17 00:52
对于C我也看不懂啊
救魂 发表于 2013-8-21 16:54
首先arr=sum%n;有错,无法把整型变量赋值给指针,arr是指向数组的指针。
long change (int a[],int len,int b)
{long num=0;
int i,k=1;
for(i=1;i<=len;i++)
{num=num+a*k;
k=k*b;
}有三个参数,第一个数组中的参数是你输入的要转换的数每一位的值,第二位len的参数是i-1,也就是数组中存储的最高位位数的位置,b是进制数。例如输入要把8进制765转换为十进制,则参数a[]为
a[0]a[1] a[2] a[3]
X 5 6 7
X为未知量,因为你的程序是从a[1]开始赋值的
参数len=3,参数b=7
接下来进制转换,a[1]*8^0+a[2]*8^1+a[3]*8^2;然后跳出循环。这里你又把指针乘以整型了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 08:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表