week2
知识点:
大、小写字母的ASCII码值相差32。
ASCII码包含字母、数字、通用符号、控制符等。
基本的ASCII码的打印字符部分包括32~126(共95个)是字符:32是空格,其中48~57为0到9十个阿拉伯数字,65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。第127个字符表示的是键盘上的删除命令。
题目:
1、输入两个整数,交换其数值并输出。
#include<iostream>
using namespace std;
void swap(int a, int b) { // void swap(int& a, int& b)
int temp;
temp = a;
a = b;
b = temp;
}
int main() {
double a, b;
cin >> a >> b;
cout << "交换前:" << a << ' ' << b << endl;
swap(a, b);
cout << "交换后:" << a << ' ' << b << endl;
return 0;
}
2 3
交换前:2 3
交换后:3 2
2、将n个整数存入数组中并经行求和。
#include<iostream>
using namespace std;
int sum(int a[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += a[i];
}
return sum;
}
int main() {
int n, s;
int a[100]; // 静态定义长度为100的数组
cin >> n;
// int* a = new int[n]; // 动态定义
for (int i = 0; i < n; i++) {
cin >> a[i];
}
s = sum(a, n);
cout << "sum = " << s << endl;
return 0;
}
3
1 2 3
sum = 6
3、输入n个字母,如果是小写字母,则将其转换为大写字母,输出转换后的结果。
#include<iostream>
using namespace std;
void strconvert(string& s) { // char *s
for (int i = 0; i < s.length(); i++) // strlen(s)
if (s[i] >= 'a' && s[i] <= 'z')
s[i] -= 32;
}
using namespace std;
int main() {
string str;
cin >> str;
strconvert(str);
cout << str << endl;
return 0;
}
12qwe
12QWE
3、输入两个整数a和b。求这两个整数的最大公约数和最小公倍数。
#include<iostream>
using namespace std;
int gcd(int a, int b) {
int t;
t = a % b;
while (t != 0) {
a = b;
b = t;
t = a % b;
}
return b;
}
int lcm(int a, int b) {
int g;
g = gcd(a, b);
return a * b / g;
}
int main() {
int a, b, g, l;
cin >> a >> b;
g = gcd(a, b);
l = lcm(a, b);
cout << g << "\t" << l << endl;
return 0;
}
100 10
10 100
4、写一个函数,实现字符串类型的数据,取其长度的一班,对于浮点数类型的数据,取其值的二分之一。
#include<iostream>
using namespace std;
float half(float n) {
return n / 2;
}
string half(string st) {
int n = st.length() / 2;
char* s = new char[n+1];
for (int i = 0; i < n; i++) {
s[i] = st[i];
}
s[n] = '\0'; // 字符串结尾是'\0'
return s;
}
int main() {
float n;
string st;
cin >> n >> st;
cout << half(n) << endl;
cout << half(st) << endl;
return 0;
}
123
qwert
61.5
qw
5、输入两个数a和b(整数或则浮点数),求这两个数的和值。
#include<iostream>
using namespace std;
template<typename T>
T add(T x, T y) {
return x + y;
}
int main() {
int a, b;
double c, d;
cin >> a >> b >> c >> d;
cout << add(a, b) << "\n" << add(c, d) << endl;
return 0;
}
1 2
0.1 0.2
3
0.3
5、蛇形填数,按照蛇形填写 n ∗ n n*n n∗n的矩阵
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ql2T7MjB-1691971967254)(C:\Users\86152\AppData\Roaming\Typora\typora-user-images\image-20230810144830844.png)]
#include<iostream>
#include<iomanip>
using namespace std;
int main() {
int n, x, y, total;
cin >> n;
int** a = new int*[n];
for (int i = 0; i < n; i++) {
a[i] = new int[n];
memset(a[i], 0, n * sizeof(int));
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(5) << a[i][j];
}
cout << endl;
}
cout << endl;
x = y = 0;
total = a[0][0] = 1;
while (total < n * n) {
while (y + 1 < n && !a[x][y + 1])
a[x][++y] = ++total;
while (x + 1 < n && !a[x + 1][y])
a[++x][y] = ++total;
while (y - 1 >= 0 && !a[x][y - 1])
a[x][--y] = ++total;
while (x - 1 >= 0 && !a[x - 1][y])
a[--x][y] = ++total;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(5) << a[i][j];
}
cout << endl;
}
for (int i = 0; i < n; i++) {
delete[] a[i];
}
delete[] a;
return 0;
}
4
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
6、输入一些字符串,统计单词的个数,单词之间以空间隔开
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int countword(string s) {
int len, i = 0, num = 0;
len = s.length();
while (i < len) {
while (s[i] == ' ')
i++;
if (i < len)
num++;
while (s[i] != ' ' && i < len)
i++;
}
return num;
}
int main() {
string s1;
getline(cin, s1);
cout << countword(s1) << endl;
return 0;
}
qw qw qwqqw wqq qw
5
7、输入三个字符串,找出其中最小的字符串,长度最小的字符串。
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string minstr(string s1, string s2) {
if (s1 < s2)
return s1;
else
return s2;
}
string minstrlen(string s1, string s2) {
if (s1.size() < s2.size())
return s1;
else
return s2;
}
int main() {
string s1, s2, s3, min, minlen;
cin >> s1 >> s2 >> s3;
min = minstr(s1, minstr(s2, s3));
minlen = minstrlen(s1, minstrlen(s2, s3));
cout << min << '\n' << minlen << endl;
return 0;
}
word cookie setprecision
cookie
word
其他:
ize())
return s1;
else
return s2;
}
int main() {
string s1, s2, s3, min, minlen;
cin >> s1 >> s2 >> s3;
min = minstr(s1, minstr(s2, s3));
minlen = minstrlen(s1, minstrlen(s2, s3));
cout << min << ‘\n’ << minlen << endl;
return 0;
}
```css
word cookie setprecision
cookie
word