Compare commits
3 Commits
f3750b2851
...
1424dc8874
Author | SHA1 | Date |
---|---|---|
flykhan | 1424dc8874 | |
flykhan | ce1d2ae68f | |
flykhan | 782d75d3b1 |
|
@ -0,0 +1,54 @@
|
||||||
|
// 接收一个数值数组,实现数组中元素值从小到大排序
|
||||||
|
// 例如:输入 3 2 1 5 4
|
||||||
|
// 输出 1 2 3 4 5
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void show(int arr[], int size)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
while (i < size)
|
||||||
|
{
|
||||||
|
cout << arr[i] << "\t";
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sort(int arr[], int size)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < size - 1; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < size - i - 1; j++)
|
||||||
|
{
|
||||||
|
if (arr[j] > arr[j + 1])
|
||||||
|
{
|
||||||
|
arr[j] = arr[j] ^ arr[j + 1];
|
||||||
|
arr[j + 1] = arr[j] ^ arr[j + 1];
|
||||||
|
arr[j] = arr[j] ^ arr[j + 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// 从键盘输入 5 个数值
|
||||||
|
int arr[5];
|
||||||
|
for (int i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
cout << "请输入第" << i + 1 << "个数:";
|
||||||
|
cin >> arr[i];
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
|
||||||
|
cout << "排序前:" << endl;
|
||||||
|
show(arr, 5);
|
||||||
|
|
||||||
|
sort(arr, 5);
|
||||||
|
cout << "排序后:" << endl;
|
||||||
|
show(arr, 5);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
// 接收一个数值数组,对数组中的数值求最大值并输出。
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int maxNum(int arr[], int size)
|
||||||
|
{
|
||||||
|
int max = arr[0];
|
||||||
|
|
||||||
|
while (--size)
|
||||||
|
{
|
||||||
|
if (arr[size] > max)
|
||||||
|
{
|
||||||
|
max = arr[size];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int arr[] = {18, 2, 3, 9, 5, 7}; // 完全初始化
|
||||||
|
int max = maxNum(arr, sizeof(arr) / sizeof(arr[0]));
|
||||||
|
cout << "最大值是: " << max << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
// 定义函数, 实现字符串的反转并输出
|
||||||
|
// 例如: abcdefg -> gfedcba
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void reverse(char str[], int len)
|
||||||
|
{
|
||||||
|
int i = 0; // 为什么要从 0 开始? 因为字符串的第一个字符是 str[0]
|
||||||
|
int j = len - 1 - 1; // 为什么要再减 1? 因为字符串最后一个字符是 '\0'
|
||||||
|
for (; i < j; i++, j--)
|
||||||
|
{
|
||||||
|
str[i] = str[i] ^ str[j];
|
||||||
|
str[j] = str[i] ^ str[j];
|
||||||
|
str[i] = str[i] ^ str[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char str[] = "abcdefg";
|
||||||
|
int len = sizeof(str) / sizeof(str[0]);
|
||||||
|
cout << "原字符串: " << str << endl;
|
||||||
|
reverse(str, len);
|
||||||
|
cout << "反转后: " << str << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
// 定义函数, 实现字符串中指定位置字符删除
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void delChar(char str[], int index)
|
||||||
|
{
|
||||||
|
int i = index;
|
||||||
|
while (str[i] != '\0')
|
||||||
|
{
|
||||||
|
str[i] = str[i + 1];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char str[] = "abcdefg";
|
||||||
|
int index;
|
||||||
|
cout << "原字符串: " << str << endl;
|
||||||
|
cout << "请输入要删除的位置: ";
|
||||||
|
cin >> index;
|
||||||
|
if (index < 0 || index > sizeof(str) / sizeof(str[0]))
|
||||||
|
{
|
||||||
|
cout << "位置不合法" << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
delChar(str, index);
|
||||||
|
cout << "删除后: " << str << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
// 定义函数, 实现字符串中某个字符的查找, 并返回字符的下标或 -1
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
int findCharAt(char str[], int size, char ch)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
if (str[i] == ch)
|
||||||
|
return i;
|
||||||
|
else if (str[i] == '\0' && str[i] != ch)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// char str[] = "abcdefg";
|
||||||
|
char str[128];
|
||||||
|
cout << "请输入字符串: ";
|
||||||
|
cin >> str;
|
||||||
|
char ch;
|
||||||
|
cout << "请输入要查找的字符: ";
|
||||||
|
cin >> ch;
|
||||||
|
int size = sizeof(str) / sizeof(str[0]);
|
||||||
|
int index = findCharAt(str, size, ch);
|
||||||
|
cout << "下标为: " << index << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
// 实现2个整数之和并返回的功能
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
// 1. 定义函数
|
||||||
|
// a, b是形参
|
||||||
|
// addNums是函数名
|
||||||
|
int addNums(int a, int b)
|
||||||
|
{
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
cout << "请输入两个整数:";
|
||||||
|
cin >> x >> y;
|
||||||
|
|
||||||
|
// 2. 调用函数
|
||||||
|
// [变量 = ] 函数名(实参列表);
|
||||||
|
int ret = addNums(x, y); // x, y 是实际变量的数据, 称之为实参
|
||||||
|
cout << "两个整数之和为:" << ret << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
// 函数的声明
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
// 函数的声明
|
||||||
|
int addNums(int a, int b);
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
cout << "请输入两个整数:";
|
||||||
|
cin >> x >> y;
|
||||||
|
|
||||||
|
// 2. 调用函数
|
||||||
|
int ret = addNums(x, y); // x, y 是实际变量的数据, 称之为实参
|
||||||
|
cout << "两个整数之和为:" << ret << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 函数的定义
|
||||||
|
int addNums(int a, int b)
|
||||||
|
{
|
||||||
|
return a + b;
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
// 有效循环n次,则addNums调用n次,每一次调用都会入栈(创建栈帧)。
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int addNums(int a, int b); // 函数的声明
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
cout << "请输入两个整数:";
|
||||||
|
cin >> x;
|
||||||
|
if (x == 0)
|
||||||
|
break;
|
||||||
|
cin >> y;
|
||||||
|
// 调用函数
|
||||||
|
int ret = addNums(x, y);
|
||||||
|
cout << "计算结果为:" << ret << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 函数的定义
|
||||||
|
int addNums(int a, int b)
|
||||||
|
{
|
||||||
|
return a + b;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
// 判断给定的整数是否为偶数
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int isEven(int n)
|
||||||
|
{
|
||||||
|
if (n % 2 == 0)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
cout << "请输入一个整数:";
|
||||||
|
cin >> n;
|
||||||
|
if (isEven(n))
|
||||||
|
cout << "是偶数" << endl;
|
||||||
|
else
|
||||||
|
cout << "不是偶数" << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
// 判断给定的整数是否为偶数
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int isEven(int *n)
|
||||||
|
{
|
||||||
|
if (*n % 2 == 0)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
cout << "请输入一个整数:";
|
||||||
|
cin >> n;
|
||||||
|
if (isEven(&n))
|
||||||
|
cout << "是偶数" << endl;
|
||||||
|
else
|
||||||
|
cout << "不是偶数" << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
|
||||||
|
// 定义函数,接收一个数组和一个整数,从数组中查找到第一个比给定的整数大的数的位置且返回。
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void show(int arr[], int size)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
while (i < size)
|
||||||
|
{
|
||||||
|
cout << arr[i] << " ";
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// arr[] 是 int 类型的一维数组, 此形参准备从外部接收一个 int[] 类型的数组的首地址
|
||||||
|
int find(int arr[], int n, int size)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
if (arr[i] > n)
|
||||||
|
return i; // 结束循环、结束函数并返回 i
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int arr[] = {1, 2, 3, 0, 5, 7}; // 完全初始化
|
||||||
|
// [注意] 计算数组的长度, 在定义数组的区域可以计算, 如果作为参数传递, 就无法计算了
|
||||||
|
// 这是因为数组作为参数传递时, 会退化为指针, 无法计算长度;
|
||||||
|
// 如果改为指针, 就可以计算长度了, 但是指针无法初始化, 所以必须在定义时初始化
|
||||||
|
int len = sizeof(arr) / sizeof(arr[0]);
|
||||||
|
|
||||||
|
cout << "--- main() ---" << endl;
|
||||||
|
show(arr, len);
|
||||||
|
int n = 0;
|
||||||
|
cout << "查找的数:";
|
||||||
|
cin >> n;
|
||||||
|
|
||||||
|
int index = find(arr, n, len);
|
||||||
|
if (index == -1)
|
||||||
|
cout << "没有找到" << endl;
|
||||||
|
else
|
||||||
|
cout << "找到了,位置是:" << index << ", 第一个比" << n << "大的数是:" << arr[index] << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue