常熟理工学院电气与自动化工程学院《控制器编程基础》实验指导书实验二程序分支及循环结构项目1:数字反转给定一个整数n(键盘输入),将该数字各个位上的数字反转得到一个新的数字。输出的新数最高位不能有0。输入一个(-10000000,10000000)之间的数
时间: 2023-05-24 13:05:47 浏览: 80
实验目的:掌握程序分支及循环结构的控制语句。
实验设备:计算机、编程软件。
实验要求:
1. 能运用程序分支及循环结构的控制语句实现数字反转。
2. 能设计程序实现输入数字后得到反转后的数字。
实验原理:
在程序中,需要使用循环结构来完成数字反转的操作。
具体操作步骤如下:
1. 读入输入的整数n。
2. 对n进行判断,若n<0,则将其转换为正数再进行操作。
3. 利用循环结构,通过对n取模和整除10的操作,逐位取出n的数字,并将其倒序存储到一个新的整数变量中。
4. 对于存储反转后数字的变量,需要进行一次除以10的操作,去掉高位的0。
5. 最后输出结果。
实验步骤:
Step1. 新建工程。
Step2. 在代码中编写如下程序:
```c
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, rev = 0;//初始化输入数及反转数变量
printf("请输入一个整数:\n");
scanf("%d", &n);//读入输入的整数n
if (n < 0)//如果n<0,则将其转换为正数
{
n = -n;
}
while (n > 0)//利用循环结构,通过对n取模和整除10的操作,逐位取出n的数字,并将其倒序存储到一个新的整数变量中
{
rev = rev * 10 + n % 10;//将n个位上的数字逐个反转存储到rev中
n /= 10;//每次将n除以10,以便继续取n的下一个数字
}
/* 对于存储反转后数字的变量,需要进行一次除以10的操作,去掉高位的0 */
while (rev % 10 == 0)//去除反转后数字的前导0
{
rev /= 10;
}
printf("反转后的数字为:%d\n", rev);//最后输出结果
system("pause");//暂停程序运行,以便查看输出结果
return 0;
}
```
Step3. 调试运行程序。
Step4. 在程序中输入一个整数,回车后程序反转该数字并输出结果。
Step5. 分别测试正数、负数、0、10、100等不同输入情况,观察输出结果。