有一道 C语言题目!请高手指教!

来源:百度知道 编辑:UC知道 时间:2024/05/10 06:12:01
有以下程序
int f(int a)
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s);i++) d+=s;
printf("%d\n",d);
}
程序运行后的输出结果是 ( )。
A)9
B)11
C)19
D)21

试过在VC++ 6.0 里运行 不能通过编译! 为什么?
答案是什么? 请说明原因!!
题目有错???应该是题目错啦!我是直接copy过来的!
laocui172 flashwenxin 感谢两位!

原因在
for (i=0;f(s);i++)

函数int f(int a) 要求参数是int类型
你传进去的是一个数组地址。

不确定你想让程序实现什么功能,所以不知道要修改成什么样

如果你确定没抄错的话,题目就是错了

/* 函数的目的是求所有奇数的和*/
#include "stdio.h"
int f(int a)
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s[i]);i++)
d+=s[i];
printf("%d\n",d);
}
_________________________________________

上面是修改后的程序 运行结果为 9