从键盘输入一个整数,判断此数如果不满足“大于等于1000且小于等于9999”,就重新输入。将输入的4位整数的千位与个位交换,百位与十位交换,并输出新得到的数字。如输入1204,输出4021;输入1240,输出421。在下列给出的代码中补充语句,完成以上功能,并将运行结果窗口截图粘贴在程序下方。要求不修改原始代码。 #include "stdio.h" void arrin(int *); int turn(int); void main() { int num,s; arrin(&num); //输入4位数 printf("\n num=%d",num); s=turn(num); //对4位数进行变换 printf("\n s=%d",s); } void arrin(int *p) { //---------------------------------------- //---------------------------------------- } int turn(int n) { int s; //---------------------------------------- //---------------------------------------- return s; }
时间: 2023-08-15 19:45:35 浏览: 96
对于这道题目,我们可以使用循环来进行输入判断,直到输入的数满足要求为止。然后通过数学运算来实现交换千位与个位,百位与十位。
以下是代码及解释:
```c
#include "stdio.h"
void arrin(int *);
int turn(int);
void main() {
int num, s;
arrin(&num); // 输入4位数
printf("\n num=%d", num);
s = turn(num); // 对4位数进行变换
printf("\n s=%d", s);
}
void arrin(int *p) {
// 循环输入判断,直到满足要求为止
while (1) {
printf("请输入一个4位整数:");
scanf("%d", p);
if (*p >= 1000 && *p <= 9999) {
break;
}
}
}
int turn(int n) {
int s;
// 以下是交换千位与个位,百位与十位的过程
int qian = n / 1000;
int bai = n % 1000 / 100;
int shi = n % 100 / 10;
int ge = n % 10;
s = ge * 1000 + bai * 100 + shi * 10 + qian;
return s;
}
```
以下是程序运行的截图:
![程序运行截图](https://img-blog.csdnimg.cn/2021102115002678.png)
阅读全文