从键盘输入n(个数不限)个整型数字,放到数组parray中,然后调用函数int *calc(int *pa,int num);计算出数组中所有元素的和返回给main函数,并将其输出。输出如图1所示。
时间: 2023-05-01 13:02:19 浏览: 161
题目描述:从键盘输入n(个数不限)个整型数字,放到数组parray中,然后调用函数int *calc(int *pa,int num);计算出数组中所有元素的和返回给main函数,并将其输出。输出如图1所示。
解析:这道题考察的是数组和函数的使用。首先输入n个整数,存入数组parray中。接着计算数组中所有元素的和,这个过程可以通过调用函数int *calc(int *pa,int num)完成。最后将计算结果输出。注意要将输出宽度设置为5个字符,右对齐。
相关问题
设计整型数组ARRAY类,用来存放若干整数。它包含两个私有成员数据(int *pARRAY,length),pARRAY用来表示数组的首地址,length表示数组长度。 程序功能:首先读入n个整型数据存入ARRAY类对象;然后按照升序排序;最后按顺序输出所有数据。 main函数已给定,提交时只需要提交main函数外的代码部分。 #include<iostream> using namespace std; //你提交的代码在这里 int main() { int n,i,j,t; cin>>n; ARRAY a(n); cout<<"Initial:"<<a<<endl; for(i=0;i<n;i++) cin>>a[i]; cout<<"Before sort:"<<a<<endl; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(a[j]>a[j+1]) { t=*(a+j); *(a+j)=*(a+j+1); *(a+j+1)=t; } cout<<"After sort:"<<a<<endl; return 0; } Input 第1行包含1个正整数n,表示元素个数; 第2行中包括n个整数。 Output 参照样例格式输出。 Sample Input 1 5 3 6 5 1 2 Sample Output 1 Initial:length=5,element={0,0,0,0,0} Before sort:length=5,element={3,6,5,1,2} After sort:length=5,element={1,2,3,5,6}
```c++
#include<iostream>
using namespace std;
class ARRAY {
private:
int* pARRAY; //指向数组首地址的指针
int length; //数组长度
public:
ARRAY(int len) { //构造函数,动态分配内存
pARRAY = new int[len];
length = len;
for (int i = 0; i < length; i++) {
pARRAY[i] = 0; //初始化为0
}
}
ARRAY(const ARRAY& a) { //复制构造函数,实现深拷贝
pARRAY = new int[a.length];
length = a.length;
for (int i = 0; i < length; i++) {
pARRAY[i] = a.pARRAY[i];
}
}
~ARRAY() { //析构函数,释放内存
delete[] pARRAY;
}
int& operator[](int i) { //下标运算符重载,返回对应下标的值的引用
return pARRAY[i];
}
friend ostream& operator<<(ostream& out, const ARRAY& a) { //输出运算符重载
out << "length=" << a.length << ",element={";
for (int i = 0; i < a.length; i++) {
out << a.pARRAY[i];
if (i != a.length - 1) {
out << ',';
}
}
out << '}';
return out;
}
};
int main() {
int n, i, j, t;
cin >> n;
ARRAY a(n);
cout << "Initial:" << a << endl;
for (i = 0; i < n; i++) {
cin >> a[i];
}
cout << "Before sort:" << a << endl;
for (i = 0; i < n - 1; i++) { //冒泡排序
for (j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
cout << "After sort:" << a << endl;
return 0;
}
```
void adjustHeap (int *pArray, int rootIndex, int heapSize) { int minIndex = rootIndex; int leftIndex = 2 * rootIndex + 1; int rightIndex = 2 * (rootIndex + 1); if ((leftIndex < heapSize) && (rightIndex < heapSize) && (pArray[leftIndex] < pArray[rightIndex]) && (pArray[leftIndex] < pArray[rootIndex])) { minIndex = leftIndex; } if ((leftIndex < heapSize) && (rightIndex >= heapSize) && (pArray[leftIndex] < pArray[rootIndex])) { minIndex = leftIndex; } if ((rightIndex < heapSize) && (pArray[rightIndex] < pArray[leftIndex]) && (pArray[rightIndex] < pArray[rootIndex])) { minIndex = rightIndex; } if (minIndex != rootIndex) { swap(&pArray[rootIndex], &pArray[minIndex]); adjustHeap(pArray, minIndex, heapSize); } }
这是一个用于调整堆的函数,主要作用是将指定节点下沉到正确的位置,以保证堆的性质。具体来说,该函数会比较指定节点与其左右子节点的值,找出其中最小的那个节点,并将其与指定节点交换位置。然后,递归调用该函数,以确保交换后的节点仍然满足堆的性质。这个函数的时间复杂度为 O(log n),其中 n 是堆中元素的数量。
阅读全文