C语言关于程序问题

请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。例如:w值... 请编写一个函数unsigned fun (unsigned w),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。例如:w值为5923,则函数返回923;w值为923则函数返回23。以下是程序,其中只有unsigned fun函数是我写的,其他都是题目已经写好的:#include <stdio.h>unsigned fun (unsigned w){unsigned s=0,t,p=1;while(w>10){t=w%10;s=s+p*t;p=p*10;w=w/10;}return s;}NONO(){/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ unsigned x ; int i ; FILE *rf, *wf ; rf = fopen("in1.dat","r"); wf = fopen("out1.dat","w"); for(i = 0 ; i < 20 ; i++) { fscanf(rf, "%u", &x); fprintf(wf, "%u\n", fun(x)); } fclose(rf); fclose(wf);}main(){unsigned x; printf ("Enter a unsigned integer number : "); scanf ("%u", &x); printf ("The original data is : %u\n", x); if (x < 10) printf ("Data error !"); else printf ("The result : %u\n", fun (x)); NONO();}结果如下:程序可以正确得到结果,但出现了终止的弹框。而且模拟考试软件显示我的答题不得分,这是什么原因呢?如果真正的计算机考试也会算我0分吗? 展开
 我来答
bhtzu
2016-08-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4154万
展开全部

报错原因在这里:

 fopen("in1.dat","r");

应该是没有找到in1.dat或者文件内格式错误。


报错和fun函数无关,目测fun函数虽然不够优化,但没有逻辑错误。你确定NONO函数不是自己写的?

unsigned fun (unsigned w)
{
unsigned t=w,p=1;
while(t>10)
{
t=t/10;
p=p*10;
}
return w-t*p;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式