数组C++题目
时间: 2025-05-18 20:29:50 浏览: 17
### C++ 数组编程练习题
以下是几个与C++数组相关的经典编程题目,涵盖了不同难度和应用场景:
#### 1. 转置二维数组
编写程序实现一个功能:给定一个 `n×m` 的二维数组,将其转置并输出。不允许使用额外的存储空间来保存结果。
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int arr[500][500] = {0};
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
}
// 输出转置后的矩阵
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << setw(3) << arr[j][i]; // 使用setw使输出整齐
}
cout << endl;
}
}
```
上述代码实现了二维数组的原地转置操作[^1]。
---
#### 2. 素数筛选算法
利用布尔型数组判断指定范围内的所有素数,并打印出来。
```cpp
#include <stdio.h>
#include <math.h>
int main() {
const int n = 100;
int isPrime[n + 1] = {0}; // 初始化为全零表示假设全是素数
for (int i = 2; i <= sqrt((float)n); i++) {
if (!isPrime[i]) { // 若当前数未被标记,则它是素数
for (int j = 2 * i; j <= n; j += i) {
isPrime[j] = 1; // 将其倍数标记为合数
}
}
}
// 打印所有的素数
for (int i = 2; i <= n; i++) {
if (!isPrime[i]) {
printf("%5d", i);
}
}
return 0;
}
```
这段代码通过埃拉托斯特尼筛法高效求解一定范围内所有素数[^2]。
---
#### 3. 冒泡排序
实现经典的冒泡排序算法,对一组数据从小到大排列。
```cpp
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int size) {
bool swapped;
for (int i = 0; i < size - 1; i++) {
swapped = false;
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
swapped = true;
}
}
if (!swapped) break; // 提前结束优化
}
}
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
bubbleSort(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
此代码展示了如何用嵌套循环完成简单的冒泡排序逻辑。
---
#### 4. 删除特定元素
在一个整数数组中查找是否存在某个目标值X。如果存在,则删除第一次出现的目标值并将剩余部分作为新数组输出;否则输出 `"no"`。
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int x;
cin >> x;
bool found = false;
int indexToRemove = -1;
for (int i = 0; i < n; i++) {
if (arr[i] == x && !found) {
found = true;
indexToRemove = i;
}
}
if (!found) {
cout << "no";
} else {
for (int i = 0; i < n; i++) {
if (i != indexToRemove) {
cout << arr[i] << " ";
}
}
}
return 0;
}
```
以上代码解决了从数组中移除首个匹配项的任务[^4]。
---
#### 5. 九九乘法表
生成标准形式的九九乘法表。
```cpp
#include <stdio.h>
void generateMultiplicationTable() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d*%d=%2d\t", j, i, i * j);
}
printf("\n");
}
}
int main() {
generateMultiplicationTable();
return 0;
}
```
这是构建基本算术运算展示的一个例子[^3]。
---
阅读全文
相关推荐

















