N进制数组转换成正整数

2023-05-24,,

给定一个任意长度的数组,其中的元素按照一定的进制(N进制)来转换成正整数

//把数组中的元素按照N进制转换成为正整数
#include <stdio.h>
#include <stdlib.h>
#define SIZE 20 //这里SIZE的值一定要大于需要的数组长度,剩下的空余的数组元素默认为零。函数里面有对于零的处理
int data[SIZE] = {};//用于存放N进制的数组
int num;//N进制 /*
* 函数名:jinzhi_change
* 函数功能:进制转换
* 入口参数:1.int data[SIZE] 存放需要转换成整数的N进制的数组
* 2.int num N进制
* 返回值:返回最后计算得出的转换成的整型数值
*/
int jinzhi_change(int data[SIZE],int num)
{
int size = SIZE;//局部变量,用来去掉数组为零的那些数字
for(int i=SIZE-;i>=;i--){//从后向前找第一个不是零的数字作为转换的起始位
if(data[i]==){
size --;}
}
int output=;//最终输出值
for(int j=size-;j>=;j--)//从后向前按权值展开
{
int temp =;
for(int k=size-;k>j;k--)
{temp = temp *num;}
output += temp* data[j];
}
return output;
}
int main(){
freopen("input.txt","r",stdin);
scanf("%d",&num);//读入N进制
for(int i=;i<SIZE;i++){//读入数据
scanf("%d",&data[i]);}
printf("%d\n",jinzhi_change(data,num));
//system("pause");
}

测试用例:

input.txt

8
1 2 3 4 5 6 7 1 2 3

N进制数组转换成正整数的相关教程结束。

《N进制数组转换成正整数.doc》

下载本文的Word格式文档,以方便收藏与打印。