练习案例

2023-08-30 20:48:19 浏览数 (1)

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. 退出通讯录:退出当前使用的通讯录

c++

0 人点赞