我是C ++的新手,我试图了解如何使用数组。我的想法是:
(例如,如果数组为[5、6、7、8],则双倍的值将为[10、12、14、16],然后将每个值的数字相加,例如[1 + 0、1 + 2,1 + 4,1 + 6]来获得[1、3、5、7]。
我放了我的代码来显示进度,随时指出所有错误!
感谢您的帮助!
p.s。嵌套循环无效:(
window.location.hash
答案 0 :(得分:1)
几件事:
maxNum
和num[]
从未被初始化,这很危险。while(cin >> tem_var){}
。或者,您可以将其修改为if( !(cin >> num[i]) ) break;
。这样,您以后也不需要执行maxNum-1
。如果(cin>>)
成功读取变量,则为True,否则为False。这样,您可以通过输入任何非数字字符串来停止扫描,而无需在其余迭代中运行循环,而是在发生这种情况时将num [i]保留为未初始化状态。您忘了在数组编号之间输出分隔符,这使它难以阅读。
cout << num[i] << "|";
或smth。
在最后一部分中,您进行3个循环:从未使用过的k
for循环,迭代num的l
for循环和k
while循环对数字求和。其中之一是不必要的。
在最后一个sum[]
数组中,尽管正确填充了数组,但未输出。您可以在l
循环中声明它,这意味着退出时会删除它。即使您在外面声明了它。您的cout << sum[l];
在l
循环之外,这意味着当您只有[0:]时,它将仅尝试执行cout << sum[maxNum];
(循环结束的l
的值) ({Num-1)]个元素在num
和sum
中填充。
我建议您尝试使用for(k=1;k<num[l];k*=10) sum[l]+= num[l] / k % 10;
之类的方法,而不要使用while循环。它更短,可以完成工作并保留num[l]
的状态,以防万一您以后决定再次使用它。
答案 1 :(得分:0)
您需要首先用全零初始化sum数组。您不需要嵌套循环。
创建一个求和数组以存储每个数字的总和,并将其初始化为0。首先编写一个循环遍历doubled数组的元素。为每个元素写一个循环(您选择while循环)以遍历每个数字的数字并将它们移至相应的sum元素。
我对您的代码做了一些修改,请仔细检查一次。
#include <iostream>
#include <string>
using namespace std;
int maxNum;
int num[20];
int main()
{
cout << "Enter an Array" << endl;
for (int i=0;i<20;i++)
{
cin >> num[i];
maxNum++;
if (num[i]==-1)
break;
}
cout <<"Your array is: " << endl;
for (int i=0;i<maxNum-1;i++)
cout << num[i]<<' ';
cout << endl;
cout << "Your doubled array is:" << endl;
for (int j=0;j<maxNum-1;j++)
{
num[j]*=2;
cout << num[j]<<' ';
}
cout << endl;
cout << "When the digits of each seat are added..." << endl;
int sum[20];
for (int i=0;i<maxNum-1;i++)
sum[i]=0;
for (int k=0;k<maxNum-1;k++)
{
// for (int l=0;l<maxNum;l++)
// {
while (num[k]!=0)
{
sum[k]=sum[k]+num[k]%10;
num[k]=num[k]/10;
}
cout << sum[k]<<' ';
// }
}
cout << endl;
}
答案 2 :(得分:0)
您不需要嵌套循环,而使任何程序后面的逻辑仅作为一个简单示例并获取结果,不要直接跳转到代码。这将帮助您建立逻辑。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\MSBuild.exe" ..\MySolution.sln "/target:Rebuild" /verbosity:minimal /toolsversion:15.0 /nologo /maxcpucount /p:Configuration=%1 /property:DeployOnBuild="true" /property:DeployDefaultTarget="WebPublish" /property:WebPublishMethod="FileSystem" /property:DeleteExistingFiles="false" /property:publishUrl="%cd%\_output\www" /property:_FindDependencies="false" /p:BuildSourceFolder="%cd%\..\src" /p:BuildOutputBaseFolder="%cd%\_output\configs" /property:BuildOutputWWWFolder="%cd%\_output\www"