C++程序 for (i=0;i=10) { a[i]=a[i]*2-10; a[i+1]+=1; }.
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/02 08:39:48
C++程序 for (i=0;i=10) { a[i]=a[i]*2-10; a[i+1]+=1; }.
for (i=0;i=10)
\x05\x05{
a[i]=a[i]*2-10;
\x05 a[i+1]+=1;
\x05\x05}
\x05\x05else
\x05\x05 a[i]=a[i]*2;
cout
for (i=0;i=10)
\x05\x05{
a[i]=a[i]*2-10;
\x05 a[i+1]+=1;
\x05\x05}
\x05\x05else
\x05\x05 a[i]=a[i]*2;
cout
你先说说你想实现什么?
还有你数组a的空间是多少?你这么访问a[i+1]可能会越界哦.
再问: 用数组求2的1000次方
再答: 2的1000次方???2的10次方吧?for(int i=0; i<10;++i)
{
if(i==0)
a[i] = 2;
else
a[i] = a[i-1] * 2;
}求2的10次方,为什么要*2 + 1呢?
再问: 普通方法溢出,所以用数组方法求,2的10次方会啊,就是因为数字大了。所以想用数组
再答: 我大概明白你的意思, 你是要把计算出来的十进制的结果放到数组里面是吧, 我按照你的想法写了个程序, 也大概测了一下, 代码和结果都如下:#include "iostream"
using namespace std;
int main()
{
int iMax = 0;
while(cin >> iMax)
{
if(iMax == 0) return 0;
unsigned short cnum[1000] = {}; //初始化
unsigned int iMaxByteCount = 1; //结果占位数
cnum[0] = 1;
for(int i = 1; i != iMax + 1; ++i)
{
int iCarry = 0; //进位初始化
for(int j = 0; j != iMaxByteCount; ++j)
{
int iTmp_upper = cnum[j+1]; //当前位 的高位
int iLastCarry = iCarry; //当前位 的低位 的进位
iCarry = cnum[j] * 2 / 10; //当前位 给高位 的进位
cnum[j] = cnum[j] * 2 % 10 + iLastCarry; //计算当前位应得的值
if( j == iMaxByteCount-1 && iTmp_upper == 0 && iCarry != 0 )
++iMaxByteCount; //结果占位数增加
}
}
for(int g = iMaxByteCount; g != 0; --g) //输出10进制的结果
{
cout<<cnum[g-1];
}
cout<<endl;
}
}测试结果: 看下面附件(奇数行是输入,表示要得到2的多少次方的结果....接着的行就是结果)
还有你数组a的空间是多少?你这么访问a[i+1]可能会越界哦.
再问: 用数组求2的1000次方
再答: 2的1000次方???2的10次方吧?for(int i=0; i<10;++i)
{
if(i==0)
a[i] = 2;
else
a[i] = a[i-1] * 2;
}求2的10次方,为什么要*2 + 1呢?
再问: 普通方法溢出,所以用数组方法求,2的10次方会啊,就是因为数字大了。所以想用数组
再答: 我大概明白你的意思, 你是要把计算出来的十进制的结果放到数组里面是吧, 我按照你的想法写了个程序, 也大概测了一下, 代码和结果都如下:#include "iostream"
using namespace std;
int main()
{
int iMax = 0;
while(cin >> iMax)
{
if(iMax == 0) return 0;
unsigned short cnum[1000] = {}; //初始化
unsigned int iMaxByteCount = 1; //结果占位数
cnum[0] = 1;
for(int i = 1; i != iMax + 1; ++i)
{
int iCarry = 0; //进位初始化
for(int j = 0; j != iMaxByteCount; ++j)
{
int iTmp_upper = cnum[j+1]; //当前位 的高位
int iLastCarry = iCarry; //当前位 的低位 的进位
iCarry = cnum[j] * 2 / 10; //当前位 给高位 的进位
cnum[j] = cnum[j] * 2 % 10 + iLastCarry; //计算当前位应得的值
if( j == iMaxByteCount-1 && iTmp_upper == 0 && iCarry != 0 )
++iMaxByteCount; //结果占位数增加
}
}
for(int g = iMaxByteCount; g != 0; --g) //输出10进制的结果
{
cout<<cnum[g-1];
}
cout<<endl;
}
}测试结果: 看下面附件(奇数行是输入,表示要得到2的多少次方的结果....接着的行就是结果)
C++程序 for (i=0;i=10) { a[i]=a[i]*2-10; a[i+1]+=1; }.
int a[10],i ;for(i = 1; i
下列程序的执行结果为().dim a(10),b(5) for i=1 to 10 a(i)=i next i for
下列程序段的执行结果为 dim a(5) for i=1 to 5 a(i)=i*i next i print a(i-
九九乘法表程序#include void main(){int i,j,a;for(i=1;i
下面程序的运行结果是 main() {int a[6],i; for(i=1;i
下面程序运行结果main() {int a[6],i; for(i=1;i3))%5; printf("%2d",a[i
main() {int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d
for (int i=1; i < a.Length; i++) {
设i为虚数单位,则1+i+i^2+i^3+A+i^10=?
以下程序段的运行结果是( ).int a[]={1,2,3,4},i,j; j=1; for(i=3;i>=0;i--)
C语言程序问题,for(i=1;i++