在下面给定的程序中,只允许在原语句上进行修改,不能增加或删除整条语句或修改算法。 #include <iostream.h> int dec(int a[],int b[], int n, int m) { int c[50]; //c数组用于存放相加的和 int s, h; int t=n>m?n:m; for (int i=0; i<=t; i++) { c[i]=a[i]+b[i]+c[i]; //第i位求和 if (c[i]>=2) //如果有进位 { c[i]=c[i]%2; c[i++]++; //则相邻高位加1 } } s=c[0], h; //s用于保存转换得到的十进制数 for( int j=0: j<i: j++) { h=h*2; //计算二进制位权 s+=c[j]*h; //转换为十进制数 } return s; } void main ( ) { int a[50]={1,0,1,1,0,1,1,1,1}, b[50]={1,0,0,0,1,0,0,0,1,0,1,0,1}; //左边是低位右边是高位 int t=dec(a[50], b[50], 9,13); cout<<"相加之后十进制数为:"<<t<<endl; }
时间: 2023-11-27 13:54:48 浏览: 44
修改如下:
```c++
#include <iostream.h>
int dec(int a[], int b[], int n, int m) {
int c[50] = {0}; // 初始化为0,避免出现未初始化的值
int s = 0, h = 1; // h初始化为1,便于后面计算二进制位权
int t = n > m ? n : m;
for (int i = 0; i <= t; i++) {
c[i] += a[i] + b[i]; // 将相加的和存放在c数组中
if (c[i] >= 2) {
c[i] -= 2; // 如果有进位,则将当前位减去2
c[i + 1]++; // 相邻高位加1
}
}
s = c[t] * h; // 将最高位的值赋给s
for (int j = t - 1; j >= 0; j--) { // 从高位到低位依次计算
h *= 2; // 计算二进制位权
s += c[j] * h; // 转换为十进制数
}
return s;
}
void main() {
int a[50] = {1,0,1,1,0,1,1,1,1}, b[50] = {1,0,0,0,1,0,0,0,1,0,1,0,1}; // 左边是低位右边是高位
int t = dec(a, b, 9, 13); // 传递数组名
cout << "相加之后十进制数为:" << t << endl;
}
```
修改说明:
1. 在函数dec的开头,将c数组初始化为0,避免出现未初始化的值。
2. 在计算二进制位权时,将h的初始值设置为1,便于后面的计算。
3. 在for循环中,将相加的和存放在c数组中。
4. 在计算过程中,将当前位减去2,相邻高位加1。
5. 在计算十进制数时,先将最高位的值赋给s,然后从高位到低位依次计算。
6. 调用dec函数时,传递的是数组名,不是数组的某个元素。
相关推荐
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)