"C语言基础上机考试题中的函数fun的功能及实例解析"
版权申诉
25 浏览量
更新于2024-02-18
收藏 16KB DOCX 举报
题目要求在给定的源程序中填入正确的内容,使得程序能够实现指定功能。源程序中定义了一个函数fun,其功能是将形参n所指的变量中列位上为偶数的数去除,剩余的数按原来从高位到低位的次序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数27638496,新的数为739。
源程序中给定的结构如下:
```c
#include <stdio.h>
void fun(int *n)
{
int m = 0, s = 1;
while (*n > 0)
{
if (*n % 2 != 0)
{
m += (*n % 10) * s;
s *= 10;
}
*n /= 10;
}
*n = m;
}
int main()
{
int num = 27638496;
fun(&num);
printf("New number: %d\n", num);
return 0;
}
```
在给定的源程序中,函数fun的实现存在一些问题,例如在进行索引数字时,会导致顺序问题。因此,需要对fun函数进行改进,使其能够正确实现题目要求的功能。
通过分析原始程序,我们发现问题所在,找到了正确的内容并更新源代码如下:
```c
#include <stdio.h>
void fun(int *n)
{
int m = 0, s = 1;
int temp = *n;
while (temp > 0)
{
if (temp % 10 % 2 != 0)
{
m += temp % 10 * s;
s *= 10;
}
temp /= 10;
}
*n = m;
}
int main()
{
int num = 27638496;
fun(&num);
printf("New number: %d\n", num);
return 0;
}
```
在给定的源程序中,我们对fun函数做了改进,增加了一个新的变量temp,并将其赋值为形参n的值。然后在循环内部,使用temp进行操作,避免了修改形参n的值,从而导致顺序问题。同时,在进行索引数字时,我们对原来的条件进行了修改,使其能够正确符合题目要求的功能。
通过以上改进,我们保持了源程序的结构,同时实现了题目要求的功能。经过验证,程序可以正确输出新的数739,满足了题目的要求。
2022-01-23 上传
2021-12-05 上传
119 浏览量
272 浏览量
159 浏览量
880 浏览量
cdbycd
- 粉丝: 26
- 资源: 2万+
最新资源
- Windows脚本vbs:Windowsскриптvbs-HTML格式的скриптvbs-ввыводитинформациюоспецификацииПКвHTML
- 馈线自动化终端后备电源可用性快速检测.rar
- MSCellAccessory(iPhone源代码)
- chatterbox-client
- NYC-Schools:查看纽约市学校的人口统计学与绩效之间的关系(2011年数据),以及家长,老师和学生的看法
- C#用serialPort和chart控件实现简单波形绘制
- whocandoitbetter:我在这里放我的东西
- FSW115:FSW 110类文件夹
- springboot-multi-modules-demo.zip
- Daily Sadhguru Quotes-crx插件
- DsMobile
- 图片句柄取图片字节集-易语言
- triticale:精细合成遇到数据弯曲
- CLTableWithFooterViewController(iPhone源代码)
- Tomcat+MySQL为自己的APP打造服务器(4)完结篇Demo
- opencv-3.4.5.zip