#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
long int change(char a[],int n)
{
int i,j,k;long back=0;
char temp;
i=strlen(a);
for (j=0;j<i/2;j++){
temp=a[j];
a[j]=a[i-j-1];
a[i-j-1]=temp;
}
printf("%d----%d\n",lr,time++);
for (k=0;k<i;k++)
back+=(a[k]-48)*pow(n,k);return back;
}
main()
{
char a[30];int n;long re;
printf("输入数字:\n");
scanf("%s",a);
printf("输入进制:\n");
scanf("%d",&n);
re=change(a,n);
printf("结果: %ld",re);
system("pause");
}
比如输入入123456 10 显示是错的
----------------解决方案--------------------------------------------------------
"lr"和"time"好像还没有定义。
----------------解决方案--------------------------------------------------------
不关这个的事
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
long change(char a[],int n)
{
int i,j,k;long back=0,lr=0;
char temp;
i=strlen(a);
for (j=0;j<i/2;j++){
temp=a[j];
a[j]=a[i-j-1];
a[i-j-1]=temp;
}
printf("%d-\n",lr);
for (k=0;k<i;k++){
lr=(a[k]-48)*(long)pow(n,k);
printf("%d-\n",lr);
back+=lr;
}
return back;
}
main()
{
char a[30];int n;long re;
printf("输入数字:\n");
scanf("%s",a);
printf("输入进制:\n");
scanf("%d",&n);
re=change(a,n);
printf("结果: %d",re);
system("pause");
}
我输入123456789,进制为10
会出现以下情况
----------------解决方案--------------------------------------------------------
大家看看啊
----------------解决方案--------------------------------------------------------