编写子串查找函数int find_ str(const char* str1, const char* str2),返回str2在str1中的位置。如果str2 在str1中不存在,那么返回-1。如果str2在str1中出现多次,那么以第1改出现为准。使用指针进行编写。 (5)编写程序,将一个NxN的方阵A转置后输出。要求使用二维数组的行指针实现。(6)一个小组有4个学生,每个学生有3门课程:语文、数学、英语的成绩(0~100的整数)。使用4行3列的二维数组存储这些成绩。计算每个学生三门课程的平均成绩并输出(精确到小数点后2位)。要求使用指针进行实现。
时间: 2024-02-06 10:09:59 浏览: 67
C字符串函数对应的C++ string操作详解
5星 · 资源好评率100%
(5) 方阵转置程序:
```c++
#include <iostream>
using namespace std;
const int N = 100;
void transpose(int (*a)[N], int n)
{
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
swap(a[i][j], a[j][i]);
}
int main()
{
int n;
cin >> n;
int a[N][N];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
transpose(a, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
```
(6) 学生成绩统计程序:
```c++
#include <iostream>
#include <iomanip>
using namespace std;
const int N = 4;
void calc_average(int (*a)[3], int n)
{
double sum;
cout << fixed << setprecision(2);
for (int i = 0; i < n; i++) {
sum = 0;
for (int j = 0; j < 3; j++)
sum += a[i][j];
cout << "学生" << i + 1 << "的平均成绩为:" << sum / 3 << endl;
}
}
int main()
{
int a[N][3];
for (int i = 0; i < N; i++)
for (int j = 0; j < 3; j++)
cin >> a[i][j];
calc_average(a, N);
return 0;
}
```
注意,这里使用了 `fixed` 和 `setprecision` 来控制输出精度。如果不加这两个控制符,输出可能会出现不正确的精度。
阅读全文