请通过c++实现以下四个问题并分开回答:1.要求输入3行4列的矩阵,按行列形式输出该矩阵。求周边元素之和,并输出。2.要求输入一行字符,统计其中有多少个单词,单词之间用分隔符(空格或,;!.)分开。3.要求用选择法对10个整数排序,10个整数用scanf函数输入,排序后10个数按由小到大的顺序输出。4.要求有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。
时间: 2024-02-24 15:55:15 浏览: 62
好的,我将分别回答这四个问题,首先是第一个问题:
1. 输入3行4列的矩阵,按行列形式输出该矩阵。求周边元素之和,并输出。
```c++
#include <iostream>
using namespace std;
const int ROWS = 3;
const int COLS = 4;
int main() {
int matrix[ROWS][COLS];
int sum = 0;
// 输入矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cin >> matrix[i][j];
}
}
// 输出矩阵
cout << "矩阵为:" << endl;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 计算周边元素之和
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (i == 0 || i == ROWS - 1 || j == 0 || j == COLS - 1) {
sum += matrix[i][j];
}
}
}
cout << "周边元素之和为:" << sum << endl;
return 0;
}
```
2. 输入一行字符,统计其中有多少个单词,单词之间用分隔符(空格或,;!.)分开。
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string str;
getline(cin, str); // 输入一行字符
int cnt = 0;
char delimiters[] = " ,;!.:"; // 分隔符
char* token = strtok(&str[0], delimiters);
while (token != NULL) {
cnt++;
token = strtok(NULL, delimiters);
}
cout << "单词数为:" << cnt << endl;
return 0;
}
```
3. 用选择法对10个整数排序,10个整数用scanf函数输入,排序后10个数按由小到大的顺序输出。
```c++
#include <iostream>
using namespace std;
const int N = 10;
int main() {
int arr[N];
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < N - 1; i++) {
int minIdx = i;
for (int j = i + 1; j < N; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
}
int tmp = arr[i];
arr[i] = arr[minIdx];
arr[minIdx] = tmp;
}
cout << "排序后的数组为:" << endl;
for (int i = 0; i < N; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
4. 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string text[3];
int upperCnt = 0, lowerCnt = 0, digitCnt = 0, spaceCnt = 0, otherCnt = 0;
// 输入文章
for (int i = 0; i < 3; i++) {
getline(cin, text[i]);
}
// 统计各类字符出现的个数
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 80; j++) {
char c = text[i][j];
if (c >= 'A' && c <= 'Z') {
upperCnt++;
} else if (c >= 'a' && c <= 'z') {
lowerCnt++;
} else if (c >= '0' && c <= '9') {
digitCnt++;
} else if (c == ' ') {
spaceCnt++;
} else {
otherCnt++;
}
}
}
cout << "大写字母个数:" << upperCnt << endl;
cout << "小写字母个数:" << lowerCnt << endl;
cout << "数字个数:" << digitCnt << endl;
cout << "空格个数:" << spaceCnt << endl;
cout << "其它字符个数:" << otherCnt << endl;
return 0;
}
```
阅读全文