C语言问题请教(2级考题)

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:08:54
函数fun的功能是:求整数x的y次方的低3位值 如:5的6次方为15625,低3位为625 标记处有错,该如何改 谢谢你们了
#include <stdio.h>
long fun(int x,int y,long *p)
{int i;
long t=1;
for(i=1;i<y;i++) 有错!!!!!!
t=t*x;
*p=t;
t=t%1000;
return t;
}
main()
{long t,r;int x,y;
printf("\nInput x and :");
scanf("%ld%ld",&x,&y);
t=fun(x,y,&r);
printf("\n\nx=%d,y=%d,r=%ld,last=%ld\n\n",x,y,r,t);
}
是2级考题 在模拟软件下做我的做法是改为for(i=0;i<y;i++)
没有给我分 为什么呢 给的标准答案是for(i=1;i<=y;i++)

一般来说for(i=0;i<y;i++) 也是绝对正确的,在一般的编程软件中是对的。但是你说是模拟软件,可能是对比正确答案。但你的做法不错!

i=1;i<y;i++ 少循环一次。
你改为i=0;i<y;i++是正确的。答案i=1;i<=y;i++也是正确的。没问题呀,老师死脑子。。

???
没看出来有错误,但是既然你说是考试,就不难理解了

批卷的是电脑?

没给y赋初值啊,c语言的基本要领是先定义后使用,你再试试吧