文章目录
- C++学习过程中的经典案例
一、水仙花数
二、乘法口诀表
三、数组
- 1、数组元素倒置
- 2、冒泡排序
一、水仙花数
案例描述:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
例如:1^3 + 5^3+ 3^3 = 153
#include
using namespace std;
/*
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
例如:1^3 + 5^3+ 3^3 = 153
*/
int main()
{
int num = 100;
int a,b,c; //用a,b,c,分别取三位数num的个位、十位、百位
while(num < 1000)
{
a = num % 10;
b = num / 10 % 10;
c = num / 100;
//判断num是否是水仙花数
if(a*a*a + b*b*b + c*c*c == num)
{
cout << num << "是水仙花数!" <<endl;
}
num++;
}
system("pause");
return 0;
}
二、乘法口诀表
练习案例:乘法口诀表
案例描述:利用嵌套循环,实现九九乘法表
#include
using namespace std;
int main()
{
for (int i = 1; i < 10; i++)
{
for (int j = 1; j <= i; j++)
{
cout << j << "*" << i << "=" << j*i << "\t" ;
}
cout << endl;
}
system("pause");
return 0;
}
三、数组 1、数组元素倒置
案例描述:请声明一个5个元素的数组,并且将元素逆置.
(如原数组元素为:1,3,2,5,4;逆置后输出结果为:4,5,2,3,1)
#include
using namespace std;
int main()
{
int arr[] = {1,2,4,3,5};
cout << "元素逆置前数组为:" << endl;
//遍历输出整个数组
for(int i = 0 ; i < sizeof(arr) / sizeof(arr[0]); i++)
{
cout << arr[i] << " ";
}
cout << endl;
//记录第一个元素和最后一个元素位置
int start = 0;
int end = sizeof(arr) / sizeof(arr[0]) - 1;
//元素逆置
while (start < end)
{
//交换元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
//更新下标
start++;
end--;
}
cout << "元素逆置后数组为:" << endl;
//遍历输出整个数组
for(int i = 0 ; i < sizeof(arr) / sizeof(arr[0]); i++)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
2、冒泡排序
作用: 最常用的排序算法,对数组内元素进行排序
- 比较相邻的元素。
如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
- 重复以上的步骤,每次比较次数-1,直到不需要比较
#include
using namespace std;
int main()
{
int arr[] = {1,3,0,2,4,6,9,7,8,5};
//冒泡排序前数组为
cout << "冒泡排序前数组为:" << endl;
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]) ; i++)
{
cout << arr[i] << " ";
}
cout << endl;
//冒泡排序开始,外部循环次数 = 排序总轮数 = 元素个数 - 1
for(int i = 0; i < sizeof(arr) / sizeof(arr[0]) - 1; i++)
{
//内部循环次数 = 每轮对比次数 = 元素个数 -排序轮数 - 1
for(int j = 0 ; j < sizeof(arr) / sizeof(arr[0]) - i - 1 ; j++)
{
//比较相邻的元素。
如果第一个比第二个大,就交换他们两个
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
} //冒泡结束
cout << "冒泡排序后数组为:" << endl;
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]) ; i++)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)