前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >练习案例

练习案例

原创
作者头像
用户10731060
发布2023-08-30 20:48:19
1020
发布2023-08-30 20:48:19
举报
文章被收录于专栏:初学C++初学C++

1、水仙花数

案例描述:水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身

例如:1^3 + 5 ^3 + 3^3 = 153;

请利用do...while语句求出所有3位数中的水仙花数。

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream> using namespace std;

int main()

{

int num = 100;

do

{

//百位上的数字

int num1 = 0;

//十位上的数字

int num2 = 0;

//个位上的数字

int num3 = 0;

num1 = num / 100;

int tem = num % 100;

switch (tem > 10)

{

case 1:

num2 = tem / 10;

num3 = tem % 10;

break;

default:

num2 = 0;

num3 = tem;

break;

}

if (pow(num1,3) + pow(num2, 3) + pow(num3, 3) == num)

{

cout << "num = " << num << endl;

}

num++;

}

while (num <= 999);

return 0;

}

2、敲桌子

案例描述:从1开始到数字100,如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream> using namespace std;

int main()

{

int num = 1;

while (num <= 100)

{

int num1 = num / 100;

//百位

if (num1 > 0)

{

cout << num << endl;

}

else

{

int num2 = num / 10;

//十位

if (num2 > 0)

{

int num3 = num % 10;

//个位

if (num2 == 7 || num3 == 7 || num % 7 == 0)

{

cout << "敲桌子" << endl;

}

else

{

cout << num << endl;

}

}

else

{

if (num % 7 == 0 || num == 7)

{

cout << "敲桌子" << endl;

}

else

{

cout << num << endl;

}

}

}

num++;

}

}

3、乘法口诀表

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream> using namespace std;

int main()

{

for (int i = 1; i < 10; i++)

{

for (int j = 0; j < i; j++)

{

cout << (j + 1) << "*" << i << "=" << (j + 1) * i << " ";

}

cout << endl;

}

return 0;

}

4、数组逆序

例如: int arr[] = { 1,3,2,4 };

int arr1[] = { 2,6,5,7,9 };

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>

using namespace std; int main()

{

int arr[] = { 1,3,2,4 };

int arr1[] = { 2,6,5,7,9 };

//数组起始下标 为 0;数组结束下标为 sizeof(arr) / sizeof(arr[0]) - 1

for (int i = 0; i <= (sizeof(arr1) / sizeof(arr1[0]) - 1) / 2; i++)

{

int temp = arr1[i];

arr1[i] = arr1[sizeof(arr1) / sizeof(arr1[0]) - 1 - i];

arr1[sizeof(arr1) / sizeof(arr1[0]) - 1 - i] = temp;

}

cout << "交换后的数组的长度为:" << sizeof(arr1) << endl;

for (int j = 0; j <= sizeof(arr1) / sizeof(arr1[0]) - 1; j++)

{

cout << arr1[j];

}

return 0;

}

5、冒泡排序

作用:最常用的排序算法,对数组内元素进行排序

1、比较相邻的元素。如果第一个比第二个大,就交换它们两个。

2、对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。

3、重复以上的步骤,每次比较次数 -1,直到不需要比较。

例如:对 (1、6、4、13、42、59、46、33、35、27、15、3、9、6)进行排序

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream> using namespace std;

int main()

{

int arr[] = {30,20,15,3,26,36,24,21,10,9,16,15,3};

int end = sizeof(arr) / sizeof(arr[0]) - 1;

for (int i = 0; i <= end; i++)

{ for (int j = i + 1; j <= end; j++)

{

if (arr[i] > arr[j])

{

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

}

for (int l = 0; l <= end; l++)

{

cout << arr[l] << " ";

}

return 0;

}

6、通讯录管理系统

系统需求:

通讯录是一个可以记录亲人、好友信息的工程。

本教程主要利用C++来实现一个通讯录管理系统。

系统中需要实现的功能如下:

  1. 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人;
  2. 显示联系人:显示通讯录中所有联系人信息;
  3. 删除联系人:按照姓名进行删除指定联系人;
  4. 查找联系人:按照姓名查看指定联系人信息;
  5. 修改联系人:按照姓名重新修改指定联系人;
  6. 清空联系人:清空通讯录中所有信息;
  7. 退出通讯录:退出当前使用的通讯录

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com