设有一维数组定义及初始化为:int a[11] = { 100,95,81,72,65,51,40,30,20,10};要求从主函数中输入一个整数,按该数组元素的排序规律,存入到该数组中合适的位置,并将更新后的数组所有元素显示出来 c➕➕
时间: 2024-05-06 19:20:41 浏览: 150
```cpp
#include <iostream>
using namespace std;
int main() {
int a[11] = { 100,95,81,72,65,51,40,30,20,10 };
int num;
cout << "请输入一个整数:" << endl;
cin >> num;
int i = 0;
while (i < 10 && num < a[i]) { // 找到第一个比num小的数的位置
i++;
}
for (int j = 9; j >= i; j--) { // 将i及其后面的元素后移一位
a[j + 1] = a[j];
}
a[i] = num; // 将num插入到i的位置
cout << "更新后的数组为:" << endl;
for (int k = 0; k < 11; k++) { // 输出更新后的数组
cout << a[k] << " ";
}
cout << endl;
return 0;
}
```
相关问题
设有一维数组定义初始化为:int a[11]={100,95,81,72,65,51,40,30,20,10}
1. 输出数组中所有元素:
```c++
for(int i=0;i<11;i++){
cout<<a[i]<<" ";
}
```
输出结果为:100 95 81 72 65 51 40 30 20 10
2. 输出数组中第5个元素的值:
```c++
cout<<a[4];
```
输出结果为:65
3. 通过循环求出数组中所有元素的和:
```c++
int sum=0;
for(int i=0;i<11;i++){
sum+=a[i];
}
cout<<sum;
```
输出结果为:565
4. 通过循环求出数组中所有元素的平均值:
```c++
int sum=0;
for(int i=0;i<11;i++){
sum+=a[i];
}
double avg=sum/11.0;
cout<<avg;
```
输出结果为:51.3636
5. 输出数组中所有大于50的元素:
```c++
for(int i=0;i<11;i++){
if(a[i]>50){
cout<<a[i]<<" ";
}
}
```
输出结果为:100 95 81 72 65 51
6. 将数组中所有元素按从小到大的顺序排序并输出:
```c++
for(int i=0;i<11;i++){
for(int j=i+1;j<11;j++){
if(a[i]>a[j]){
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
}
for(int i=0;i<11;i++){
cout<<a[i]<<" ";
}
```
输出结果为:10 20 30 40 51 65 72 81 95 100
以下一维数组定义正确的是 int n =10,a[n]吗
不正确。
在C++中,数组的大小必须是常量,因此定义数组时无法使用变量n来表示数组的大小。例如,下面是正确的数组定义方式:
int a[10];
这样就可以创建一个大小为10的int类型的数组。
需要注意的是,如果你使用C++11或更高版本,可以使用动态分配数组,这样就可以使用变量来指定数组的大小。例如:
int n = 10;
int* a = new int[n];
这样就可以创建一个大小为n的int类型的数组。但是需要注意,使用动态分配数组时需要记得在使用完之后手动释放内存,例如:
delete[] a;
希望这能帮到你!