我试着编写代码但却被卡住了......
任务是:给出整数的数组C(15).Find null,正元素的数量和正元素的总和。找到的意义放在数组的中间。显示初始和更改的数组。
#include <iostream>
using namespace std;
int main()
{
int array1[15]={-1, 0, -3, -2, 3, 4, 1, 2, 5, 6, -5, -4, 7, 8, 9};
int maxarray=array1[0];
int maxarrayplace;
int minarray=0;
//1
for (int inindex=0; inindex<15; inindex++)
{
int minindex=inindex;
for (int preindex=inindex+1; preindex<15; preindex++)
{
if (array1[preindex]<array1[minindex])
minindex=preindex;
}
swap(array1[inindex], array1[minindex]);
}
cout<<"Array1 is "<<array1[15];
for (int i=0; i<15; i++)
{
cout<<array1[i]<<" ";
}
//2
cout<<"\nPositive numbers: \n";
for (int i=0; i<15; i++)
if (array1[i]>minarray)
{
cout<<array1[i]<<" ";
}
//positive element's amount
return 0;
}
答案 0 :(得分:2)
首先是代码中的这一行:
cout<<"Array1 is "<<array1[15];
不正确,当数组大小为15时,不能使用索引15,最后一个元素索引为14。 使用索引15应该会给你“越界”异常。
此外,如果您想显示正数,您只需将它们与零进行比较,下面的代码也会显示正数的数量和总和:
cout<<"\nPositive numbers: \n";
int amount = 0;
int sum = 0;
for (int i=0; i<15; i++)
if (array1[i]>0)
{
cout<<array1[i]<<" ";
amount++;
sum += array1[i];
}
cout<<"The amount of the positive numbers is : "<<amount<<"\n";
cout<<"The summation of the positive numbers is : "<<sum<<"\n";
如果这不是您想要的,请更清楚地解释。