给定程序MODll.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定, 函数中a1放个位数,a2放十位数。 请改正程序中的错误,使它能得出正确结果。 注意

admin2014-06-20  8

问题 给定程序MODll.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,
函数中a1放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
intfun(int*b)
{intk,al,a2,i=0;
for(k=10;k<=55;k++){
/**********found**********/
a2=k/10;
al=k-a2*10;
if((k%3=0&&a2=5)||(k%3=0&&a1=5))
{b=k;i++;}
}
/**********found**********/
returnk=
}
main(    )
{inta[100],k,m;
m=fun(a);
printf(’’Theresultis:\n’’);
for(k=0;k<m;k++)printf(’’%4d’’,a[k]);printf(’’\n’’);
}

选项

答案(1)a2=k/10; (2)returni;

解析 本题中函数的功能是从整数1到55之间,选出能被3整除且有一位上的数是5的数。
其中,涉及整数个位的截取,以及判断某范围内能被3整除的判断条件表达式、循环。
(1)第一标识下“a2=k/10;”是截取十位数,截取个位数是k%10,而截取十位数是k/10,因此第一标识下应改成“a2=k/10;”。
(2)变量i是标识数组b的下标也就是数组的个数,题目中“returnk;”返回的是循环条件表达式中的变量,所以这单应该将“returnk;”改为“returni;”。
转载请注明原文地址:https://jikaoti.com/ti/XGkiFFFM
0

相关试题推荐
最新回复(0)